chore: port TSQL CREATE EXTERNAL FILE FORMAT (#4647)#2674
Open
mikills wants to merge 5 commits into
Open
Conversation
## Summary - SQLFluff #4654 added the T-SQL `PERIOD FOR SYSTEM_TIME (start_col, end_col)` clause for temporal tables. Ported it to sqruff's `tsql.rs`: new `PeriodSegment` (reusing the existing `SyntaxKind::PeriodSegment`), wired into the `CreateTableStatementSegment` column/constraint list, with `PERIOD` and `SYSTEM_TIME` registered as unreserved keywords. - Added a minimal `temporal_tables` fixture (.sql + .yml) scoped to the PERIOD clause; the dialect test parses it with no unparsable segments. Parser-only change. Ported from SQLFluff 68aa104eda611833ba5b17a76cb1b3f334bea7d0 sqlfluff/sqlfluff#4654 sqlfluff/sqlfluff@68aa104
## Summary - SQLFluff #4653 added T-SQL `sqlcmd` command support (`:r <file>` and `:setvar <name> <value>`). Ported it to sqruff's `tsql.rs`: a new `unquoted_relative_sql_file_path` lexer matcher, `SqlcmdOperatorSegment` (MultiStringParser over `r`/`setvar`), `SqlcmdFilePathSegment`, and `SqlcmdCommandSegment`, wired into the T-SQL statement list, with `R`/`SETVAR` registered as unreserved keywords. - Added the `sqlcmd_command` fixture (.sql + .yml); the dialect test parses all commands with no unparsable segments. Parser-only change. Ported from SQLFluff 964dcd18d158980e0321ab67131f07ced9f8440b sqlfluff/sqlfluff#4653 sqlfluff/sqlfluff@964dcd1
## Summary - SQLFluff #4661 added the Greenplum dialect (a massively parallel Postgres). Ported it to sqruff: new `DialectKind::Greenplum`, `greenplum.rs` (derived from postgres) with the `DISTRIBUTED BY (...) | RANDOMLY | REPLICATED` clause on `CREATE TABLE` and `DISTRIBUTED`/`RANDOMLY`/`REPLICATED` reserved keywords, wired into the dialect registry, feature list, and test harness. - Greenplum storage option values accept literals, bare identifiers, reserved-word identifiers, and quoted identifiers (e.g. `compresstype = zstd`, `orientation = column`, `compresstype = "zstd"`). - Added the `greenplum/create_table` fixture (.sql + .yml); the dialect test parses it with no unparsable segments. Parser-only change. - Follow-up (not in this PR, and not supported by SQLFluff #4661 either): `CREATE TABLE ... AS SELECT ... DISTRIBUTED ...` (CTAS) — the trailing DISTRIBUTED clause needs deeper select parse-mode work. Ported from SQLFluff 32095f823ee6a8b597b3dc8cb688d55449f85b64 sqlfluff/sqlfluff#4661 sqlfluff/sqlfluff@32095f8
## Summary - SQLFluff #4647 added the T-SQL `CREATE EXTERNAL FILE FORMAT` statement. Ported it to sqruff's `tsql.rs`: the `CreateExternalFileFormat` statement plus per-format clauses (DELIMITEDTEXT/RCFILE/ORC/PARQUET/JSON/DELTA), delimited-text `FORMAT_OPTIONS`, and `FileCompression`/`FileEncoding`/`SerdeMethod` value parsers (reusing the existing SyntaxKinds), wired into the T-SQL statement list with the new option keywords registered as unreserved. - Added the `create_external_file_format` fixture (.sql + .yml); the dialect test parses all formats with no unparsable segments. Parser-only change. Ported from SQLFluff a836a89c366adc52e5a0e15e08533532621ad700 sqlfluff/sqlfluff#4647 sqlfluff/sqlfluff@a836a89
Contributor
Benchmark for 9feaed2Click to view benchmark
|
750ccbf to
cef49dd
Compare
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.
Summary
CREATE EXTERNAL FILE FORMATstatement. Ported it to sqruff'stsql.rs: theCreateExternalFileFormatstatement plus per-format clauses (DELIMITEDTEXT/RCFILE/ORC/PARQUET/JSON/DELTA), delimited-textFORMAT_OPTIONS, andFileCompression/FileEncoding/SerdeMethodvalue parsers (reusing the existing SyntaxKinds), wired into the T-SQL statement list with the new option keywords registered as unreserved.create_external_file_formatfixture (.sql + .yml); the dialect test parses all formats with no unparsable segments. Parser-only change.Ported from SQLFluff a836a89c366adc52e5a0e15e08533532621ad700
sqlfluff/sqlfluff#4647
sqlfluff/sqlfluff@a836a89