Skip to content

ajitpratap0/GoSQLX

v1.2.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

ast cli dialect go lsp mysql
+13 more
parser postgresql query-analyzer security sql sql-formatter sql-injection sql-linter sql-parser sql-validator sqlite wasm zero-copy

Summary

AI summary

GoSQLX adds full Common Table Expression (CTE) and Set Operation (UNION, UNION ALL, EXCEPT, INTERSECT) support.

Full changelog

🚀 GoSQLX v1.2.0 - Phase 2: Advanced SQL Features

📋 Major Release Overview

This release delivers Phase 2 of the GoSQLX roadmap, implementing comprehensive Common Table Expressions (CTE) and Set Operations support. GoSQLX now provides enterprise-grade SQL parsing with ~70% SQL-92 compliance while maintaining the high-performance, race-free architecture.

✨ Key Features Implemented

🔄 Common Table Expressions (CTEs)

  • Simple CTEs: WITH table_name AS (SELECT ...)
  • Recursive CTEs: WITH RECURSIVE table_name AS (...)
  • Multiple CTEs: Support for comma-separated CTE definitions
  • Column Specifications: WITH cte(col1, col2) AS (...)
  • CTE Integration: Full compatibility with all statement types

🔗 Set Operations

  • UNION: Standard set union with automatic deduplication
  • UNION ALL: Set union preserving duplicates
  • EXCEPT: Set difference (SQL standard, equivalent to MINUS)
  • INTERSECT: Set intersection
  • Left-Associative Parsing: A UNION B INTERSECT C = (A UNION B) INTERSECT C
  • Combined Operations: CTEs with set operations in the same query

📊 Performance Metrics

| Metric | Value | Status |
|--------|-------|--------|
| Sustained Throughput | 946K+ ops/sec (30s) | ✅ No Regression |
| Peak Throughput | 1.25M+ ops/sec (concurrent) | ✅ Enhanced |
| Token Processing | 8M+ tokens/sec | ✅ Maintained |
| Simple Query Latency | <280ns | ✅ Optimized |
| Complex Query Latency | <1μs (CTE/Set Ops) | ✅ New Capability |
| Memory Efficiency | 60-80% reduction | ✅ Preserved |
| Race Conditions | 0 detected | ✅ Thread-Safe |

🏗️ Technical Implementation

New Parser Functions

  • parseWithStatement() - Complete WITH clause parsing with recursive support
  • parseSelectWithSetOperations() - Set operations parsing with proper precedence
  • parseCommonTableExpr() - Individual CTE parsing with column specifications
  • parseMainStatementAfterWith() - Post-CTE statement routing

Enhanced Test Coverage

  • pkg/sql/parser/cte_test.go - 4 comprehensive CTE test functions
  • pkg/sql/parser/set_operations_test.go - 5 comprehensive set operation tests
  • Coverage: Simple CTE, Recursive CTE, Multiple CTEs, Set Operations, Complex Combinations

🎯 SQL Standards Compliance

✅ SQL-92 Features Implemented

  • Common Table Expressions (WITH clause)
  • Recursive queries (WITH RECURSIVE)
  • Set operations (UNION, EXCEPT, INTERSECT)
  • Complex query compositions
  • Proper operator precedence

📈 Compliance Progress

  • Phase 1: ~40% SQL-92 compliance (Basic SELECT, JOINs)
  • Phase 2: ~70% SQL-92 compliance (CTEs, Set Operations) ⬅️ Current
  • Phase 3 Target: 90%+ compliance (Window Functions, Advanced Features)

🔧 Production Deployment

✅ Ready for Production

  • Enterprise Workloads: Handles complex SQL parsing at scale
  • High-Throughput Systems: 946K+ operations/second sustained
  • Mission-Critical Applications: Race-free, memory-safe operation
  • International Usage: Full Unicode SQL support maintained

🚀 Deployment Requirements

  • Go Version: Go 1.19+ (tested with Go 1.21+)
  • Memory: Object pools auto-scale, minimal configuration needed
  • Concurrency: Scales linearly, no artificial limits
  • Monitoring: Built-in metrics and memory leak detection

📋 Example Usage

Simple CTE

WITH sales_summary AS (
    SELECT region, SUM(amount) as total 
    FROM sales GROUP BY region
) 
SELECT region FROM sales_summary WHERE total > 1000

Recursive CTE

WITH RECURSIVE employee_tree AS (
    SELECT employee_id, manager_id, name FROM employees WHERE manager_id IS NULL
    UNION ALL
    SELECT e.employee_id, e.manager_id, e.name 
    FROM employees e JOIN employee_tree et ON e.manager_id = et.employee_id
) 
SELECT * FROM employee_tree

Set Operations

SELECT name FROM users UNION SELECT name FROM customers;
SELECT id FROM orders UNION ALL SELECT id FROM invoices;
SELECT product FROM inventory EXCEPT SELECT product FROM discontinued;
SELECT customer_id FROM orders INTERSECT SELECT customer_id FROM payments;

Combined CTE + Set Operations

WITH regional AS (SELECT region FROM sales) 
SELECT region FROM regional UNION SELECT region FROM returns;

🔄 Backward Compatibility

  • 100% Backward Compatible: All existing functionality preserved
  • API Stability: No breaking changes to public interfaces
  • Legacy Tests: All Phase 1 and prior tests continue passing
  • Performance: No degradation in existing query parsing

🔜 Next Steps (Phase 3 - Q1 2025)

Phase 2 lays the groundwork for Phase 3 advanced features:

  • Window Functions: OVER clauses, ranking functions
  • Advanced JOINs: LATERAL joins, multiple-column USING clauses
  • Subquery Enhancements: Correlated subqueries, EXISTS clauses
  • Data Modification: Enhanced INSERT/UPDATE/DELETE with CTEs
  • SQL-99 Compliance: Advanced analytical functions

📝 Full Changelog

Added

  • Complete Common Table Expression (CTE) parsing with recursive support
  • Set operations: UNION, UNION ALL, EXCEPT, INTERSECT with proper precedence
  • Multiple CTE definitions in single query
  • CTE column specifications
  • Integration of CTEs with set operations
  • Comprehensive test coverage for all new features
  • Enhanced Go package documentation with Phase 2 examples

Changed

  • Enhanced parser statement routing to support set operations
  • Improved WITH clause attachment for complex statement types
  • Updated performance metrics and benchmarks

Performance

  • Maintains 946K+ sustained operations per second
  • Zero performance regression from Phase 1
  • Memory-efficient object pooling preserved
  • Race-free concurrent access validated

🎉 GoSQLX v1.2.0 delivers enterprise-grade SQL parsing with advanced CTE and set operations support!

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track ajitpratap0/GoSQLX

Get notified when new releases ship.

Sign up free

About ajitpratap0/GoSQLX

7 SQL tools (validate, format, parse, lint, security scan, metadata extraction, full analysis) over Streamable HTTP. Public remote server at mcp.gosqlx.dev - no install needed. 1.25M+ ops/sec, 6 SQL dialects.

All releases →

Related context

Beta — feedback welcome: [email protected]