Add Vertica dialect and preserve native SQL semantics - #468
Merged
Merged
Conversation
Resolve HANA and Vertica conflicts in shared parsing, normalization, generation, dialect registration, and bindings. Preserve both dialects' semantic guards and add regressions for cross-dialect conversions. Update binding checks for the combined 36-dialect list.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Vertica has dialect-specific syntax and semantics that generic PostgreSQL-style parsing and translation can lose. This change adds the dialect across Rust, Python, Go/FFI, and WASM/TypeScript, models the reviewed native forms, and rejects reviewed cross-dialect conversions when equivalent behavior has not been established.
Builds on #467, preserving the original contribution by @ArjixWasTaken and adding the review fixes in three follow-up commits.
Changes
Coverage limits
General SQL uses the existing dialect pipeline. The new Vertica-specific semantic mappings focus on PostgreSQL and DuckDB; native support does not imply an equivalent conversion to every target.
Week/timezone/untyped date differences, dynamic or negative slice bounds, unknown top-level sort types, constrained collection/ROW types, and unsupported partitioned-LIMIT combinations remain explicit errors. Reviewed Vertica-specific DDL, event-series queries, historical queries, and data-movement statements support native round trips but have no foreign mapping.
Native cases were checked against the Vertica reference and structured round trips. DuckDB value regressions execute against DuckDB; no live Vertica or PostgreSQL server was used.
Validation
make test-rust-verifywith DuckDB value checks enabled: passed.make test-go-integration: passed against the freshly built optimized FFI library.make lint-rust, Rust/Go formatting, andmake check-consistency: passed.