Release Notes¶
GSP Java v3.x to v4 Migration Guide
Version history of general sql parser¶
GSP Java version 4.2.8(2026-08-31)¶
- 2026-08-31 Refactor the build process for the SQLFlow integration
GSP Java version 4.2.7(2026-08-30)¶
- 2026-08-31 [SQL Server] Accept statements the grammar models as a bare dummy node —
DROP PARTITION FUNCTION,DROP PARTITION SCHEME,DROP SYNONYM,CREATE MASTER KEY,CREATE CREDENTIAL,CREATE DATABASE SCOPED CREDENTIAL,CREATE DATABASE ENCRYPTION KEY,CREATE EVENT SESSION,CREATE EXTERNAL DATA SOURCE,CREATE EXTERNAL LANGUAGE,CREATE SELECTIVE XML INDEXandALTER SECURITY POLICY— as the body of anIF/WHILE. They parsed standalone but produced no statement object when embedded - 2026-08-30 [Teradata] Reject empty INSERT column lists instead of failing later
- 2026-08-30 [Snowflake] Reject malformed SET statement roots
- 2026-08-30 [SQL Server] Reject an
IF/WHILEwith no statement body - 2026-08-30 [SQL Server] Guard prefixed literal decoding against malformed input
- 2026-08-30 [SQL Server, Teradata] Guard against cycles in CTE resolution
- 2026-08-30 [SQL Server, Oracle] Narrow the SELECT recovery guards so valid statements are not affected
- 2026-08-30 [SQL Server, Greenplum] Build constraint attributes on recovered statements
- 2026-08-29 [SQL Server] Prevent data lineage model crashes on recovered ASTs
- 2026-08-29 [Databricks] Support
$varnotebook variable substitution - 2026-08-28 [SQL Server, Sybase] Fix NullPointerException on a malformed select-list alias form
- 2026-08-28 [MySQL, ClickHouse] Fix NullPointerException on
RENAMEwithout theCOLUMNkeyword - 2026-08-27 [Semantic IR] Publish Join Analysis Consumption Profile v1. New integrations should use
SqlSemanticAnalyzerand consume immutable join facts, structured diagnostics, andCatalogDTO input; low-level builder and binding APIs remain advanced/preview, while validation and parity packages remain internal - 2026-08-27 [Semantic IR] Make
AnalysisResult.getSchemaVersion()match the payload-sensitive version written to its JSON (3for join-analysis facts);SqlSemanticAnalyzer.schemaVersion()remains the historical baseline version1 - 2026-08-26 [SQL Server] Fix statement splitting in CTE-bodied views
- 2026-08-25 Report the ON/WHERE operand's own coordinate on data lineage join and filter sources: a
clauseType="joinCondition"/"where"source now points at the operand reference in the clause instead of the definition site of a shared#temp/CTE/derived-table column, and star-expandedSELECT * INTO #tcolumns carry the*token's span instead of a degenerate[1,1]coordinate - 2026-08-25 [Snowflake] Drop the stale session schema after USE <database>
- 2026-08-24 [Snowflake] Resolve a bare
USE <name>asUSE DATABASE - 2026-08-24 Keep dynamic-SQL lineage when an enrichment walk fails instead of dropping the dynamic site
- 2026-08-24 Guard null children in acceptChildren to prevent NullPointerException on recovered ASTs
- 2026-08-20 [Sybase, Sybase IQ, SQL Anywhere, SQL Server] Support
DROP ... IF EXISTS - 2026-08-20 [SQL Server] Resolve finite dynamic SQL values
- 2026-08-19 [Oracle] Classify pseudocolumns instead of binding them, and fix the edge cases found in review
GSP Java version 4.2.6(2026-08-18)¶
- 2026-08-18 [MySQL] Reach 100% measured syntax coverage: 135 of 135 documented constructs, 242 of 242 statements
- 2026-08-18 [MySQL] Recognize the admin DDL statement families in the statement splitter: ALTER USER, ALTER INSTANCE, CREATE/ALTER/DROP SERVER, TABLESPACE (including UNDO TABLESPACE), LOGFILE GROUP, CREATE/DROP ROLE, GET DIAGNOSTICS, and IMPORT TABLE FROM
- 2026-08-18 [MySQL] End a BEGIN-bodied stored routine at a nesting-balanced END; when no DELIMITER command was issued, instead of merging every following statement into the routine; a routine terminator fused with the delimiter character (END$) works again
- 2026-08-18 [MySQL] Parse the ODBC escape sequence { OJ ... } as a table reference
GSP Java version 4.2.5(2026-08-18)¶
- 2026-08-18 [Oracle] Reach 100% measured syntax coverage: 182 of 182 documented constructs, 319 of 319 statements
- 2026-08-18 [Oracle] Recognize the admin DDL statement families in the statement splitter: ANALYTIC VIEW, ATTRIBUTE DIMENSION, AUDIT POLICY, HIERARCHY, INMEMORY JOIN GROUP, LOCKDOWN PROFILE, MATERIALIZED ZONEMAP, PLUGGABLE DATABASE, PMEM FILESTORE, FLASHBACK ARCHIVE, DATABASE LINK and SYNONYM alter forms, EDITION, ADMINISTER KEY MANAGEMENT, and private/or-replace OUTLINE variants; fix a typo that broke CREATE RESTORE POINT
- 2026-08-18 [Oracle] Keep multi-line SET CONSTRAINT[S]/ROLE/TRANSACTION as SQL statements instead of truncating them as line-terminated SQL*Plus SET commands, and keep semicolons inside a CREATE JAVA SOURCE class body from ending the statement
- 2026-08-18 [Oracle] Parse TRUNCATE CLUSTER, ALTER MATERIALIZED VIEW option heads (CONSIDER FRESH, ENABLE/DISABLE QUERY REWRITE, COMPILE), DROP MATERIALIZED VIEW LOG ON, and CREATE DATABASE with its full clause list
GSP Java version 4.2.4(2026-08-18)¶
- 2026-08-18 [SQL Server] Reach 100% measured syntax coverage: 290 of 290 documented constructs, 1082 of 1082 statements
- 2026-08-18 [SQL Server] Recognize 48 admin DDL statement kinds in the statement splitter (DROP/ALTER/CREATE for broker priorities, encryption keys, external objects, resource pools, audits, availability groups and more) and stop mid-statement splits at SET, IF EXISTS and MERGE
- 2026-08-18 [SQL Server] Parse GRANT/DENY/REVOKE securable classes (ENDPOINT::, AVAILABILITY GROUP::, SYMMETRIC KEY::, XML SCHEMA COLLECTION:: and more), CASCADE tails, REVOKE GRANT OPTION FOR, and CREATE ENDPOINT as a grantable permission
- 2026-08-18 [SQL Server] Parse CREATE EXTERNAL TABLE without WITH, selective XML index ALTERs, SEND ON CONVERSATION handle lists, DROP DEFAULT IF EXISTS, and GET CONVERSATION GROUP
GSP Java version 4.2.3(2026-08-18)¶
- 2026-08-18 [Snowflake] Reach 100% measured syntax coverage: 455 of 455 documented constructs, 757 of 757 statements
- 2026-08-18 [Snowflake] Recognize integration, managed account, stream, procedure, DESC, EXPLAIN USING and SHOW statement families in the statement splitter
- 2026-08-18 [Snowflake] Fix a mid-statement split that turned ALTER ... SET into two statements, and stop re-parsing CREATE EXTERNAL FUNCTION request URLs as SQL bodies
- 2026-08-18 [Snowflake] Parse ALTER DATABASE/SCHEMA/PIPE/TASK/EXTERNAL TABLE variants, CREATE DATABASE AS REPLICA, REVOKE ... FROM SHARE, open-ended privilege names, SHOW STREAMS/TASKS filters, and Windows file paths in PUT
GSP Java version 4.2.2(2026-08-18)¶
- 2026-08-18 [ClickHouse] Reach 100% measured syntax coverage: 156 of 156 documented constructs, 717 of 717 statements
- 2026-08-18 [ClickHouse] Recognize access-entity and admin DDL in the statement splitter: CREATE/ALTER USER, ROLE, ROW POLICY, QUOTA, SETTINGS PROFILE, MASKING POLICY, NAMED COLLECTION, DICTIONARY, plus CHECK, EXISTS, EXECUTE AS, MOVE, EXCHANGE TABLES, UNDROP, REPLACE TABLE and the SHOW family
- 2026-08-18 [ClickHouse] Parse dollar-quoted strings ($tag$...$tag$), query parameters {name: Type}, TRUNCATE/USE/SET/DESCRIBE variants, CREATE DATABASE engine clauses, more ALTER TABLE forms, ASSUME constraints, compound and unit-less INTERVAL, and AT TIME ZONE
- 2026-08-18 [ClickHouse] Fix a tokenizer crash that silently produced zero tokens for query-parameter syntax followed by whitespace
GSP Java version 4.2.1(2026-08-18)¶
- 2026-08-18 [ClickHouse] Raise measured syntax coverage from 78/156 to 100/156 constructs (504 to 548 of 706 statements)
- 2026-08-18 [ClickHouse] Parse Map literals, two-argument CAST, dotted nested column names and tuple element access (a.2)
- 2026-08-18 [ClickHouse] Fix statement mistyping after token-level rewrites: a statement following a :: typecast could be reported as invalid
- 2026-08-18 [ClickHouse] Parse ALTER TABLE UPDATE/DELETE IN PARTITION, column names from/to, INSERT ... FORMAT with inline data, and PARALLEL WITH
- 2026-08-18 [ClickHouse] Parse named Tuple fields in type and expression positions, ILIKE column matchers, COLUMNS arithmetic
- 2026-08-17 [ClickHouse] Parse == comparison, ASC/DESC COLLATE, INTERSECT DISTINCT, OFFSET/FETCH, GROUPING SETS, ASOF/ANY join order, WITH FILL STALENESS/INTERPOLATE, VALUES table literals, trailing commas
GSP Java version 4.2.0(2026-08-17)¶
- 2026-08-17 [Sybase ASE, SAP SQL Anywhere, Sybase IQ] Add three per-product vendors, each with its own grammar, splitter and syntax coverage page;
sybaseremains the permissive union of the family and is unchanged - 2026-08-17 [Sybase ASE] Reject Watcom-SQL procedure syntax that belongs to SQL Anywhere: leading parameter modes, DEFAULT parameter defaults, RESULT clauses, ON EXCEPTION RESUME, a body without AS, and parameter names without @
- 2026-08-17 [Sybase ASE, SAP SQL Anywhere] Reject Sybase IQ specialized index types and IQ-only DDL
- 2026-08-17 [Sybase IQ, SAP SQL Anywhere] Reject ASE-only statements such as DUMP TRANSACTION, READTEXT, UPDATE INDEX STATISTICS and DELETE STATISTICS, with a message naming the statement that belongs to a different product
- 2026-08-17 Report the full capability matrix for all 42 dialects
- 2026-08-16 [Sybase] Keep the trailing parameter mode OUTPUT/OUT
- 2026-08-15 [Sybase] Support DEFAULT in procedure parameters
- 2026-08-14 [Snowflake, Vertica] Bind WHERE clause references to a SELECT list alias
- 2026-08-14 [Snowflake] Pin COPY INTO option order
- 2026-08-14 [Snowflake] Keep quotes in PIVOT IN-list column names, and fix Oracle PIVOT quote naming
- 2026-08-13 [Snowflake] Resolve FLATTEN implicit output columns
- 2026-08-13 [SQL Server] Decode quoted SELECT aliases in data lineage output
- 2026-08-02 Fix a multi-threading defect where repeated analysis of the same input returned different results
- 2026-08-02 Add a column lookup cache to speed up data lineage analysis
- 2026-08-01 Detect large SQL files automatically and split them for parallel analysis
- 2026-08-01 Merge and deduplicate data lineage incrementally, and speed up relation deduplication by replacing MD5 with a 64-bit hash
- 2026-08-01 Fix null pointer and concurrency defects in data lineage analysis, and improve sorting and temporary file cleanup
- 2026-08-01 Scan the whole SQL environment before dataflow and procedure dataflow analysis
- 2026-07-31 Avoid out-of-memory and an infinite loop when dataflow analysis falls back to procedure dataflow analysis
- 2026-07-30 Fix missing database and schema when source code is read from JSONL without a group
GSP Java version 4.1.11(2026-08-10)¶
- 2026-08-10 [ClickHouse] Model remote()/remoteSecure() table functions as lineage sources, with ClickHouse-exact string-literal decoding
- 2026-08-10 [ClickHouse] Parse ALTER TABLE sub-clause families: DETACH/ATTACH/MOVE PART, FREEZE WITH NAME, MATERIALIZE/CLEAR/APPLY, projections, expression indexes, MODIFY/RESET SETTING, TTL and COMMENT
- 2026-08-09 [ClickHouse] Resolve expression-CTE aliases (WITH expr AS name) as scalar symbols in the resolver and data lineage
- 2026-08-09 [ClickHouse] Parse expression CTEs, materialized CTEs and lambda-bodied CREATE FUNCTION
- 2026-08-09 [ClickHouse] Parse the VIEW family: ON CLUSTER, refreshable materialized views, MODIFY QUERY
- 2026-08-09 [ClickHouse] Parse OPTIMIZE TABLE tails and table functions in FROM
- 2026-08-09 [ClickHouse] Add a documented syntax coverage corpus; measured coverage rises from 51/156 to 78/156 constructs (504/704 statements)
- 2026-08-09 Document fault-tolerant SQL formatting and all SQL formatter options
- 2026-07-29 [PostgreSQL] Map && to overlaps_t and parse unknown operators
- 2026-07-29 [Snowflake] Support alias after parenthesized PIVOT table
- 2026-07-29 Render aliased nodes from the token chain, not list index
GSP Java version 4.1.10(2026-08-08)¶
- 2026-08-08 Stop duplicating star-traced columns in linkedColumns
- 2026-08-08 Reorganize documentation by user goal
- 2026-08-07 Keep undefined MERGE VALUES names unresolved
- 2026-08-07 [SQL Server] Fix CLR routines with AS EXTERNAL NAME
- 2026-08-07 [BigQuery] Fix CTE with parenthesized main query
- 2026-08-07 Add AST rewriting how-to and demo guide
- 2026-08-07 Add offline SQL syntax validation guide
- 2026-08-06 [Vertica] Raise syntax coverage from 77% to 100% of corpus
- 2026-08-06 [OpenEdge] Raise corpus parse rate from 52% to 100%
- 2026-08-06 [Teradata] Raise corpus parse rate from 83% to 98%
- 2026-08-06 [HANA] Raise syntax coverage from 77% to 98% of corpus
- 2026-08-06 [Informix] Raise corpus parse rate from 86% to 94%
- 2026-08-06 [Greenplum] Raise corpus parse rate from 75% to 96%
- 2026-08-05 [DB2] Reach 100% corpus parse coverage
- 2026-08-05 [Impala] Raise corpus parse rate from 70% to 99%
- 2026-08-05 [Exasol] Raise syntax coverage from 42% to 98% of corpus
- 2026-08-05 [Flink] Raise corpus parse rate from 67% to 98%
- 2026-08-05 [Sybase] Raise IQ syntax coverage to 88% of corpus
- 2026-08-05 [SQL Server] Fix token shift from Exasol token placement
- 2026-08-05 [Teradata] Fix whitespace-sensitive cast shorthand
- 2026-08-04 [Databricks] Fix Mantis 4638-4646 syntax gaps
- 2026-08-04 Add trusted playground lineage
- 2026-08-03 Harden stored procedure lineage trust
- 2026-08-03 Add doris, starrocks, flink, soql and odbc to the sqlcoverage corpus
- 2026-08-01 Add SELECT/DML/proc parse rates to coverage docs
- 2026-07-31 [Databricks] Pin ODBC date escape shapes from Mantis 4575
- 2026-07-31 [Docs] Fix quick-start Java sample and trial-limit claims
- 2026-07-31 Unify public dialect metadata
- 2026-07-31 Publish an SBOM and smoke-test the install daily
- 2026-07-30 [MySQL] Only treat line-leading DELIMITER as a directive
- 2026-07-30 [SQL Server] Allow empty OVER() in WITHIN GROUP
- 2026-07-29 [Teradata] Support table operators and CTAS COMPRESS
- 2026-07-29 [Presto] Add MERGE, view security, UNNEST and ident fixes
- 2026-07-29 [Oracle] Support OFFSET expr and per-INTO LOG ERRORS
- 2026-07-29 Add generator for docs-site parse-coverage tables
- 2026-07-28 [Oracle] Restore record-fill lineage with exact bindings
GSP Java version 4.1.9(2026-07-28)¶
- 2026-07-28 Apply the trial size cap once, where SQL is read
- 2026-07-26 Fixed stackover flow bug.
- 2026-07-26 Fix several CREATE FUNCTION bugs
- 2026-07-26 Fix getLastSelectStmt returning the wrong SELECT statement
- 2026-07-26 fix(dlineage): Fix intermediate result retention in stored procedure/function scenarios
- 2026-07-26 fix(dataflow): Fix parallel analysis losing stored procedure/function lineage
- 2026-07-26 fix(DataflowUtility): Fix loss of stored procedure short-name mappings
- 2026-07-26 feat(dataflow): Add procedure variable association and target table marking
- 2026-07-26 refactor(dataflow): Refactor stored procedure/function name retrieval and improve result set handling
- 2026-07-25 feat: Add stored procedure ID association logic and improve data flow analysis
- 2026-07-25 Stop column-level CSV export dropping all lineage on NPE
- 2026-07-22 Fix schema-topology sqlflow-sharded lineage loading
- 2026-07-21 [SQL Server] Add TEXTPTR statement lineage
- 2026-07-21 [SQL Server] Add TEXTPTR statement AST support
- 2026-07-21 [MSSQL] Enable external-script passthrough by default
- 2026-07-21 [MSSQL] Add opt-in external-script passthrough lineage
- 2026-07-21 [MSSQL] Recover external-script input lineage
- 2026-07-21 [MSSQL] Harden sharded version parse, baseDir, block source (round 3)
- 2026-07-21 [MSSQL] Close remaining sharded consumer gaps (round 2)
- 2026-07-21 [MSSQL] Skip sourceUnavailable records instead of parsing their text
- 2026-07-20 [MSSQL] Let the LR automaton report what the prefix committed to
- 2026-07-20 [MSSQL] Prove span ownership by token identity, not by text
- 2026-07-20 [MSSQL] Scan tokens, direct the roles, bind the parse to the site
- 2026-07-20 [MSSQL] Do not let delimited names trip the structural scan
- 2026-07-20 [MSSQL] Require structural containment and edge-owned bindings
- 2026-07-20 [MSSQL] Fix caller-trusted evidence and uncommitted binder regions
- 2026-07-20 [MSSQL] Close direct-binding trace gaps before gating
- 2026-07-20 [MSSQL] Require the alias wrapper in binding-trace completeness
- 2026-07-20 [MSSQL] Add binding-trace capture to resolver2
- 2026-07-19 [MSSQL] Count CREATE TABLE reparse only when it actually runs
- 2026-07-19 [MSSQL] Fix CASE re-evaluation blowup and typing gaps in fragment IR
- 2026-07-19 [MSSQL] Close provenance-laundering paths in fragment IR
- 2026-07-19 [MSSQL] Add fragment provenance to dynamic-SQL evaluator
- 2026-07-19 [Oracle] Guard null trigger body in acceptChildren
- 2026-07-18 [Oracle, MSSQL] Add routine identity + catalog B0
- 2026-07-18 Guard recovered argument bindings against wildcards
- 2026-07-18 [MSSQL] Bind nested EXEC arguments under USE context
- 2026-07-18 [Oracle] Bind PL/SQL package-member call arguments
- 2026-07-18 [Oracle] Resolve DBMS_SQL.PARSE dynamic SQL
- 2026-07-18 [MSSQL, Oracle] Index cross-file routines in a shared catalog
- 2026-07-18 [Oracle] Bind EXECUTE IMMEDIATE via call-site literals
- 2026-07-18 [MSSQL] Resolve dynamic SQL via cross-file call bindings
- 2026-07-18 [MSSQL] Resolve dynamic SQL via literal call-site bindings
- 2026-07-17 [MSSQL] Discover dynamic-SQL sites inside WHILE loops
- 2026-07-17 [MSSQL] Evaluate template-built dynamic SQL in default lineage path
- 2026-07-17 [Oracle] Bind trigger correlation names for column lineage
- 2026-07-17 [Snowflake] Restore extractSnowflakeSQL script callback
- 2026-07-17 [Snowflake] Skip non-SQL procedure bodies in lineage
- 2026-07-17 [Redshift, PostgreSQL] Accept ANALYSE spelling of ANALYZE
- 2026-07-17 [Redshift] Allow PRIOR as a table alias in expressions
- 2026-07-16 [DuckDB, EDB] Eliminate parser conflicts
- 2026-07-16 Eliminate parser conflicts in 10 more dialects
- 2026-07-16 [Oracle, MSSQL, MySQL, PostgreSQL] Eliminate conflicts
- 2026-07-16 [MSSQL, MySQL, PostgreSQL] Fix parser conflicts
- 2026-07-16 [BigQuery] Fix all 5 reduce/reduce grammar conflicts
- 2026-07-15 [Redshift] Support INTERVAL field-qualified types
- 2026-07-15 [Redshift] Support order-independent COPY QUOTE option
- 2026-07-15 [Redshift] Support schema-qualified PERCENTILE_DISC/CONT
- 2026-07-14 [Build] Fix Maven trial artifact metadata (QS-001/002/009)
- 2026-07-13 [Teradata] Split same-line statement after SET QUERY_BAND
- 2026-07-13 [Databricks] Support standalone REPLACE TABLE
- 2026-07-13 [Databricks] Support CTE with the AS keyword omitted
- 2026-07-13 [Databricks] Support {d } and {t } ODBC date/time escapes
- 2026-07-13 [Databricks] Support SEMI JOIN and ANTI JOIN
- 2026-07-13 [Databricks] Support POSITION(substr IN expr) form
- 2026-07-12 Add identifier normalization guide and guard
- 2026-07-12 Skip no-op segment parse on identifier hot path
- 2026-07-12 Reconcile NameService onto the canonical engine
- 2026-07-12 Refine dlineage identifier comparison scope (P0d.3c2)
- 2026-07-12 Vendor-aware PL/SQL scope name matching (P0d.3d)
- 2026-07-12 Canonicalize dlineage wrapper compares (P0d.3c)
- 2026-07-12 Canonicalize TObjectName table matching (P0d.3b)
- 2026-07-12 Drop hand-rolled strippers in resolver2 (P0d.3a)
- 2026-07-12 Unify all identifier equality on the canon (P0d.2)
- 2026-07-12 Make areEqual canonical-key equality (P0d.1)
- 2026-07-12 Fold identifiers with Locale.ROOT (P0d.0)
- 2026-07-12 Convert AST node identifier compares (P0b w4)
- 2026-07-12 Convert dlineage identifier compares (P0b w3)
- 2026-07-12 Convert resolver2 qualified-name compares (P0b w2)
- 2026-07-12 Route safe identifier compares to sameName (P0b w1)
- 2026-07-12 Add sameName identifier equality facade (P0a)
- 2026-07-11 Index column-name matching in analyzeDataFlowRelation
- 2026-07-11 Memoize CTENamespace final-table tracing
- 2026-07-11 Speed up column lineage with provable memoization
- 2026-07-10 [Databricks] Support named bind variable markers (:param)
- 2026-07-05 perf(cloneTable): Optimize table cloning performance and add a parallel-clone threshold
- 2026-07-04 refactor(sqlutil): Optimize parseNames performance and caching logic
- 2026-07-02 Fix an array index out-of-bounds bug
- 2026-06-28 feat(FileSplitter): add structured logging and improve error handling
- 2026-06-12 Apply GF-029 ruling: set-op row influence is FILTER
GSP Java version 4.1.5.14(2026-07-08)¶
- 2026-07-08 [Redshift] Support LIKE/ILIKE ... ESCAPE clause
- 2026-07-08 [Redshift] Support SUPER object UNPIVOT in FROM clause
- 2026-07-08 [Redshift] Support BETWEEN in the SELECT list
- 2026-07-08 [Redshift] Support $$-quoted SQL UDF body with semicolons
- 2026-07-08 [Redshift] Support IS [NOT] DISTINCT FROM operator
- 2026-07-08 [Redshift] Support named inline column constraints
- 2026-07-08 [Redshift] Support UNLOAD EXTENSION AS clause
- 2026-07-08 [Redshift] Support array unnesting with AT index alias
- 2026-07-06 Fix constructor escape and routine metadata races
- 2026-07-06 Fix shared-SQLEnv DDL registration races and NPE
GSP Java version 4.1.5.13(2026-07-06)¶
- 2026-07-06 [Sybase] Support empty statements and ON COMMIT ROWS
- 2026-07-02 [Snowflake] Support GRANT OWNERSHIP COPY CURRENT GRANTS
- 2026-06-30 [SQL Server] Don't fail unit on partial-fold dynamic-SQL re-parse
GSP Java version 4.1.5.12(2026-06-30)¶
- 2026-06-30 [SQL Server] Degrade undecidable-gated dynamic-SQL sites to CONDITIONAL
- 2026-06-29 [Sybase] Guard create-procedure cast against stale rootNode
- 2026-06-29 [SQL Server] Fold CAST/CONVERT, degrade unfoldable dynamic SQL to PARTIAL
- 2026-06-28 [SQL Server] Resolve dynamic-SQL lineage with parameter bindings
- 2026-06-28 [SQL Server] Expose endpoint classification on dlineage model
- 2026-06-28 Add sqlflow-sharded JSON file splitting (FileSplitter)
- 2026-06-28 Add sqlflow-sharded metadata parsing and SQL environment support
- 2026-06-27 Add owner-name fields to catalog model objects
- 2026-06-27 Add catalog metadata helpers for sharded scenarios
GSP Java version 4.1.5.10(2026-06-27)¶
- 2026-06-26 Expose candidate set for unqualified tables ambiguous across schemas
- 2026-06-26 [Hive] Resolve unqualified column ambiguous across derived tables
- 2026-06-26 Honor Option default database over attached TSQLEnv
GSP Java version 4.1.5.9(2026-06-25)¶
- 2026-06-25 Resolve ambiguous columns to physical base tables in candidateTables (UNION/EXCEPT/INTERSECT/CTE aware)
- 2026-06-24 [SQL Server] Fold literal EXEC('
') so it yields lineage - 2026-06-24 [SQL Server] Emit per-site dynamic-SQL diagnostics and produced-lineage signal
- 2026-06-23 [Oracle] Improve synonym and dblink data lineage analysis
- 2026-06-23 Improve synonym support; fix synonym resolution and lineage propagation
- 2026-06-22 Add catalog metadata fields to dlineage model
- 2026-06-21 Fix NPE in dataflow Table model
GSP Java version 4.1.5.8(2026-06-21)¶
- 2026-06-21 [SQL Server] Add synonym base target, resolution, and export
GSP Java version 4.1.5.7(2026-06-19)¶
- 2026-06-19 [Oracle] Add MantisBT 4516 regression for ${} regex literal
- 2026-06-19 [SQL Server] Accept NULL/NOT NULL on scalar DECLARE
- 2026-06-19 [SQL Server] Set itSpatial index type on CREATE SPATIAL INDEX
- 2026-06-18 [Snowflake] Wire scoped temporary into temp-kind consumers
- 2026-06-18 [Snowflake] Support SCOPED TEMPORARY table
- 2026-06-18 [Snowflake] Allow colon path access on constants
- 2026-06-18 [Snowflake] Support CASE cast in SQL UDF body
- 2026-06-18 [Oracle] Fix CTE alias resolution for repeated references
- 2026-06-18 [dlineage] Add /csv-simple option to DataFlowAnalyzer
- 2026-06-18 [Teradata] Parse MEETS/PRECEDES/SUCCEEDS period predicates
- 2026-06-18 [Snowflake] Add regression tests for TIMESTAMP-typed proc params
- 2026-06-18 [Snowflake] Flag temporary view in dlineage output
- 2026-06-18 [Core] Add null checks to several methods to avoid NPE
- 2026-06-17 [Snowflake] Allow TIMESTAMP as procedure parameter name
- 2026-06-17 [Teradata] Allow trailing loop label on END WHILE / END REPEAT
- 2026-06-17 [Snowflake] Add regression test for 4540 PIVOT aliased IN values
- 2026-06-17 [SQL Server] Add regression test for 4530 ALTER DATABASE in block
- 2026-06-17 [SQL Server] Add regression test for 4531 GRANT ON TYPE::
- 2026-06-17 [SQL Server] Allow chained methods on parenthesized expr
- 2026-06-17 [Snowflake] Gate procedure exclusion on statement type
- 2026-06-17 [Snowflake] Apply procedure exclusion to SQL procedures
GSP Java version 4.1.5.6(2026-06-15)¶
- 2026-06-15 [Dameng] Support CREATE [OR REPLACE] PROCEDURE
- 2026-06-13 [SQL Server] Add single-quote regression tests for 4496
- 2026-06-13 [Oracle] Add regression tests for ${} in string literals
- 2026-06-12 [PostgreSQL] Fix NOT DEFERRABLE token corruption
- 2026-06-12 [PostgreSQL] Support EXCLUDE WHERE and constraint attributes
- 2026-06-12 [PostgreSQL] Extend Mantis 4512 regression coverage
- 2026-06-12 [PostgreSQL] Fix constraint toString truncating clauses
- 2026-06-12 [PostgreSQL] Fix formatter NPE on ADD CONSTRAINT CHECK
GSP Java version 4.1.5.5(2026-06-11)¶
- 2026-06-11 [Snowflake] Allow commas in ALTER DYNAMIC TABLE SET
- 2026-06-11 [Snowflake] Add dynamic table SCHEDULER attribute
- 2026-06-11 [OceanBase] Add Q-quote regression test for Oracle mode
- 2026-06-11 [Dameng] Fix Q-quote lexing and stale keyword values
- 2026-06-11 [Oracle, OceanBase] Fix Q' inside Q-quote literals
- 2026-06-11 [Oracle] Add regression test for MantisBT 4508
- 2026-06-11 [Oracle] Match quoted parameter names in resolution
- 2026-06-11 [Oracle] Don't report errors for partial dynamic SQL
- 2026-06-11 [Oracle] Skip unknowable dynamic SQL in lineage
- 2026-06-10 Link UPDATE target alias to FROM clause table
- 2026-06-10 Fix lineage crash on expression with quoted dot
- 2026-06-10 [Snowflake] Support ODBC fn escape syntax
- 2026-06-10 [Redshift] Add TRIM comma-form regression test
- 2026-06-10 [Redshift] Allow ANSI TRIM position keyword without char
- 2026-06-09 [PostgreSQL, Greenplum, Redshift] '/' on a line is division
- 2026-06-09 [Redshift] Treat '/' alone on a line as division
GSP Java version 4.1.5.4(2026-06-08)¶
- 2026-06-08 Mark LATERAL joins lateral in the join graph
- 2026-06-07 Degrade non-exact ON-predicate binding over join
- 2026-06-07 Degrade star expansion over nested join
- 2026-06-07 [Oracle] Fix synonym filtering and complete star-column bridge relations
- 2026-06-07 Degrade catalog-less star expansion over join
- 2026-06-06 Recurse into parenthesized joined-table operand
- 2026-06-06 Degrade non-exact column binding over join graph
- 2026-06-06 [Oracle, PostgreSQL] Degrade USING-join unqualified column miss
- 2026-06-06 [Oracle] Support (+) outer-join syntax in implicit joins
- 2026-06-06 [Oracle] Promote implicit comma-join predicates to INNER joins
- 2026-06-06 [Oracle, PostgreSQL] Resolve unqualified NATURAL JOIN merged key
- 2026-06-06 [Formatter] pp2: break statements onto separate lines
- 2026-06-05 [SQL Server] Fix MERGE USING CTE dropping lineage
- 2026-06-05 [Teradata] Support PIVOT DEFAULT ON NULL clause
- 2026-06-05 [BigQuery] Fix bitwise shift vs AND precedence
- 2026-06-03 [Semantic IR] Expose semi-joins and fix USING clause span
- 2026-06-03 [Semantic IR] Degrade catalog-less NATURAL JOIN to a warning
- 2026-06-02 [Impala] Parse PRIMARY KEY / FOREIGN KEY in CREATE TABLE
- 2026-06-02 [Vertica] Parse AUTO_INCREMENT column attribute
- 2026-06-02 [DB2] Surface stored-procedure CALL in dlineage call graph
- 2026-06-02 [Couchbase] Parse ANSI JOIN ... ON
- 2026-06-02 [SparkSQL] Parse PRIMARY KEY / FOREIGN KEY in CREATE TABLE
- 2026-06-02 [Informix] Carry column list on table-level PRIMARY KEY
- 2026-06-02 [DB2] Populate FETCH FIRST n count on TFetchFirstClause
- 2026-06-02 [Impala] Attach ON condition to LEFT [OUTER] JOIN
- 2026-06-02 Surface inline column PRIMARY KEY / FOREIGN KEY in dlineage
- 2026-06-02 [SQL Server] Support CROSS/OUTER APPLY in semantic IR
- 2026-06-02 [MySQL] Degrade STRAIGHT_JOIN to INNER in semantic IR
GSP Java version 4.1.5.3(2026-06-02)¶
- 2026-06-02 [Oracle] Filter invalid coordinates in coordinate handling
- 2026-06-02 [Oracle] Fix uninitialized coordinateItems update; add synonym + dataflow merge tests
- 2026-06-01 [Oracle] Support synonym statement parsing and analysis
- 2026-06-01 Refactor dataflow merge logic and ID handling
- 2026-05-30 [Semantic IR] Admit PIVOT row-shaping clauses
- 2026-05-29 [SQL Server] Lock in permanent SELECT INTO target tableKind=etkBase
- 2026-05-29 [Sybase] Support Watcom IF ... THEN ... END IF in procedure bodies
- 2026-05-29 [Hive, SparkSQL] Structured-dataflow lineage for explode(from_json(...))
- 2026-05-29 [Hive] Harden CTE chain walkers
- 2026-05-29 [Hive] Stop calculated/aliased CTE columns leaking into base linkedColumns
- 2026-05-28 [Hive] Treat comments as trivia in ALL.col lookahead
- 2026-05-28 [Hive] Allow ALL as table alias in qualified name
- 2026-05-28 Admit nested PIVOT/UNPIVOT in a predicate-subquery body
- 2026-05-28 Admit nested PIVOT/UNPIVOT in a set-op branch
- 2026-05-28 Admit nested PIVOT/UNPIVOT as a CTE body
- 2026-05-27 Admit nested PIVOT/UNPIVOT in FROM-subquery body
- 2026-05-27 Expand bare SELECT * over subquery-source PIVOT/UNPIVOT
- 2026-05-27 Admit PIVOT/UNPIVOT over a FROM-subquery source
- 2026-05-27 Expand multi-value UNPIVOT SELECT * via catalog
- 2026-05-27 Expand bare SELECT * over UNPIVOT via catalog
- 2026-05-27 Expand bare SELECT * over PIVOT via catalog
- 2026-05-27 Add multi-value-column UNPIVOT lineage
- 2026-05-27 Add UNPIVOT output-column lineage
- 2026-05-27 Add PIVOT output-column lineage
- 2026-05-27 Bind PIVOT source + capture consumed refs
- 2026-05-27 Add structured GROUP BY element model
- 2026-05-27 Capture GROUP BY ROLLUP/CUBE/GROUPING SETS refs
- 2026-05-27 Validate QUALIFY inline window-fn names
- 2026-05-26 Lift QUALIFY, emit qualifyColumnRefs
- 2026-05-26 Unify MERGE OUTPUT USING-source lineage
- 2026-05-26 Unify RETURNING/OUTPUT subquery lineage
- 2026-05-26 [PG, MSSQL] MERGE USING-subquery sees outer CTE
- 2026-05-26 [PG, MSSQL, Snowflake, Oracle] Admit scalar-body WHERE predicate subqueries
GSP Java version 4.1.5.2(2026-05-26)¶
- 2026-05-26 [BigQuery] Harden star-column lineage guard
- 2026-05-25 [BigQuery] Fix UNNEST CTE star lineage crash
- 2026-05-25 [Teradata] Allow optional alias in MERGE USING VALUES
- 2026-05-25 [Teradata] Support NUMBER(*) unbounded precision
- 2026-05-25 [Snowflake] Harden COPY INTO lineage
- 2026-05-25 [Snowflake] Support COPY INTO inside procedure block
- 2026-05-25 [Snowflake] Model USING TEMPLATE distinct from CTAS
- 2026-05-25 [Snowflake] Support CREATE TABLE USING TEMPLATE
- 2026-05-25 [Hana] Support WITH RANGE_RESTRICTION clause
- 2026-05-25 [Oracle] Resolve PL/SQL params in dynamic SQL, not orphan columns
- 2026-05-25 Centralize re-parse coordinate shifting
- 2026-05-24 Harden EXECUTE IMMEDIATE coordinate shift for nested statements
- 2026-05-24 Fix wrong line numbers for function/procedure body coordinates
- 2026-05-24 [Oracle] Fix wrong line numbers for dynamic SQL coordinates
- 2026-05-24 [PG, MSSQL, Snowflake] Admit FROM-subquery body WHERE predicate subqueries
- 2026-05-24 [PG, MSSQL, Snowflake, Oracle] Admit UPDATE SET-RHS mixed-expression scalar subqueries
- 2026-05-23 [PG, Oracle] Admit MERGE per-WHEN action WHERE correlated predicate subqueries
- 2026-05-23 [PG, MSSQL, Snowflake, Oracle, MySQL] Admit UPDATE SET-RHS correlated scalar subqueries
- 2026-05-23 Handle null DataFlow gracefully in parallel analysis
- 2026-05-23 Thread-safe CatalogStore
- 2026-05-23 [PG, Oracle] Admit uncorrelated MERGE per-WHEN action WHERE predicate subqueries
- 2026-05-23 [PG, MSSQL, Snowflake, Oracle, MySQL] Admit uncorrelated UPDATE SET-RHS scalar subqueries
- 2026-05-23 [PG, MSSQL, Snowflake] Admit uncorrelated WHERE-side predicate subqueries on CTE bodies
- 2026-05-22 [PG, MSSQL, Snowflake] Admit uncorrelated WHERE-side predicate subqueries on set-op branches
- 2026-05-22 [PG, MSSQL, Snowflake] Admit uncorrelated WHERE-side predicate subqueries on SELECT
- 2026-05-22 [PG, MSSQL, Snowflake] Admit uncorrelated WHERE-side predicate subqueries on DELETE
- 2026-05-22 [PG, MSSQL, Snowflake] Admit uncorrelated WHERE-side predicate subqueries on UPDATE
- 2026-05-22 [Hive] Admit outer-WITH on Hive multi-insert
- 2026-05-22 [PG, Oracle, Snowflake] Admit mixed outer+inner WITH on INSERT (shadowing case)
- 2026-05-22 [PG, Oracle, Snowflake] Admit mixed outer+inner WITH on INSERT (disjoint names)
- 2026-05-21 [SQL Server] Split plain BEGIN block from preceding statement
- 2026-05-19 [Snowflake] Preserve closing quote after even backslash run
- 2026-05-19 [Snowflake] Fix MantisBT 4435 sequential backslash-escaped quotes
- 2026-05-19 [Teradata, Snowflake] Pin MantisBT 4440 join-with-comments behavior
- 2026-05-19 [Sybase] Hook EXCEPTION clause into TBlockSqlNode + TMssqlBlock
- 2026-05-19 [Sybase] Support Watcom EXCEPTION handler + SIGNAL/RESIGNAL
- 2026-05-18 [Snowflake] Support LAG=DOWNSTREAM in CREATE DYNAMIC TABLE
GSP Java version 4.1.5.1(2026-05-18)¶
- 2026-05-18 [PG, MSSQL, Snowflake, Redshift] Admit outer WITH on DELETE
- 2026-05-18 [PG, MSSQL, Snowflake, Redshift] Admit outer WITH on UPDATE
- 2026-05-18 [PG, MSSQL, Oracle, Snowflake, Redshift, Hive] Admit outer WITH on INSERT
- 2026-05-18 [Catalog] Stabilize concurrentSnapshotReadsDoNotThrow test
- 2026-05-18 [SqlGuard] Add bin/probe.sh inner-loop wrapper for the worker
- 2026-05-17 [PG, MSSQL] Admit WITH cte(a,b) SELECT rename
- 2026-05-17 [PG, MSSQL] Admit WITH cte(a,b) MERGE rename
- 2026-05-17 [PG, MSSQL] Admit WITH-clause / CTE on MERGE
- 2026-05-17 [MSSQL] OUTPUT pseudo-table star expansion (MERGE and non-MERGE)
- 2026-05-17 [MSSQL] MERGE OUTPUT projection
- 2026-05-17 [MSSQL, BigQuery] MERGE WHEN NOT MATCHED BY SOURCE
- 2026-05-17 [PostgreSQL, DuckDB] MERGE WHEN MATCHED THEN DO NOTHING (PG 15+)
- 2026-05-17 MERGE per-WHEN action WHERE predicates
- 2026-05-17 [Teradata] Allow STORAGE FORMAT after JSON INLINE LENGTH (MantisBT 4438)
- 2026-05-17 [SqlGuard] Worker startup + smoke scripts; default port 18083
- 2026-05-16 MERGE skeleton + Semantic IR semantics for MERGE
- 2026-05-16 [Teradata] Support INLINE LENGTH on JSON(n) datatypes (MantisBT 4438)
- 2026-05-16 [Hive] Fix CROSS JOIN + other JOIN associativity (MantisBT 4436)
- 2026-05-16 [Teradata] Add ALTER TABLE ... ALTER (column action[, ...]) support
- 2026-05-16 [MySQL] Self-reference DELETE admission
- 2026-05-16 [Hive] Fix LATERAL VIEW with 3+ column aliases (MantisBT 4455)
- 2026-05-16 [Oracle] MODIFY SUBPARTITION exposes partition name (MantisBT 4459)
- 2026-05-16 [Snowflake] DELETE USING full-contract tests
- 2026-05-16 RETURNING /t. catalog-backed expansion
- 2026-05-16 [Oracle] Fix MODIFY col DECRYPT/VISIBLE/INVISIBLE wrongly sets datatype
- 2026-05-15 Fix alias incorrectly filtered bug (Gitee IJNQ17)
- 2026-05-15 [BigQuery] Fix NPE in DataFlowAnalyzer for EXCEPT/REPLACE with aggregates
- 2026-05-14 [Oracle] Admit RETURNING INTO; Resolver2 sees RETURNING refs
- 2026-05-14 Case-insensitive alias lookup in lineage emitter
- 2026-05-14 [MySQL] USING/NATURAL joined UPDATE
- 2026-05-14 RETURNING / OUTPUT projections
- 2026-05-14 [MySQL] Joined DELETE
- 2026-05-13 UPDATE FROM subquery (Semantic IR)
- 2026-05-13 Joined UPDATE / single-target DELETE / UPDATE shapes (Semantic IR)
- 2026-05-13 CTAS / CREATE VIEW Semantic IR skeleton
- 2026-05-13 INSERT INTO target SELECT (Semantic IR)
- 2026-05-13 Catalog-miss WARN + corpus parity; minimal catalog DTO; SqlSemanticAnalyzer API
- 2026-05-13 Anonymous FROM-subquery admit (Semantic IR)
- 2026-05-13 [PostgreSQL] DISTINCT ON column refs (Semantic IR)
- 2026-05-13 Set-op outer row-limit + vendor row-limit metadata
- 2026-05-12 [Sybase] Allow SQL SECURITY in CREATE FUNCTION
- 2026-05-12 Single-SELECT LIMIT / FETCH FIRST (Semantic IR)
- 2026-05-12 Single-SELECT ORDER BY projection alias / ordinal (Semantic IR)
- 2026-05-12 Structured diagnostics in Semantic IR
- 2026-05-12 NATURAL JOIN / JOIN USING / CROSS JOIN (Semantic IR)
- 2026-05-11 Constant-only projection lift; CTE/FROM-subquery star
- 2026-05-10 GSP binding name resolution rewrite (case-insensitive, catalog-verified)
- 2026-05-10 [BigQuery] Regen dataflow fixtures for case-insensitive resolution
- 2026-05-08 [Vertica] Support AND filter and WHERE in MERGE clauses
GSP Java version 4.1.1.0(2026-05-08)¶
- 2026-05-07 Fix DataFlowAnalyzer ClassCastException (TObjectName cannot be cast to TResultColumn)
- 2026-05-06 Add dlineage tests for Oracle PL/SQL procedures (Gitee IJLBB7, IJLB9E)
- 2026-05-02 Add procedure include/exclude filter for data flow analysis (Gitee IJJX1M)
- 2026-05-02 [BigQuery] Strengthen tests for func(args).* STRUCT star expansion (Mantis #4426)
- 2026-05-01 [BigQuery] Support func(args).* star expansion on STRUCT return
- 2026-05-01 [Teradata] Fix NPE on USING ... ABORT BTEQ statements
GSP Java version 4.1.0.15(2026-05-01)¶
- 2026-05-01 [BigQuery] Fix CTE self-reference resolution in ScopeBuilder (Mantis #4412)
- 2026-05-01 [Snowflake] Populate stageLocation for quoted COPY INTO source
- 2026-05-01 [Redshift] Support UNION DISTINCT syntax
- 2026-05-01 [Redshift] Support bare postfix NOTNULL operator
- 2026-04-28 Harden MERGE formatter (codex review follow-ups)
- 2026-04-27 Fix MERGE formatter: USING indent and WHEN action layout
- 2026-04-21 [Hive] Add regression tests for ALTER TABLE CHANGE ... ENABLE
- 2026-04-21 [Teradata] Fix SET with subquery RHS spanning multiple lines
- 2026-04-21 Fix TFunctionCall isBuiltIn array index out of bounds
- 2026-04-20 [DAX, PowerQuery] Fix DAX label and promote PowerQuery tier
- 2026-04-20 [PowerQuery] Wire lineage into DataFlowAnalyzer
- 2026-04-20 [PowerQuery] Infer vendor from inline connector calls
- 2026-04-20 [Snowflake] Support GROUP BY ALL syntax and lineage
- 2026-04-19 [PowerQuery] Add parser, AST and lineage analyzer
- 2026-04-19 [BigQuery] Add column-level lineage for array_agg(table_alias)
- 2026-04-18 [Oracle] Add XML column-level data lineage for XML functions and XMLTABLE
- 2026-04-18 [MSSQL] Support WRITETEXT inside stored procedures
- 2026-04-18 [Oracle] Support ARRAY as synonym for VARRAY in CREATE TYPE
- 2026-04-18 [Teradata] Support IF/WHILE/LOOP inside CASE stmt
- 2026-04-18 [PostgreSQL] Correct toScript() for LIMIT/OFFSET clauses
- 2026-04-18 [DB2] Support IMPLICITLY HIDDEN column attribute
- 2026-04-18 [Oracle] Support PARALLEL/NOPARALLEL in CTAS
- 2026-04-18 [Oracle] Trace pipelined function lineage through CTEs
- 2026-04-18 [Teradata] Support USING source-table MERGE prefix
- 2026-04-18 [Teradata] Support parenthesized type in USING var defs
- 2026-04-18 [Teradata] Support temporal qualifier DML
- 2026-04-18 [MSSQL] Support 3/4-part column names in INSERT column list
GSP Java version 4.1.0.12(2026-04-17)¶
- 2026-04-16 [Databricks] Accept bare time units in TIMESTAMPDIFF
- 2026-04-14 [OceanBase] Support SWITCH REPLICA LEADER SERVER/TENANT options
- 2026-04-14 [OceanBase] Support ALTER SYSTEM ADD ZONE IDC/ZONE_TYPE options
- 2026-04-14 [OceanBase] Add XA transaction support in MySQL mode
- 2026-04-14 [OceanBase] Add CREATE/DROP RESTORE POINT support
- 2026-04-14 [OceanBase] Add CREATE/DROP DBLINK support
- 2026-04-14 [OceanBase] Add CREATE TABLEGROUP PARTITION BY KEY N and LIST COLUMNS N
- 2026-04-14 [OceanBase] Add ALTER TABLEGROUP partition operations
- 2026-04-14 [OceanBase] Add ALTER SYSTEM CANCEL BACKUP operations
- 2026-04-14 [OceanBase] Add ALTER RESOURCE POOL SPLIT and MERGE operations
- 2026-04-14 [Dameng] Support CREATE [OR REPLACE] PACKAGE BODY
- 2026-04-14 [Dameng] Support CREATE [OR REPLACE] PACKAGE specification
- 2026-04-14 [Dameng] Add TIMER (scheduled) triggers on DATABASE
- 2026-04-14 [Dameng] Add system-event and DDL-event triggers ON DATABASE
- 2026-04-14 [Dameng] Add INSTEAD OF trigger on view
- 2026-04-14 [Dameng] Add combined-event triggers with IF/ELSIF/ELSE and EXCEPTION decl
- 2026-04-14 [Dameng] Add basic DML CREATE TRIGGER support
- 2026-04-13 [OceanBase] Fix statement splitter for RELEASE SAVEPOINT, PURGE INDEX/TENANT, CREATE/DROP TABLESPACE
- 2026-04-13 [OceanBase] Fix statement splitter for ALTER USER, CREATE/DROP ROLE in MySQL mode
- 2026-04-13 [OceanBase] Fix CREATE OR REPLACE OUTLINE splitter in both MySQL and Oracle modes
- 2026-04-13 [OceanBase] Add Oracle mode TABLEGROUP PARTITION, ALTER TABLEGROUP ADD TABLE, ALTER TABLE SET TABLEGROUP
- 2026-04-13 [OceanBase] Add MySQL mode TABLEGROUP RANGE COLUMNS N and SUBPARTITION support
- 2026-04-13 [OceanBase] Add FLASHBACK TENANT and FLASHBACK RENAME TO support
- 2026-04-13 [OceanBase] Add CREATE/ALTER RESOURCE UNIT space-separated parameter syntax
- 2026-04-13 [OceanBase] Add CREATE INDEX IF NOT EXISTS support in MySQL mode
- 2026-04-13 [OceanBase] Add ALTER TENANT extended options in system tenant mode
- 2026-04-13 [OceanBase] Add ALTER TABLE SET OceanBase-specific options in MySQL mode
- 2026-04-13 [OceanBase] Add ALTER SYSTEM server/zone management ZONE= and REGION= clauses
- 2026-04-13 [OceanBase] Add ALTER SYSTEM advanced operations (SWITCH REPLICA, BOOTSTRAP, RECOVERY, RESTORE)
- 2026-04-13 [OceanBase] Add ALTER SYSTEM SET COMMENT clause and FLUSH PLAN CACHE extensions
- 2026-04-13 [Dameng] Support PRINT statement in PL/SQL blocks
- 2026-04-13 [Dameng] Support PL/SQL variable assignment (:=) in block body
- 2026-04-13 [Dameng] Support DROP TYPE and DROP TYPE BODY with IF EXISTS
- 2026-04-13 [Dameng] Support DECLARE anonymous PL/SQL blocks
- 2026-04-13 [Dameng] Support CREATE/ALTER/DROP CLASS (Dameng proprietary)
- 2026-04-13 [Dameng] Support CREATE TYPE BODY with method implementations
- 2026-04-13 [Dameng] Support CREATE Type AS VARRAY and TABLE OF (collection types)
- 2026-04-13 [Dameng] Support CREATE TYPE AS OBJECT with member functions
- 2026-04-13 [Dameng] Support CREATE FUNCTION with PL/SQL body (BEGIN/END)
- 2026-04-13 [Dameng] Support CREATE FUNCTION ... AGGREGATE USING
- 2026-04-13 [Dameng] Support // single-line comments in Dameng lexer
- 2026-04-12 [OceanBase] Add SHOW extensions (TENANTS, RECYCLEBIN, TABLEGROUPS, PARAMETERS, TENANT STATUS)
- 2026-04-12 [OceanBase] Add SHOW TENANT / SHOW RESOURCE POOL / SHOW CREATE TENANT
- 2026-04-12 [OceanBase] Add SELECT FOR UPDATE WAIT N support
- 2026-04-12 [OceanBase] Add MERGE INTO statement support
- 2026-04-12 [OceanBase] Add FLASHBACK and PURGE statement support
- 2026-04-12 [OceanBase] Add EXPLAIN statement support
- 2026-04-12 [OceanBase] Add ALTER TABLEGROUP ADD TABLE and ALTER TABLE SET TABLEGROUP
- 2026-04-12 [OceanBase] Add ALTER SYSTEM subcommands (FLUSH, MINOR FREEZE, FREEZE TENANT)
- 2026-04-12 [OceanBase] Add ALTER SYSTEM low-priority subcommands
- 2026-04-12 [OceanBase] Add ALTER SYSTEM SET extended clauses (SCOPE, TENANT, COMMENT)
- 2026-04-12 [OceanBase] Add ALTER SEQUENCE support
- 2026-04-12 [OceanBase] Add checksyntax OceanBase tenant-mode vendor aliases
- 2026-04-12 [OceanBase] CREATE TENANT with space-separated SET clause
- 2026-04-12 [OceanBase] CREATE TABLEGROUP with trailing partition_clause
- 2026-04-12 [Dameng] Support flashback query clause + trailing alias
- 2026-04-12 [Dameng] Support bare parameterless package call (PKG.PROC;)
- 2026-04-12 [Dameng] Support WHEN TIMESTAMP flashback query clause
- 2026-04-12 [Dameng] Support DROP TABLE ... CASCADE (PostgreSQL-style)
- 2026-04-12 [Dameng] Support CREATE HUGE TABLE syntax
- 2026-04-12 [Dameng] Support AS OF LSN and VERSIONS BETWEEN LSN flashback
- 2026-04-12 [Dameng] Support ALTER TABLE WITH/WITHOUT ADVANCED LOG
- 2026-04-12 [Dameng] Support ALTER TABLE TRUNCATE ADVANCED LOG
- 2026-04-11 [Dameng] Support zero-argument pseudo-function calls
- 2026-04-11 [Dameng] Support uppercase hex literals (0xFFFEE)
- 2026-04-11 [Dameng] Support multi-row VALUES clause in INSERT
- 2026-04-11 [Dameng] Support TIME and DATETIME typed datetime literals
- 2026-04-11 [Dameng] Support SQL-standard SUBSTRING and OVERLAY
- 2026-04-11 [Dameng] Support REFRESH MATERIALIZED VIEW statement
- 2026-04-11 [Dameng] Support IDENTITY + CLUSTER PRIMARY KEY and STORAGE clause
- 2026-04-11 [Dameng] Support DROP VIEW with RESTRICT/CASCADE
- 2026-04-11 [Dameng] Support DROP SCHEMA CASCADE
- 2026-04-11 [Dameng] Support DROP MATERIALIZED VIEW [IF EXISTS]
- 2026-04-11 [Dameng] Support DROP MATERIALIZED VIEW LOG [IF EXISTS] ON
- 2026-04-11 [Dameng] Support DATE() as a conversion function
- 2026-04-11 [Dameng] Support CREATE VIEW WITH LOCAL/CASCADED CHECK OPTION
- 2026-04-11 [Dameng] Support CREATE MV LOG PURGE options
- 2026-04-11 [Dameng] Support CREATE MV FOR ON PREBUILT TABLE
- 2026-04-11 [Dameng] Support CONNECT BY LEVEL without FROM in SELECT
- 2026-04-11 [Dameng] Support ALTER MV ENABLE/DISABLE QUERY REWRITE and COMPILE
- 2026-04-11 [Dameng] Parse CREATE LIBRARY libname AS 'path'
- 2026-04-11 [Dameng] Parse CREATE FUNCTION IF NOT EXISTS external bodies
- 2026-04-11 [Dameng] Parse CREATE FUNCTION ... EXTERNAL body
- 2026-04-11 [Dameng] Parse AS LANGUAGE C|CS LIBRARY function body
- 2026-04-11 [Dameng] Parse two-argument XMLQUERY form
- 2026-04-11 [Dameng] Parse bare top-level function-call statement
- 2026-04-11 [Dameng] Parse SELECT ... FOR XML PATH clause
- 2026-04-11 [Dameng] Add Dameng database dialect support
- 2026-04-09 [Teradata] Fix SHOW TABLE statement recognition
- 2026-04-09 [Teradata] Store first argument of QUANTILE function
- 2026-04-09 [Teradata] Recognize BEGIN REQUEST / END REQUEST block
- 2026-04-09 [PostgreSQL] Fix COMMENT ON PROCEDURE with empty parens
- 2026-04-09 [MSSQL] Fix ALTER DATABASE inside procedure body
- 2026-04-09 [BigQuery] Support FORMAT('literal') in CAST clause
- 2026-04-09 [Oracle] Add pipelined table function lineage stitching
- 2026-03-12 [PostgreSQL] Fix ClassCastException in TSequenceOption
- 2026-03-12 [Oracle] Fix OOM in TSqlplusCmdStatement.extractCommandText
- 2026-03-12 [MySQL] Fix tokenize error for backslash delimiter
- 2026-03-10 [Snowflake] Fix escaped quotes unescaping in proc body
- 2026-03-10 [Oracle] Fix &variable. substitution with trailing dot
- 2026-03-10 [MySQL] Fix NPE when FK REFERENCES has no column list
- 2026-03-10 [MSSQL] Fix SELECT not split from CREATE VIEW body
- 2026-03-10 [MSSQL] Fix NPE in EXECUTE sp_executesql without args
- 2026-03-09 [PostgreSQL] Fix ClassCastException for SEQUENCE NAME option
- 2026-03-08 [Snowflake] Fix procedure with $$ body blocking subsequent statements
- 2026-03-08 [Snowflake] Fix GRANT/REVOKE after procedure body not splitting
- 2026-03-08 [MSSQL] Fix splitter incorrectly splitting proc on END; CREATE TABLE
- 2026-03-07 [MySQL] Fix trailing tokens after conditional comments
- 2026-03-07 [MySQL] Fix tokenizer error on multi-dash comments
- 2026-03-07 [MySQL] Fix tokenizer error on dash-separator comments
- 2026-03-07 [Hive] Fix statement splitter for SET after semicolon-less statements
- 2026-03-07 [Hive] Fix statement splitter for SELECT after semicolon-less SELECT
GSP Java version 4.1.0.11(2026-04-08)¶
- 2026-04-08 [Snowflake] Support LIKE ANY/ALL/SOME with pattern list or expr
- 2026-04-08 [Hive] Accept backtick alias with dot after subquery
- 2026-04-08 [DB2] Support CREATE PROCEDURE with single inline DML body
- 2026-04-07 [PostgreSQL, Snowflake] Fix regressions from #3672 and #3491
- 2026-04-07 [BigQuery] Allow digit-leading identifiers in qualified names
- 2026-04-07 [Snowflake] Support * REPLACE, # comments and nameless masking policy
- 2026-04-07 [Redshift] Allow LIKE/ILIKE/SIMILAR TO in SELECT list
- 2026-04-07 [PostgreSQL] Support TRIM(LEADING|TRAILING|BOTH FROM expr, expr)
- 2026-04-07 [PostgreSQL] Fix toScript emitting MySQL LIMIT for non-MySQL dialects
- 2026-04-07 [Oracle] Allow CREATE TYPE AS (attrs) without OBJECT keyword
- 2026-04-07 [Snowflake] Support DESC SCHEMA, SHOW TERSE ROLES, SHOW DATABASES IN ACCOUNT
- 2026-04-07 [Teradata] Allow DIAGNOSTIC ... ON FOR SESSION inside macro body
- 2026-04-07 [Oracle] Do not inherit implicit schema for db_link tables
- 2026-04-07 [MSSQL] Populate cursorName for OPEN/CLOSE cursor stmts
- 2026-04-07 [Teradata] Support RESPECT NULLS on window functions
- 2026-04-07 [Teradata] Allow alias on multi-column PIVOT IN tuple
- 2026-04-07 Set dbObjectType on cloneSourceTable to populate parts
- 2026-04-07 [Oracle] Allow SUBPARTITIONS n in composite partition clause
- 2026-04-07 [Teradata] Allow LAST_VALUE/FIRST_VALUE as column names
- 2026-04-07 [Oracle] Add composite LIST+subpartition rule
- 2026-04-07 [Snowflake] Treat \'
as escape + close quote in string literals - 2026-04-07 [MSSQL] Add DROP PARTITION FUNCTION, ALTER SEQUENCE, fix ALTER INDEX SET splitter
- 2026-04-07 [Oracle] Dispatch CREATE CLUSTER to TOracleCreateClusterStmt
- 2026-04-07 [PostgreSQL] Map uuid type to EDataType.uuid_t
- 2026-04-07 [MSSQL] UPDATE alias resolution + trigger splitter follow-up
- 2026-04-07 [MSSQL] Distinguish WHILE from IF in sqlstatementtype
- 2026-04-07 [MSSQL] Add TRY_CONVERT with typename exposed via getTypename()
- 2026-04-07 [MSSQL] Preserve ALTER statement type for procedure/function/trigger
- 2026-04-06 [Redshift] Register ELSIF keyword in lexer for PL/pgSQL
- 2026-04-06 [GaussDB] Support EXECUTE DIRECT ON statement
- 2026-04-06 [GaussDB] Support SET LOCAL TRANSACTION and CREATE DIRECTORY
- 2026-04-06 [MSSQL] Expose CHECK/NOCHECK CONSTRAINT in AST
- 2026-04-06 [Teradata] Support angle-bracket identifiers in BTEQ
- 2026-04-05 [Snowflake] Expose new stage name in ALTER STAGE RENAME TO
- 2026-04-05 [Snowflake] Expose stage properties in ALTER STAGE
- 2026-04-05 [Teradata] Support CREATE OR REPLACE syntax
- 2026-04-05 [Teradata] Support @Parameter in macro body
- 2026-04-05 [Vertica] Parse AS SELECT subquery in CREATE PROJECTION
- 2026-04-05 [BigQuery] Fix incorrect target column name for ARRAY[scalar_function()]
- 2026-04-05 [Teradata] Support qualified column names in COLLECT STATISTICS COLUMN()
- 2026-04-05 Fix thread-safety issues in multi-threaded parsing
- 2026-04-05 [MDX] Add data lineage support for MDX queries
- 2026-04-04 [Teradata] Fix formatter for REPLACE VIEW with LOCKING
- 2026-04-04 [Redshift] Wire EXCLUDE clause to TExceptReplaceClause
- 2026-04-04 Add getTableKind() to TIntoClause for SELECT INTO
GSP Java version 4.1.0.10(2026-04-04)¶
- 2026-04-03 [Databricks] Add ODBC escape syntax support
- 2026-04-02 [Oracle] Fix CASE WHEN direct/indirect dataflow handling in DataFlowAnalyzer
- 2026-04-01 [Teradata] Fix dataflow analysis for complex queries
- 2026-03-31 [Teradata, Hive] Set schemaToken in parseTablename
- 2026-03-31 [DuckDB] Comprehensive DuckDB dialect support: PIVOT/UNPIVOT, MACRO, SECRET, lambda expressions, list comprehension, struct/map/union types, QUALIFY, EXCLUDE/REPLACE on star, POSITIONAL/ASOF JOIN, FROM-first syntax, USING SAMPLE, and 60+ additional syntax features
GSP Java version 4.1.0.9(2026-03-23)¶
- 2026-03-23 [MSSQL] Fix $action column order in MERGE OUTPUT clause
- 2026-03-23 [MSSQL] Resolve MERGE OUTPUT inserted/deleted to MERGE target
- 2026-03-22 [EDB] Comprehensive EDB Postgres SPL support (triggers, types, collections, cursors, exceptions, loops, bulk operations)
- 2026-03-20 [BigQuery] Fix star column dedup in resolver
- 2026-03-20 [MSSQL] Preserve star column relationships with ignoreCoordinate
- 2026-03-19 [Teradata] Unify GRANT privilege types
- 2026-03-19 [Redshift] Add interval unit keywords and AT TIME ZONE support
- 2026-03-19 [Redshift] Add GROUPING SETS, ROLLUP, CUBE support
- 2026-03-18 [Snowflake] Add TEMP/TEMPORARY FUNCTION with $$ body
- 2026-03-17 [MSSQL, Snowflake] Respect vendor flags in identifier rules
- 2026-03-17 [Oracle, Snowflake, BigQuery] Prevent AIOOB in statement splitter
- 2026-03-17 Add builder pattern for custom IdentifierRules injection
- 2026-03-16 Optimize core parse path performance
- 2026-03-15 [Netezza] Fix AexprConst precedence and trim whitespace
- 2026-03-15 Eliminate parser S/R and R/R conflicts across all vendors
- 2026-03-14 Allow unreserved keywords as column names for all vendors
- 2026-03-14 [Redshift] Allow AWS-unreserved keywords as column names
GSP Java version 4.1.0.8(2026-03-13)¶
- 2026-03-14 [Redshift] Allow LISTAGG, CONVERT, APPROXIMATE, CONNECT_BY_ROOT, CHARACTER, DOUBLE as unquoted column names
- 2026-03-13 [MySQL] Fix tokenize error for backslash delimiter
- 2026-03-13 [Hive] Add CREATE PROCEDURE support
- 2026-03-13 [Greenplum, Snowflake] Fix syntax parsing issues
- 2026-03-13 [Oracle] Fix OOM in TSqlplusCmdStatement.extractCommandText
GSP Java version 4.1.0.7(2026-03-12)¶
- 2026-03-12 [BigQuery, PostgreSQL, MSSQL, MySQL, Greenplum] Fix syntax issues across 5 SQL dialects
- 2026-03-12 [BigQuery] Support PIVOT/UNPIVOT in JOIN context
- 2026-03-11 [PostgreSQL] Support RETURN as top-level statement
- 2026-03-11 [PostgreSQL] Fix ClassCastException in TSequenceOption
- 2026-03-11 [Snowflake] Support {var} template variables in identifiers
- 2026-03-11 [Oracle] Split multi-statement files with CTE after SELECT
- 2026-03-11 [Oracle] Support $P{} and $X{} template variables
- 2026-03-11 [Oracle] Support MATCH_RECOGNIZE after aliased table
- 2026-03-11 [MSSQL] Fix NPE in EXECUTE sp_executesql without args
- 2026-03-11 [MySQL] Fix NPE when FK REFERENCES has no column list
- 2026-03-10 [Snowflake] Support {{ variable }} template syntax
- 2026-03-10 [Oracle] Fix &variable. substitution with trailing dot
- 2026-03-10 [Redshift] Support CREATE PROCEDURE without args
- 2026-03-10 [MSSQL] Fix SELECT not split from CREATE VIEW body
- 2026-03-10 [DB2] Support {{ variable }} template syntax
- 2026-03-10 [Oracle] Support ${variable} template syntax
- 2026-03-10 [MySQL] Accept -- comments without trailing space
- 2026-03-10 [BigQuery] Support ${variable} template syntax
- 2026-03-10 [Snowflake] Handle \' escaped quotes in SQL input
- 2026-03-10 [Snowflake] Fix \'' in direct expression context
- 2026-03-10 [Snowflake] Fix \'' unescaping in single-quoted proc body
- 2026-03-10 [MSSQL] Split CTE without semicolon after DML
- 2026-03-09 [MySQL] Support ON as value in SET variable assignment
- 2026-03-09 [PostgreSQL] Support PL/pgSQL PERFORM FROM, ELSEIF, RETURN NEXT
- 2026-03-09 [PostgreSQL] Fix ClassCastException for SEQUENCE NAME option
- 2026-03-09 [Snowflake] Support ${variable} and backtick-quoted identifiers
- 2026-03-09 [Redshift] Split DDL statements without semicolons
- 2026-03-09 [Oracle] Handle forward slash delimiter on same line as semicolon
- 2026-03-09 [Snowflake] Split SET statements without semicolons
- 2026-03-09 [MySQL] Support DEFAULT before both CHARSET and COLLATE
- 2026-03-09 [PostgreSQL] Support TYPE as name in column alias lists
- 2026-03-09 [Snowflake] Split DDL statements without semicolons
GSP Java version 4.1.0.6(2026-03-09)¶
- 2026-03-09 [MySQL] Support CREATE/DROP SEQUENCE statements
- 2026-03-08 [Hive] Support ${variable} template substitution syntax
- 2026-03-08 [PostgreSQL] Support COMMENT ON FUNCTION/PROCEDURE without args
- 2026-03-08 [MSSQL] Fix splitter incorrectly splitting proc on END; CREATE TABLE
- 2026-03-08 [MSSQL] Support bracket-quoted XML method names
- 2026-03-08 [MSSQL] Support WITH XMLNAMESPACES combined with CTEs for all DML
- 2026-03-07 [Snowflake] Fix GRANT/REVOKE after procedure body not splitting
- 2026-03-07 [MySQL] Support function calls in CHECK constraints
- 2026-03-07 [Snowflake] Fix procedure with $$ body blocking subsequent statements
- 2026-03-07 [Snowflake] Add CREATE OR ALTER DYNAMIC TABLE to splitter
- 2026-03-07 [Snowflake] Support standalone scripting statements
- 2026-03-07 [Snowflake] Handle standalone scripting blocks (WHILE/FOR/LOOP/IF)
- 2026-03-07 [PostgreSQL] Handle psql meta-commands and RETURNS TABLE LANGUAGE
- 2026-03-07 [PostgreSQL] Add CASCADE and VERSION options to CREATE EXTENSION
- 2026-03-07 [Hive] Fix statement splitter for SELECT after semicolon-less SELECT
- 2026-03-07 [Hive] Fix statement splitter for SET after semicolon-less statements
- 2026-03-07 [MySQL] Fix tokenizer error on dash-separator comments
- 2026-03-07 [PostgreSQL] Allow CREATE TYPE inside DO blocks
- 2026-03-06 [MySQL] Fix tokenizer error on multi-dash comments
- 2026-03-06 [Snowflake] Support CREATE SEARCH OPTIMIZATION statement
- 2026-03-06 [MySQL] Fix trailing tokens after conditional comments
- 2026-03-06 Support TAlterViewStatement
- 2026-03-06 [Teradata] Support GRANT LOGON syntax
GSP Java version 4.1.0.5(2026-03-06)¶
- 2026-03-06 [Teradata] Support abbreviated GRANT privileges
- 2026-03-06 [Vertica] Support CREATE FLEX TABLE syntax
- 2026-03-06 [Teradata] Support USER, DATABASE, CREATE USER as GRANT privileges
- 2026-03-06 [Teradata] Support TABLE, VIEW, MACRO as GRANT privileges
- 2026-03-06 [Snowflake] Populate stage location from COPY INTO subquery
- 2026-03-06 [Redshift] Support IGNORE/RESPECT NULLS in both positions
- 2026-03-06 Add comprehensive TAttributeNode deprecated API inventory
- 2026-03-06 Support SQL query statistics
- 2026-03-06 Add large SQL file splitter tool
- 2026-03-06 Fixed NPE in logger error handling
- 2026-03-05 [Oracle] Improve call graph for parameterless calls and trigger tables
- 2026-03-05 [Oracle] Fix forward declaration causing AMBIGUOUS resolution
- 2026-03-05 [Oracle] Model package body initializer as synthetic routine
- 2026-03-05 [Oracle] Classify built-in functions as external deps
- 2026-03-05 [Oracle] Detect calls from enclosing routine to nested functions
- 2026-03-05 [Oracle] Detect function calls in TABLE(func) without arguments
- 2026-03-05 [Oracle] Detect parameterless function calls in all contexts
- 2026-03-05 [Oracle] Detect calls inside EXCEPTION handler blocks
- 2026-03-05 [Oracle] Detect constructor calls inside PIPE ROW statements
- 2026-03-05 [Oracle] Filter boolean literals from call graph edges
- 2026-03-05 [Oracle] Detect function calls in PL/SQL declarative sections
- 2026-03-05 [Oracle] Traverse compound trigger timing section bodies
- 2026-03-05 [Oracle] Detect double-parenthesized function calls
- 2026-03-05 [Oracle] Detect standalone dotted procedure calls
- 2026-03-05 [Oracle] Detect procedure calls in CASE statement branches
- 2026-03-05 [Oracle] Filter collection parameter access from call graph
- 2026-03-05 [Oracle] Filter SYSDATE and pseudo-columns from call graph
- 2026-03-05 [Oracle] Filter out collection variable/method calls from call graph
- 2026-03-05 [Oracle] Merge forward declaration and implementation
- 2026-03-05 [Oracle] Resolve calls to procs with default parameters
- 2026-03-05 [Oracle] Detect built-in SQL function calls in PL/SQL expressions
- 2026-03-05 [Oracle] Deduplicate cursor table accesses on OPEN CURSOR
- 2026-03-05 [Oracle] Fix trigger ON table access kind classification
- 2026-03-05 [MSSQL] Add T-SQL call graph support (Phase A IR)
- 2026-03-05 [MSSQL] Filter XML methods and .WRITE() from call graph
- 2026-03-05 [MSSQL] Classify JSON built-in functions as external deps
- 2026-03-05 [MSSQL] Detect function calls in SET assignments
- 2026-03-04 [Vertica] Support PLvSQL truncating assignment (<-)
- 2026-03-03 [PostgreSQL] Fix parser errors on various SELECT commands
- 2026-03-03 [PostgreSQL] Expose ON CONFLICT clause in GSP API
- 2026-03-03 [PostgreSQL] INCLUDE clause in constraints
- 2026-03-03 [PostgreSQL] Add PGvector distance operators
- 2026-03-03 [PostgreSQL] Process operands for binary operator expressions
- 2026-03-03 [PostgreSQL] Fix NPE in TElsifStmt.acceptChildren
- 2026-03-03 Fix null guards in TStarColumnPushDownResolver
- 2026-03-03 [SparkSQL] Support FOR loop statement
- 2026-03-03 [SparkSQL] Support LOOP/END LOOP statement
- 2026-03-03 [SparkSQL] Support labeled WHILE and REPEAT loops
- 2026-03-03 [SparkSQL] Support LEAVE and ITERATE without labels
- 2026-03-02 [Redshift] Database@Catalog cross-database notation
- 2026-03-02 [Redshift] VACUUM TO PERCENT BOOST and ANALYZE ALL COLUMNS
- 2026-03-02 [Redshift] Transaction isolation level extensions
- 2026-03-02 [Redshift] SHOW TEMPLATES LIKE/LIMIT and SHOW DATABASES extensions
- 2026-03-02 [Redshift] SHOW COLUMN GRANTS/CONSTRAINTS and FOR ROLE
- 2026-03-02 [Redshift] SHOW GRANTS extended types and FOR/LIMIT clauses
- 2026-03-02 [Redshift] COPY SIMPLIFY AUTO clause for Shapefile format
- 2026-03-02 [Redshift] CREATE/ALTER USER EXTERNALID double-quoted value
- 2026-03-02 [Redshift] ALTER USER CONNECTION LIMIT, VALID UNTIL, SET SEARCH_PATH
- 2026-03-02 [Redshift] ALTER TABLE MASKING and RLS FOR DATASHARES
- 2026-03-02 [Redshift] CREATE DATABASE extensions
- 2026-03-02 [Redshift] ALTER DATABASE CONNECTION LIMIT and SET INTEGRATION REFRESH
- 2026-03-02 [Redshift] Allow POSITION keyword as column name
GSP Java version 4.1.0.3(2026-03-02)¶
- 2026-03-02 [SparkSQL] Support standalone TABLE expression
- 2026-03-02 [SparkSQL] Support MSCK REPAIR TABLE with ADD/DROP/SYNC PARTITIONS
- 2026-03-02 [SparkSQL] Support FROM-first query syntax
- 2026-03-02 [SparkSQL] Support ILIKE operator for case-insensitive pattern matching
- 2026-03-02 [SparkSQL] Support VALUES with table alias and column definitions
- 2026-03-02 [SparkSQL] Support default keyword as schema/database identifier
- 2026-03-02 [SparkSQL] Support compound statement (BEGIN...END)
- 2026-03-02 [SparkSQL] Support Pipe Syntax operators
- 2026-03-02 [SparkSQL] Support TRANSFORM clause, UNPIVOT, CREATE SQL FUNCTION
- 2026-03-02 [SparkSQL] Support ALTER DATABASE, ALTER TABLE extended operations
- 2026-03-02 [SparkSQL] Support WITHIN GROUP, GROUP BY WITH ROLLUP/CUBE
- 2026-03-02 [SparkSQL] Support IGNORE/RESPECT NULLS, EXCEPT ALL, MINUS ALL
- 2026-03-02 [SparkSQL] Support OFFSET, SET VAR, DROP TEMPORARY VARIABLE
- 2026-03-02 [SparkSQL] Support EXECUTE IMMEDIATE, DECLARE VARIABLE
- 2026-03-02 [SparkSQL] Support star EXCEPT with struct field references
- 2026-03-02 [SparkSQL] Support WINDOW clause, INSERT BY NAME, REPLACE WHERE
- 2026-03-02 [SparkSQL] Support ADD/LIST resource management, CREATE TABLE/VIEW AS VALUES
- 2026-03-02 [SparkSQL] Support CREATE/ALTER VIEW WITH SCHEMA EVOLUTION
- 2026-03-02 [SparkSQL] Support SHOW SCHEMAS, SHOW SYSTEM FUNCTIONS, ANALYZE TABLES
- 2026-03-02 [Redshift] Support SHOW TEMPLATE command
- 2026-03-02 [Redshift] Support NONATOMIC stored procedures
- 2026-03-02 [Redshift] Support CREATE EXTERNAL MODEL with MODEL_TYPE BEDROCK
- 2026-03-02 [Redshift] Support EXTERNALID and namespaced usernames
- 2026-03-02 [Redshift] Support CREATE EXTERNAL SCHEMA FROM MSK with AUTHENTICATION
- 2026-03-02 [Redshift] Support nested complex types in CREATE EXTERNAL TABLE
- 2026-03-02 [Redshift] Support BZIP2 and SERIALIZETOJSON in COPY command
- 2026-03-02 [Redshift] Support DISTSTYLE AUTO and SORTKEY AUTO
- 2026-03-02 [Redshift] Support VACUUM BOOST, LATERAL, ARRAY()
- 2026-03-02 [Redshift] Support CREATE VIEW WITH NO SCHEMA BINDING
- 2026-03-02 [Redshift] Support GENERATED ALWAYS AS IDENTITY
- 2026-03-02 [Redshift] Support UNPIVOT INCLUDE/EXCLUDE NULLS
- 2026-03-02 [Redshift] Support CREATE/ALTER/DROP RLS POLICY and MASKING POLICY
- 2026-03-02 [Redshift] Support CONNECT BY hierarchical queries
- 2026-03-02 [Redshift] Support COPY/UNLOAD extensions (ORC, SHAPEFILE, KMS_KEY_ID)
- 2026-03-02 [Redshift] Support CREATE/ALTER DATABASE extensions
- 2026-03-02 [Redshift] Support CREATE/ALTER USER extensions
- 2026-03-02 [Redshift] Support SHOW extensions (COLUMNS, TABLES, SCHEMAS, GRANTS, DATASHARES)
- 2026-03-02 [Redshift] Support CREATE/ALTER/DROP TEMPLATE, ROLE, DATASHARE
- 2026-03-02 [Redshift] Support CREATE EXTERNAL FUNCTION for Lambda UDFs
- 2026-03-02 [Redshift] Support GRANT/REVOKE extensions (column-level, scoped, ROLE)
- 2026-03-02 [Redshift] Support SELECT * EXCLUDE (columns) syntax
- 2026-03-02 [Redshift] Support USE statement
- 2026-03-02 [Snowflake] Add CHANGES clause for time travel queries
- 2026-03-02 [Snowflake] Support object wildcard {} and {table.} in SELECT
- 2026-03-02 [Snowflake] Support @%table and @~ stage references in SELECT
- 2026-03-02 [Snowflake] Support parenthesized COPY in CREATE PIPE
- 2026-03-02 [Snowflake] Support FILE_FORMAT shorthand and quoted MATCH_BY_COLUMN_NAME
- 2026-03-02 [Snowflake] Support unquoted S3 URLs in COPY INTO FROM
- 2026-03-02 [Snowflake] Support PARTITION BY with external locations in COPY INTO
- 2026-03-02 [Snowflake] Support standalone HEADER keyword in COPY INTO
- 2026-03-02 [Snowflake] Support @stage/ trailing slash in COPY INTO
- 2026-03-02 [Snowflake] Allow varchar2 as unquoted identifier
- 2026-03-02 [Snowflake] Support ALTER TABLE extensions (search optimization, policies, tags, metrics)
- 2026-03-02 [Snowflake] Support multi-column ALTER/MODIFY, constraint management
- 2026-03-02 [BigQuery] Support CREATE MODEL ARIMA custom holidays, INPUT/OUTPUT clauses
- 2026-03-02 [BigQuery] Support Apache Spark procedures and WITH CONNECTION for Python UDFs
- 2026-03-02 [BigQuery] Support OPTIONS clause after function body
- 2026-03-02 [BigQuery] Support hyphenated identifiers in DROP CAPACITY/RESERVATION/ASSIGNMENT
- 2026-03-02 [BigQuery] Support RANGE
type in column definitions - 2026-03-02 fix: getFinalTable() traces through column aliases to physical tables
- 2026-03-02 feat: Add getTracedFinalTable() for alias-aware lineage
- 2026-03-02 fix: [Oracle] ALTER INDEX RENAME TO sets newIndexName, not tableName
GSP Java version 4.1.0.2(2026-02-25)¶
- 2026-02-25 Fixed NPE
- 2026-02-25 [BigQuery] Regenerate yacc table to fix parser regression
- 2026-02-25 [BigQuery] Fix NPE crash on malformed input
- 2026-02-25 [BigQuery] Support CREATE FUNCTION OPTIONS after RETURNS
- 2026-02-25 [BigQuery] Support labeled loop and block statements
- 2026-02-25 [BigQuery] Support bare RAISE statement in exception handlers
- 2026-02-25 [BigQuery] Support ELSEIF in IF statements
- 2026-02-25 [BigQuery] Add tests for REPEAT...UNTIL loop syntax
- 2026-02-25 [BigQuery] Support WHILE...DO loop syntax
- 2026-02-25 [Snowflake] Support CREATE PROCEDURE without LANGUAGE clause
- 2026-02-25 [Snowflake] Support EXECUTE IMMEDIATE FROM with DRY_RUN option
- 2026-02-25 [Snowflake] Support EXECUTE IMMEDIATE FROM with USING clause
- 2026-02-25 [Snowflake] Support EXECUTE IMMEDIATE FROM syntax
- 2026-02-25 [Netezza] Regenerate yacc table to restore || precedence
- 2026-02-25 [Snowflake] Support CREATE ICEBERG TABLE syntax
- 2026-02-25 [Snowflake] Support backslash-escaped strings in function body
- 2026-02-25 [Snowflake] Support GRANT USAGE ON FUNCTION with parameter signature
GSP Java version 4.1.0.1(2026-02-23)¶
- 2026-02-23 [Teradata] Fix objectToken when alias matches schema name
- 2026-02-23 [Snowflake] Fix phantom star column expansion in JOIN lineage
- 2026-02-23 Add PL/SQL call graph sample files with JSON output
- 2026-02-23 Add JSON schema v1.1 for call graph and impact analysis
- 2026-02-23 [Oracle] Upgrade Phase A IR to industrial-grade
- 2026-02-22 [Oracle] Add OracleBoundIRBuilder and CallGraph
- 2026-02-22 Add TSQLResolver2 adapter strategy for IBoundIRBuilder
- 2026-02-22 [BigQuery] Fix nested struct column lineage naming
- 2026-02-22 [BigQuery] Add StructFieldHint for 3-part no-alias struct access
- 2026-02-22 [BigQuery] Add FieldPath infrastructure for nested column lineage
- 2026-02-21 [Snowflake] Support nested stored procedure declarations
- 2026-02-21 [Snowflake] Support EXIT keyword in exception handlers
- 2026-02-21 [Snowflake] Fix NOT NULL constraint on variable declarations
- 2026-02-21 [BigQuery] Support MATCH_RECOGNIZE pipe operator
- 2026-02-21 [BigQuery] Support WINDOW pipe operator
- 2026-02-21 [BigQuery] Support CALL pipe operator for table-valued functions
- 2026-02-21 [BigQuery] Support TABLESAMPLE pipe operator
- 2026-02-21 [BigQuery] Support OFFSET in pipe LIMIT operator
- 2026-02-21 [Vertica] Fix CREATE EXTERNAL TABLE AS COPY FROM support
- 2026-02-21 [Vertica] Add SECURITY INVOKER/DEFINER support for CREATE PROCEDURE
- 2026-02-21 [Redshift] Fix comparison operator access in group_comparison_t
- 2026-02-21 [Redshift] Fix quantified comparison (ALL/ANY/SOME) AST
- 2026-02-20 [Snowflake] Support ASYNC keyword in parenthesized resultset assignments
- 2026-02-20 [Snowflake] Support cursor row dot notation in FOR loops
- 2026-02-20 [BigQuery] Allow expression in RAISE USING MESSAGE
- 2026-02-20 [Snowflake] Support DECLARE EXCEPTION without parameters
- 2026-02-20 [BigQuery] Add support for additional ML table functions
- 2026-02-20 [Snowflake] Fix NULL; statement NullPointerException in $$ bodies
- 2026-02-20 [BigQuery] Support FOR SYSTEM_TIME AS OF with alias in JOIN
- 2026-02-20 [Impala] Add PURGE keyword support for DROP TABLE
- 2026-02-20 [Redshift] Fix TOP clause returning null on AST
- 2026-02-20 Resolve GROUP BY alias references to source tables
GSP Java version 3.3.1.9(2025-11-23)¶
- 2025-11-23 Convert ENABLE_RESOLVER to ThreadLocal for thread safety
- 2025-11-22 Add support for PL/SQL NEW constructor with empty params
- 2025-11-20 Fix resolver error in parseExpression method
3.3.1.7 (2025-11-16)¶
- 2025-11-16: Improve UNION column propagation and prevent duplicate links
- 2025-11-16: Fix star column push down for UNION in CTE subqueries
- 2025-11-16: Fix Snowflake CREATE TABLE to support multiple table options
- 2025-11-15: Fix parse bug for lock row for access used in cursor declaration
- 2025-11-15: Fix CASE expression matching in Teradata procedures
- 2025-11-15: Fix NullPointerException in Teradata implicit table column linking
- 2025-11-15: Fix UNION column name resolution to use leftmost query
- 2025-11-15: Add SET TIME ZONE statement parsing for Teradata
- 2025-11-15: Add END_FASTEXPORT command type for Teradata
3.2.1.5 (2025-10-26)¶
- 2025-10-26: Fix DROP SECURITY POLICY parsing in IF statements
- 2025-10-26: Fix PARTITION BY expression parsing in Snowflake
- 2025-10-26: Integrate file format properties parsing and XML output
- 2025-10-26: Add parseFileFormatProperties method to TCreateTableOption
- 2025-10-26: Add file format properties list to TCreateTableOption
3.2.1.4 (2025-10-26)¶
- 2025-10-26: Add areEqualStatic method to IdentifierService
- 2025-10-26: Add static cache to IdentifierService for performance
- 2025-10-26: Refactor identifier normalization to use service pattern
- 2025-10-26: Fix multithreading bug in SqlCmdsFactory
- 2025-10-26: Improve SQL Server identifier handling and tests
- 2025-10-22: Enable catalog hierarchical and bucketed indexes
- 2025-10-21: Use SQLUtil.getIdentifierNormalName in keyForMap (temporary)
- 2025-10-21: Enhance IdentifierRules Javadoc with compatibility info
- 2025-10-20: Enhance Javadoc for IdentifierService and SQLUtil
- 2025-10-20: Remove redundant catalogStore field and USE_CALCITE_CATALOG_VIEW flag
- 2025-10-20: Refactor CatalogStore to use IdentifierService
- 2025-10-19: Add catalog documentation README index
- 2025-10-19: Add comprehensive catalog documentation for 12 major databases
- 2025-10-18: Add Oracle catalog documentation for beginners
- 2025-10-18: Fix collation case sensitivity configuration bugs
3.2.0.2 (2025-10-15)¶
- 2025-10-15: Fix parsing conversion functions as column names
- 2025-10-15: Add array indexing support for GaussDB
- 2025-10-15: Add table kind support for GaussDB CREATE TABLE
- 2025-10-10: Add GitHub Actions workflow for PR test automation
- 2025-10-10: Add INSERTED/DELETED as SQL Server reserved words
3.2.0.1 (2025-10-08)¶
- 2025-10-08: Fix json_table rewrite bug in script generator
- 2025-10-08: Remove unused findXXXCmd methods from TSqlCmds
- 2025-10-08: Refactor TSqlCmds.java into per-vendor TSqlCmds subclasses
- 2025-10-08: Document command ordering bug with real example
- 2025-10-08: Fix command ordering for DATABASE SCOPED CREDENTIAL
- 2025-10-08: Migrate MDX to modular architecture
- 2025-10-08: Unify vendor implementations for Trino, SOQL, ODBC
- 2025-10-07: Migrate Vertica to modular architecture
- 2025-10-07: Migrate Sybase to modular architecture
- 2025-10-07: Migrate SparkSQL to modular architecture
- 2025-10-07: Migrate Snowflake to modular architecture
- 2025-10-07: Migrate Redshift to modular architecture
- 2025-10-07: Migrate Presto to modular architecture
- 2025-10-07: Migrate OpenEdge to modular architecture
- 2025-10-07: Migrate Netezza to modular architecture
- 2025-10-07: Migrate Informix to modular architecture
- 2025-10-07: Migrate HANA to modular architecture
- 2025-10-07: Migrate Greenplum to modular architecture
- 2025-10-07: Migrate GaussDB to modular architecture
- 2025-10-07: Migrate DB2 to modular architecture
- 2025-10-07: Migrate Databricks to modular architecture
- 2025-10-07: Migrate Couchbase to modular architecture
- 2025-10-07: Migrate BigQuery to modular architecture
- 2025-10-07: Migrate Teradata to modular architecture
- 2025-10-07: Remove FindMssqlCmdUsedByYacc
- 2025-10-07: Migrate MySQL to modular architecture
- 2025-10-07: Migrate PostgreSQL to modular architecture
- 2025-10-07: Migrate MSSQL to modular vendor-specific architecture
- 2025-10-07: Support vendor-specific token strings in modular architecture
- 2025-10-06: Migrate MSSQL command initialization to TSqlCmdsMssql
- 2025-10-06: Refactor TSqlCmds to vendor-specific lazy-loading architecture
- 2025-10-05: Refactor: Move TSqlCmds to sqlcmds package
- 2025-10-05: Add high-impact factory methods based on profiler analysis
- 2025-10-05: Optimize Oracle package function lookup with thread-safe lazy init
- 2025-10-05: Expand factory methods for common node types
- 2025-10-04: Avoid skipping table.* when only one source exists
- 2025-10-04: Fix Teradata lexer to treat $_ identifiers correctly
- 2025-10-04: Merge pull request #550 from sqlparser/dev
- 2025-10-04: Fixed MySQL Metadata Bug.
3.1.1.3 (2025-10-02)¶
- 2025-10-02: Add getLastLineNoOfLastStatementBeenValidated() for huge file splitting
- 2025-10-02: Optimize token code comparisons in domssqlgetrawsqlstatements
3.1.1.2 (2025-09-27)¶
- 2025-09-27: Optimize isopchar and isselfchar methods in TCustomLexer
- 2025-09-27: Remove sourceBuffer of lexer
- 2025-09-27: Add test units
- 2025-09-27: Fix CTE column mapping when subquery uses SELECT *
- 2025-09-27: Fix Teradata table resolution when original name used despite alias
- 2025-09-27: Document Teradata implicit derived tables processing
3.1.1.1 (2025-09-21)¶
- 2025-09-20: Optimize showERG graph demo
- 2025-09-20: Update DataFlowAnalyzer demo
- 2025-09-19: Build pom for dlineage
- 2025-09-19: Set genDataflowGraph showLinkOnly default value to true
3.1.1.0 (2025-09-14)¶
- 2025-09-14: Feat: Add stable sqlHash for lineage statement identity
- 2025-09-14: Feat: Add stable queryId to SQL statements
- 2025-09-14: Feat: Introduce new source token management system
- 2025-09-14: feat(lexer): Implement lazy loading for token text
- 2025-09-13: tmp for lazyloading token
- 2025-09-13: Refactor: Implement lazy loading lexer architecture
- 2025-09-13: Docs: Document lexer architecture and lazy loading design
- 2025-09-13: Optimize memory usage with lazy ArrayList initialization
3.1.0.9 (2025-09-13)¶
- 2025-09-13: Fix column linking for inserted/deleted in triggers
- 2025-09-13: claude helpfile
- 2025-09-13: Add parser pool implementation without performance gains
- 2025-09-13: Add thread-safe parser pool for 10x performance gain
3.1.0.8 (2025-09-13)¶
- 2025-09-13: Refactor and harden parser build scripts
- 2025-09-13: Refactor: Move SQL grammar files to core module
3.1.0.7 (2025-09-11)¶
- 2025-09-11: Test: Verify pseudo-table resolution in triggers
- 2025-09-10: Refactor: Support chained transformations for columns
- 2025-09-08: Docs: Explain issues with varied relationship types
- 2025-09-07: Update lineage design doc
- 2025-09-07: Fix(Snowflake): Correct name of wildcard with EXCLUDE clause
- 2025-09-07: Fix duplicate output for field selection expressions
- 2025-09-07: Fix SQL generation for array access and slices
- 2025-09-07: Add type discrimination to TIndices for array vs qualified name syntax
- 2025-09-07: Fix column resolution for Oracle dblink tables
- 2025-09-06: Restructure dlineage demo
- 2025-09-06: Merge pull request #537 from sqlparser/dev
- 2025-09-06: Doc: Define modeling practices for JOIN conditions
- 2025-09-03: Clarify graphPartition sharding note in v2 doc
- 2025-09-03: Rename WEAK_COPY to MODIFIED_COPY and refine categories
- 2025-08-31: Docs: Extend v2 design with effectType rules and table/column combos
3.1.0.5 (2025-08-30)¶
- 2025-08-30: Add GROUP BY ALL modifier support to TGroupBy class
- 2025-08-30: Fix: Restrict INSERTED/DELETED column logic to SQL Server
- 2025-08-30: Docs: Warn of SQL formatter side effects on parser state
- 2025-08-30: Refactor toString method for better readability
- 2025-08-30: Fix token iteration in visitNodeByToken
- 2025-08-28: Docs: Unify and enhance data lineage specification
- 2025-08-28: Refactor: Restructure demos into Maven multi-module project
- 2025-08-28: Refactor: Move database connection logic to provider
3.1.0.2 (2025-08-15)¶
- 2025-08-15: [Dlineage] Fix a bug the data lineage of parameters in function call is not mapping correctly.
3.1.0.1 (2025-08-01)¶
- 2025-08-01: [GaussDB] Fixed a bug where the COUNT aggregate function was not properly recognized as a built-in function in the parser.
- 2025-08-01: [GaussDB] Fixed a bug where the LIKE operator incorrectly had lower precedence than the AND operator in pattern matching conditions. Updated operator precedence to ensure LIKE has higher precedence.
3.1.0.0 (2025-07-27)¶
- 2025-07-27: [Postgres] Fix a bug not materialized is not supported in WITH clause.
- 2025-07-27: [Oracle] Support default collation clause in create view/create function/create procedure/create trigger.
- 2025-07-27: [SQL Server] Fix a bug ALTER TABLE REBUILD WITH(DATA_COMPRESSION = PAGE) is not parsed correctly.
3.0.9.9 (2025-07-26)¶
- 2025-07-26: [Redshift] Fixed a performance issue with large INSERT statements; efficiently handles thousands of tuples (e.g. $1, $2, ...).
3.0.9.8 (2025-07-20)¶
- 2025-07-20: [SparkSQL] Bugfix, fix a bug position keyword can't be used as column name.
3.0.9.7 (2025-07-19)¶
- 2025-07-19: [scriptWriter] Fixed a bug where field selection syntax with parentheses (e.g. "(d).grantee") was not being generated correctly.
- 2025-07-19: [scriptWriter] Fixed a bug where column lists in DISTINCT ON clauses were not being properly generated.
3.0.9.6 (2025-07-10)¶
- 2025-07-10: [data lineage] Fixed bug in DataflowAnalyzer using SQL environment settings.
3.0.9.5 (2025-07-06)¶
- 2025-07-06: [Vertica] Support USING PARAMETERS clause in LISTAGG function.
- 2025-07-06: [Vertica] Support NULLSEQUAL operator.
- 2025-07-06: [Snowflake] Fixed bug with procedure bodies using only two consecutive tokens before semicolon.
- 2025-07-06: [SQL Server] Fix INSERTED pseudo table in CREATE TRIGGER column resolution.
- 2025-07-06: [SQL Server] Fix column in IF UPDATE() OR UPDATE() of trigger not picked up.
3.0.9.4 (2025-06-15)¶
- 2025-06-15: [PostgreSQL] Support create recursive view.
- 2025-06-15: [SQL Server] Fix can't parse partitions clause in TRUNCATE TABLE.
- 2025-06-15: [BigQuery] Add support for star column expressions in array access.
- 2025-06-15: [BigQuery] Add support for various DROP statements.
- 2025-06-15: [BigQuery] Fix length specification for BYTES datatype.
- 2025-06-15: [BigQuery] Fix IF NOT EXISTS clause in CREATE MATERIALIZED VIEW.
- 2025-06-15: [Athena] Fix NPE in ALTER TABLE RENAME PARTITION.
- 2025-06-15: [General] Fix thread-safety in TNodeFactory.
3.0.9.3 (2025-06-08)¶
- 2025-06-08: [scriptWriter] Fix bug with column.property rewrite in SQL script generation.
3.0.9.3 (2025-06-08)¶
- 2025-06-08: [PostgreSQL] Fix bug with AS datatype clause in CREATE SEQUENCE.
- 2025-06-08: [PostgerSQL] Support ALTER INDEX.
- 2025-06-08: [Teradata] Preserve both NAMED clause and AS alias in SELECT list.
- 2025-06-08: [Teradata] Support EXECUTE ... USING ... in procedures.
- 2025-06-08: [Teradata] Add FOREIGN TABLE syntax in FROM clause.
- 2025-06-08: [Teradata] Add IGNORE NULLS clause before OVER in agg functions.
- 2025-06-08: [Teradata] Fix parsing SELECT substring(..., position(...) + 5 FOR 5)
- 2025-06-08: [PostgerSQL] Support CREATE/ALTER ROLE.
- 2025-06-08: [Snowflake] Fix COMMENT keyword as column alias in SELECT.
3.0.9.3 (2025-06-07)¶
- 2025-06-07: [SparkSQL] Support LEFT/RIGHT JOIN without explicit ON.
- 2025-06-07: [SparkSQL] Support grouping sets after group by items without comma.
- 2025-06-07: [SparkSQL] Fix AS keyword wrongly required in CTAS.
- 2025-06-07: [SparkSQL] Fix parsing FILTER clauses after aggregates.
3.0.9.2 (2025-06-02)¶
- 2025-06-02: [scriptWriter] Fix bug: array types like text[] rewritten as text.
- 2025-06-02: [scriptWriter] Fix bug: IS TRUE / IS FALSE not rewritten correctly.
- 2025-06-02: [scriptWriter] Fix bug: RECURSIVE keyword missing in CTE rewrites.
- 2025-06-02: [scriptWriter] Fix bug: ORDER BY in function call arguments.
- 2025-06-02: [scriptWriter] Fix bug: parens around CTE subqueries.
3.0.9.1 (2025-05-29)¶
- 2025-05-29: [Teradata] Fix can't process .EXPORT FILE BTEQ command.
3.0.9.0 (2025-05-27)¶
- 2025-05-27: [Oracle] Support sequence option in CREATE TABLE with IDENTITY.
3.0.8.8 (2025-05-18)¶
- 2025-05-18: [API] Enhance EDbVendor: getAllVendorAliases(), getDescription(), getStatus()
- 2025-05-18: [PostgreSQL] Support JSON operators (#-, @?, @@)
- 2025-05-18: [Vertica] Fix CREATE OR REPLACE procedure parsing.
- 2025-05-18: [Netezza] Fix/Support interval datatypes (all variations)
3.0.8.8 (2025-05-18)¶
- 2025-05-18: [General] Support sqlimpact.
3.0.8.7 (2025-05-18)¶
- 2025-05-18: [GaussDB] Support LANGUAGE clause in do statement.
3.0.8.6 (2025-05-17)¶
- 2025-05-17: [General] Parser handles missing semicolons robustly (adds virtual semicolon when missing).
- 2025-05-17: [Teradata] Fix NPE for ADD_MONTHS() with subquery param.
- 2025-05-17: [API] Add getOperatorTokens() to TExpression for multi-token ops (e.g. SIMILAR TO, IS DISTINCT FROM).
- 2025-05-17: [scriptWriter] Fix group comparisons in SELECT list SQL generation.
- 2025-05-17: [GaussDB] Support distribute BY in CREATE TABLE.
- 2025-05-17: [GaussDB] Support TRY_CAST function.
- 2025-05-17: [GaussDB] Fix LOCALTIMESTAMP(n) precision param parsed as column.
- 2025-05-17: [SparkSQL] Fix can't retrieve distribute by / sort by clause.
- 2025-05-17: [Snowflake] Fix parsing of LEFT JOIN in single-quote/dollar-proc.
- 2025-05-17: [GaussDB] Fix cast(1, int) not supported.
- 2025-05-17: [scriptWriter] toScript() appends semicolon if original ended with semicolon.
3.0.8.5 (2025-05-12)¶
- 2025-05-12: [SQL Server] Improve distinguishing -- comment vs. minus.
- 2025-05-12: [SQL Server] Fix TRUNCATE TABLE with table aliases.
3.0.8.4 (2025-05-11)¶
- 2025-05-11: [Oracle] Detect package constant/variable used in INSERT for lineage.
3.0.8.3 (2025-05-11)¶
- 2025-05-11: [Snowflake] Support table index constraint.
- 2025-05-11: [scriptWriter] In PostgreSQL, special SQL functions handling parens.
3.0.8.2 (2025-05-11)¶
- 2025-05-11: [General] INSERT processed during the SQL Resolver.
3.0.8.1 (2025-05-08)¶
- 2025-05-08: [General] Fix critical OOM in TStarColumnPushDownResolver (nested UNION ALL).
3.0.8.1 (2025-05-07)¶
- 2025-05-07: [SQL Server] Fix can't parse CREATE OR ALTER FUNCTION.
3.0.8.0 (2025-05-06)¶
- 2025-05-06: [General] Merge some source code.
3.0.7.9 (2025-05-04)¶
- 2025-05-04: [PostgreSQL] Fix parsing of UNION DISTINCT clause.
3.0.7.8 (2025-05-04)¶
- 2025-05-04: [Databricks] Fix normalization of backtick-quoted identifiers.
- 2025-05-04: [SparkSQL] Fix parsing column alias lists in parentheses with EXPLODE.
3.0.7.7 (2025-05-03)¶
- 2025-05-03: [Hive] Fix LATERAL VIEW EXPLODE alias analysis.
- 2025-05-03: [PostgreSQL/toScript] Fix type cast (::) handling in script generation.
3.0.7.6 (2025-05-01)¶
- 2025-05-01: [Performance] Cached/specialized factory methods in TNodeFactory.createNode()
3.0.7.5 (2025-04-29)¶
- 2025-04-29: [Teradata] Support array element access with quoted identifiers.
- 2025-04-29: [Teradata] Fix same-name tables in different DBs treated as the same.
3.0.7.4 (2025-04-28)¶
- 2025-04-28: [SparkSQL] Fix == equality operator handling.
- 2025-04-28: [SparkSQL] Fix & bitwise AND operator handling.
3.0.7.3 (2025-04-27)¶
- 2025-04-27: [General] Performance improved.
3.0.7.2 (2025-04-20)¶
- 2025-04-20: [PostgreSQL] Support array element access on array-returning functions.
- 2025-04-20: [BigQuery] Support CREATE OR REPLACE TEMPORARY TABLE.
- 2025-04-20: [SQL Server] Fix comments with leading whitespace.
- 2025-04-20: [API] Add TRedshiftTableAttributes.
- 2025-04-20: [Redshift] Add DISTSTYLE for materialized views.
- 2025-04-20: [Teradata] Fix DAYNUMBER_OF_MONTH not recognized.
- 2025-04-20: [Teradata] Fix || precedence.
- 2025-04-20: [API] Add implicit_datatype_cast_as_t for '... AS ...' expressions.
- 2025-04-20: [API] PARSE/TRY_PARSE use getArgs() for SQL Server.
3.0.7.2 (2025-04-19)¶
- 2025-04-19: [Snowflake] Properly detect INSERT OVERWRITE clause.
- 2025-04-19: [Vertica] Fix '||' concatenate op.
- 2025-04-19: [MySQL] Support JSON_TABLE.
- 2025-04-19: [MySQL] Support column-level check constraint.
- 2025-04-19: [MySQL] Support ALTER TABLE ADD CONSTRAINT CHECK.
- 2025-04-19: [DB2] Fix TYPE keyword as valid column name in SELECT.
3.0.7.1 (2025-04-17)¶
- 2025-04-17: [General] Fix various test case failures.
3.0.7.0 (2025-04-15)¶
- 2025-04-15: [Snowflake] Fix LEFT/RIGHT join keywords treated as column aliases.
3.0.6.9 (2025-04-13)¶
- 2025-04-13: [gettablecolumn] Match table.column.property to table.* in FROM.
3.0.6.8 (2025-04-12)¶
- 2025-04-12: [BigQuery] Link array element accesses with [offset] to table columns.
- 2025-04-12: [API] Add EExpressionType.teradata_at_t AT time zone support.
- 2025-04-12: [Teradata] Extract time_zone_specification from AT clause.
- 2025-04-12: [Teradata] Add support for many named builtins.
- 2025-04-12: [Snowflake] Support ASOF JOIN.
- 2025-04-12: [SparkSQL] Support grouping set in group by.
3.0.6.7 (2025-04-12)¶
- 2025-04-12: [Hive,SparkSQL] Clarify alias rules for SELECT list.
- 2025-04-12: [Presto] Fix select trailing comma.
3.0.6.6 (2025-04-06)¶
- 2025-04-06: [Teradata] Fix "WITH DATA" clause treats "data" as column name.
- 2025-04-06: [resolver] New column-to-table algorithm takes precedence over old.
- 2025-04-06: [Sybase] Fix alias in SELECT: 'id_col=identity(5)'.
3.0.6.5 (2025-04-05)¶
- 2025-04-05: [Oracle] Fix can't parse EXECUTE PROC_A3; correctly.
- 2025-04-05: [Oracle] Fetch proc name from sqlplus EXEC.
3.0.6.4 (2025-04-05)¶
- 2025-04-05: [Snowflake] REAL keyword can be table alias.
- 2025-04-05: [Oracle] Support parens expr with property access.
- 2025-04-05: [Snowflake] Fix SWAP WITH table direction.
- 2025-04-05: [MySQL] Support EXCEPT clause.
3.0.6.3 (2025-04-04)¶
- 2025-04-04: [Databricks] Fix parens around split() in array access.
- 2025-04-04: [BigQuery] Add TArrayConcatAggFunction.
- 2025-04-04: [GaussDB] Fix 'day' param in TIMESTAMPDIFF.
- 2025-04-04: [General] Remove fake orphan column warning.
- 2025-04-04: [GaussDB] DOUBLE alias for DOUBLE PRECISION.
- 2025-04-04: [GaussDB] Fix can't parse LIMIT 1,1.
3.0.6.2 (2025-04-01)¶
- 2025-04-01: [SparkSQL] Support array access expression.
- 2025-04-01: [SparkSQL] Parsing fix: split negative numbers tokens.
- 2025-04-01: [BigQuery] Show dot after numeric in TObjectName.toString().
3.0.6.0 (2025-03-24)¶
- 2025-03-24: [Teradata] Fix duplicate derived tables in WHERE clause.
3.0.5.9 (2025-03-23)¶
- 2025-03-23: [Databricks/Hive] Support Hash (#) comments.
3.0.5.8 (2025-03-11)¶
- 2025-03-11: [column resolver] Fix bug: column inside UNNEST mislinked.
3.0.5.7 (2025-03-09)¶
- 2025-03-09: [API] ETableEffectType.tetTeradataReference renamed to tetImplicitLateralDerivedTable.
- 2025-03-09: [column resolver] Subquery columns link to subquery FROM by preference.
3.0.5.6 (2025-03-04)¶
- 2025-03-04: [demo] Remove dbConnect from gsp_demo_java.
3.0.5.5 (2025-03-02)¶
- 2025-03-02: [SQL formatter] Fix can't process Teradata Implicit Lateral Derived Table.
3.0.5.4 (2025-03-02)¶
- 2025-03-02: [Vertica] Fix localtime() number param as column.
- 2025-03-02: [Vertica] Support RENAME COLUMN in ALTER TABLE.
3.0.5.3 (2025-03-01)¶
- 2025-03-01: [column resolver] Fix SET in UPDATE to wrong table.
- 2025-03-01: [GaussDB] Support OVERWRITE in INSERT (DWS).
- 2025-03-01: [General] Remove fake orphan column warning.
- 2025-03-01: [Oracle] Resolve package/function/proc name in procedure.
3.0.5.2 (2025-03-01)¶
- 2025-03-01: [DB2] Support ARRAY[1,2,3] (DB2 10.5+).
- 2025-03-01: [DB2] Fix null exception with MERGE/USING/VALUES.
3.0.5.1 (2025-02-27)¶
- 2025-02-27: [getTableColumn] Refactor name resolution logic.
3.0.4.7 (2025-02-08)¶
- 2025-02-08: [General] Fix bugs in resolver, refactor needed.
3.0.4.5 (2025-02-06)¶
- 2025-02-06: [dlineage] Incorrect mapping for SQL Server alias.
3.0.4.5 (2025-02-06)¶
- 2025-02-06: [dlineage] Missing column link for BigQuery.
-
2025-02-06: [semantic] How GSP links unqualified columns to tables.
-
Consider this query:
SELECT append_business_key, f.worklist_field_name AS field_name, f.field_data_type FROM FIN_ICOLLECTION.ico_worklist_append_t a INNER JOIN FIN_ICOLLECTION.ico_worklist_field_info_t f ON a.append_business_key = f.worklist_field_id
- When GSP analyzes this query without extra metadata, it deduces which table an unqualified column belongs to.
- The JOIN condition (a.append_business_key) signals that append_business_key belongs to FIN_ICOLLECTION.ico_worklist_append_t.
- GSP 3.0.4.4 or later links the unqualified append_business_key in SELECT to FIN_ICOLLECTION.ico_worklist_append_t.
-
But if both tables have append_business_key, the reference is ambiguous and needs explicit qualification.
-
Changed behavior:
- Before 3.0.4.4: append_business_key was orphan column.
- Since 3.0.4.4: linked to FIN_ICOLLECTION.ico_worklist_append_t if found in JOIN.
3.0.4.3 (2025-02-02)¶
- 2025-02-02: [Vertica] Support PARTITION BY clause in CREATE TABLE.
- 2025-02-02: [Vertica] Support CREATE TABLE LIKE.
- 2025-02-02: [Vertica] Support ARRAY datatype.
- 2025-02-02: [Vertica] Window support for partitioned result in LIMIT.
- 2025-02-02: [Vertica] Fix on MERGE condition could omit parenthesis.
- 2025-02-02: [Vertica] Support ENABLED/DISABLED in PK col constraint.
- 2025-02-02: [Vertica] TEMP table fix for TableKinds.
3.0.4.2 (2025-01-25)¶
- 2025-01-25: [Vertica] Support DISABLED/ENABLED keyword in constraints.
- 2025-01-25: [Teradata] Fix TRUNC function in IN clause.
- 2025-01-25: [Vertica] Support CALL.
- 2025-01-25: [Vertica] Fix can't parse UNION DISTINCT.
- 2025-01-25: [Vertica] Support ISNULL function.
- 2025-01-25: [Vertica] Support MINUS operator.
- 2025-01-25: [Teradata] Fix CHECKSUM=ALL in CREATE TABLE.
3.0.4.1 (2025-01-20)¶
- 2025-01-20: [Evaluator] Remove outer quotes/handle escaped quotes in string.
3.0.4.0 (2025-01-19)¶
- 2025-01-19: [Evaluator] Support plsql block with loop.
- 2025-01-19: [BigQuery] Fix unable to expand star in SELECT *.
3.0.3.9 (2025-01-12)¶
- 2025-01-12: [Snowflake] Support WITH TAG in view columns.
- 2025-01-12: [SQL Server] Fix can't parse CTAS with CTE used in select.
- 2025-01-12: [Oracle] Recognize CALL after procedure.
3.0.3.8 (2025-01-11)¶
- 2025-01-11: [Snowflake] Fix double dollar delimiter for non-addition binary ops.
- 2025-01-11: [Teradata] Support partition by column in CREATE TABLE.
- 2025-01-11: [Teradata] Support partition by all but.
- 2025-01-11: [Teradata] Parse multiple params in SIGNAL SET.
3.0.3.7 (2025-01-05)¶
- 2025-01-05: [Teradata] Support sequenced/nonsequenced VALIDTIME.
- 2025-01-05: [Teradata] Fix INTERVAL ... HOUR TO MINUTE in CAST.
- 2025-01-05: [Teradata] Insert in WHEN NOT MATCHED should be assignment_t type.
- 2025-01-05: [Teradata] Recognize TTeradataBTEQCmd.bteqCmdType (BTEQ CMD).
3.0.3.7 (2025-01-04)¶
- 2025-01-04: [Snowflake] Support BEGIN; in single-quoted stored procs.
- 2025-01-04: [Snowflake] Support BEGIN; in stored procs.
- 2025-01-04: [dlineage] Add showCandidateTable option for candidate table column links.