417 KiB
Changelog
v23.15.10 - 2024-05-17
✨ New Features
89c1d3a
- clickhouse: support generate TimestampTrunc, Variance, Stddev (PR #3489 by @longxiaofei)
🐛 Bug Fixes
03879bb
- postgres: date_trunc supports time zone (commit by @georgesittas)6e7f37a
- copy into pretty printing and default dialect (PR #3496 by @tobymao)e8600e2
- property eq needs highest precedence (commit by @tobymao)
v23.15.9 - 2024-05-17
💥 BREAKING CHANGES
-
due to
846d5cd
- set default precision / width for DECIMAL type (PR #3472 by @georgesittas):set default precision / width for DECIMAL type (#3472)
-
due to
e3ff67b
- preserve star clauses (EXCLUDE, RENAME, REPLACE) (PR #3477 by @georgesittas):preserve star clauses (EXCLUDE, RENAME, REPLACE) (#3477)
-
due to
b417c80
- parse TININT into UTINYINT to improve transpilation (PR #3486 by @georgesittas):parse TININT into UTINYINT to improve transpilation (#3486)
-
due to
54e31af
- add DECLARE statement parsing (PR #3462 by @jlucas-fsp):add DECLARE statement parsing (#3462)
-
due to
7287bb9
- nested cte ordering closes #3488 (commit by @tobymao):nested cte ordering closes #3488
✨ New Features
2c29bf3
- snowflake: add support for CREATE TAG DDL statement (PR #3473 by @georgesittas)2433993
- transpiler: handle different hex behavior for dialects (PR #3463 by @viplazylmht)- ↘️ addresses issue #3460 opened by @viplazylmht
0009e09
- add epoch_ms of duckdb to other dialects (PR #3471 by @longxiaofei)461215b
- clickhouse: add support for PROJECTION in CREATE TABLE statement (PR #3465 by @GaliFFun)54e31af
- tsql: add DECLARE statement parsing (PR #3462 by @jlucas-fsp)c811adb
- snowflake array_construct_compact to spark (commit by @tobymao)
🐛 Bug Fixes
58d5f2b
- presto: fix parsing and generating hash functions presto/trino (PR #3459 by @viplazylmht)- ↘️ fixes issue #3458 opened by @viplazylmht
065281e
- optimizer: fix multiple bugs in unnest_subqueries, clean up test suite (PR #3464 by @georgesittas)- ↘️ fixes issue #3448 opened by @yesemsanthoshkumar
80ba1e8
- preserve quotes for projections produced by the eliminate_qualify rule (PR #3470 by @aersam)3bc1fbe
- make quoting of alias_or_name in eliminate_qualify more robust (commit by @georgesittas)1843e9b
- allow parameters in user-defined types (PR #3474 by @georgesittas)e004d2a
- duckdb: preserve precedence of json extraction when converting to arrow syntax (PR #3478 by @georgesittas)e3ff67b
- snowflake: preserve star clauses (EXCLUDE, RENAME, REPLACE) (PR #3477 by @georgesittas)428fd61
- mysql: generate CONCAT for DPipe (PR #3482 by @georgesittas)b417c80
- tsql: parse TININT into UTINYINT to improve transpilation (PR #3486 by @georgesittas)a3ff49e
- presto: fix DELETE DML statement for presto/trino (PR #3466 by @viplazylmht)7287bb9
- nested cte ordering closes #3488 (commit by @tobymao)5b64475
- allow rollup to be used as an identifier (PR #3495 by @georgesittas)- ↘️ fixes issue #3494 opened by @dangoldin
♻️ Refactors
846d5cd
- snowflake: set default precision / width for DECIMAL type (PR #3472 by @georgesittas)930f923
- clean up Hex / LowerHex implementation (PR #3483 by @georgesittas)883fcd7
- presto: make DELETE transpilation more robust (PR #3487 by @georgesittas)49f7f85
- tsql: handle TABLE more gracefully for DeclareItem (commit by @georgesittas)
v23.15.8 - 2024-05-11
💥 BREAKING CHANGES
-
due to
510f8b5
- improve transpilation of TABLESAMPLE clause (PR #3457 by @georgesittas):improve transpilation of TABLESAMPLE clause (#3457)
✨ New Features
510f8b5
- improve transpilation of TABLESAMPLE clause (PR #3457 by @georgesittas)e28c959
- make create table cmd parsing less aggressive so that they can be used in sqlmesh @if macros (commit by @tobymao)
v23.15.7 - 2024-05-11
🔧 Chores
c3bb3da
- change python-version to 3.11 for build-rs (commit by @georgesittas)
v23.15.6 - 2024-05-11
🔧 Chores
cd8f568
- fix rust deployment workflow bug (commit by @georgesittas)
v23.15.3 - 2024-05-10
🔧 Chores
v23.15.2 - 2024-05-10
✨ New Features
116172a
- add support for ON property in ALTER and DROP statements (PR #3450 by @GaliFFun)aa104fd
- add semi colon comments (commit by @tobymao)
🐛 Bug Fixes
2c62267
- bigquery: fix SHA1 generator (PR #3453 by @viplazylmht)- ↘️ fixes issue #3451 opened by @viplazylmht
fb3dea9
- clickhouse: fix parsing and generating hash functions (PR #3454 by @viplazylmht)- ↘️ fixes issue #3452 opened by @viplazylmht
b76dfda
- snowflake: COPY Subquery postfix (PR #3449 by @VaggelisD)
🔧 Chores
v23.15.1 - 2024-05-10
🐛 Bug Fixes
v23.15.0 - 2024-05-09
💥 BREAKING CHANGES
✨ New Features
80670bb
- snowflake: Support for APPROX_PERCENTILE (PR #3426 by @VaggelisD)- ↘️ addresses issue #3424 opened by @baruchoxman
b46c5b3
- clickhouse: add support for partition expression (PR #3428 by @GaliFFun)07badc9
- clickhouse: add support for ALTER TABLE REPLACE PARTITION statement (PR #3441 by @GaliFFun)baf39e7
- redshift: improve ALTER TABLE .. ALTER .. support (PR #3444 by @georgesittas)
🐛 Bug Fixes
e8014e2
- mysql: Parse REPLACE statement as Command (PR #3425 by @VaggelisD)273731f
- snowflake: parse CREATE SEQUENCE with commas (PR #3436 by @georgesittas)761ba6f
- don't generate connector comments when comments=False closes #3439 (commit by @georgesittas)a2a6eaa
- handle empty string in connector comment padding (PR #3437 by @uncledata)1bc0ce5
- func to binary MOD generation (PR #3440 by @VaggelisD)- ↘️ fixes issue #3431 opened by @daniel769
5cfb29c
- bigquery: MOD edge case (commit by @georgesittas)9825c4c
- improve error handling for nested schema levels (PR #3445 by @tobymao)c309def
- duckdb: use name sequence instead of single _t for unnest alias (PR #3446 by @georgesittas)0927ae3
- executor: use timezone-aware object to represent datetime in UTC (PR #3447 by @georgesittas)9338ebc
- tsql drop view no catalog (commit by @tobymao)
🔧 Chores
30f9d30
- bump ruff to 0.4.3 (PR #3430 by @georgesittas)91bed56
- test 3.12 (commit by @tobymao)
v23.14.0 - 2024-05-07
💥 BREAKING CHANGES
-
due to
258ad3b
- parse column instead of identifier for SET assignment LHS (PR #3417 by @georgesittas):parse column instead of identifier for SET assignment LHS (#3417)
🐛 Bug Fixes
258ad3b
- parse column instead of identifier for SET assignment LHS (PR #3417 by @georgesittas)17c31da
- lineage: get rid of comments in Node names (PR #3418 by @georgesittas)- ↘️ fixes issue #3414 opened by @jaspev123
ea197ea
- snowflake: ensure OBJECT_CONSTRUCT is not generated inside of VALUES (PR #3419 by @georgesittas)
v23.13.7 - 2024-05-04
🔧 Chores
4dbcd4f
- refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)
v23.13.6 - 2024-05-04
🔧 Chores
aa4f90a
- refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)
v23.13.5 - 2024-05-04
🔧 Chores
0deffd8
- refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)
v23.13.4 - 2024-05-04
🔧 Chores
5125732
- refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)
v23.13.3 - 2024-05-04
🔧 Chores
0a36dd8
- fix should-deploy-rs bash condition (commit by @georgesittas)
v23.13.2 - 2024-05-04
🐛 Bug Fixes
fc979a0
- snowflake: make FILE_FORMAT option always be uppercase in COPY INTO (commit by @georgesittas)
🔧 Chores
1b5b77d
- improve unsupported error documentation (PR #3406 by @georgesittas)fcb51af
- release sqlglotrs only when Cargo.toml is updated (PR #3408 by @georgesittas)
v23.13.1 - 2024-05-04
🐛 Bug Fixes
2c2a788
- snowflake: COPY postfix (PR #3398 by @VaggelisD)- ↘️ fixes issue #3388 opened by @dangoldin
v23.13.0 - 2024-05-03
💥 BREAKING CHANGES
-
due to
cc6259d
- Mark UDTF child scopes as ScopeType.SUBQUERY (PR #3390 by @VaggelisD):Mark UDTF child scopes as ScopeType.SUBQUERY (#3390)
-
due to
33bae9b
- get rid of superfluous "parameters" arg in RegexpReplace (PR #3394 by @georgesittas):get rid of superfluous "parameters" arg in RegexpReplace (#3394)
-
due to
3768514
- snowflake optional merge insert (commit by @tobymao):snowflake optional merge insert
-
due to
d1b4f1f
- Introducing TIMESTAMP_NTZ token and data type (PR #3386 by @VaggelisD):Introducing TIMESTAMP_NTZ token and data type (#3386)
✨ New Features
d1b4f1f
- Introducing TIMESTAMP_NTZ token and data type (PR #3386 by @VaggelisD)16691f9
- prql: add support for AGGREGATE (PR #3395 by @fool1280)534fb80
- postgres: add support for anonymos index DDL syntax (PR #3403 by @georgesittas)
🐛 Bug Fixes
a2afcca
- mysql: don't cast into invalid numeric/text types (PR #3375 by @georgesittas)60b5c3b
- spark: transpile presto TRY, fix JSON casting issue (PR #3376 by @georgesittas)- ↘️ fixes issue #3374 opened by @cploonker
3e8de71
- postgres: allow FOR clause without FROM in SUBSTRING closes #3377 (commit by @georgesittas)b2a7e55
- optimizer: Remove XOR from connector simplifications (PR #3380 by @VaggelisD)- ↘️ fixes issue #3372 opened by @colincointe
477754c
- trino: bring back TRIM parsing (PR #3385 by @georgesittas)- ↘️ fixes issue #3384 opened by @dmelchor-stripe
cc6259d
- optimizer: Mark UDTF child scopes as ScopeType.SUBQUERY (PR #3390 by @VaggelisD)0d23b20
- allow joins in FROM expression parser (PR #3389 by @georgesittas)- ↘️ fixes issue #3387 opened by @MikeWallis42
e7021df
- duckdb: Preserve DATE_SUB roundtrip (PR #3382 by @VaggelisD)641b296
- postgres: tokenize INT8 as BIGINT (PR #3392 by @georgesittas)33bae9b
- get rid of superfluous "parameters" arg in RegexpReplace (PR #3394 by @georgesittas)3768514
- snowflake optional merge insert (commit by @tobymao)f44cd24
- make generated constraint parsing more lenient fixes #3397 (commit by @georgesittas)00ff877
- tsql: quote hash sign as well for quoted temporary tables (PR #3401 by @georgesittas)84b7026
- trino: support for data type 'tdigest' (PR #3402 by @suryaiyer95)24e1115
- trino|presto: adding cast support for "hyperloglog" column type (PR #3405 by @uncledata)
v23.12.2 - 2024-04-30
✨ New Features
d2a6f16
- COPY TO/FROM statement (PR #3359 by @VaggelisD)f034ea0
- mysql: Transpile TimestampTrunc (PR #3367 by @VaggelisD)- ↘️ addresses issue #3366 opened by @sivpr2000
🐛 Bug Fixes
f697cb1
- duckdb describe query closes #3353 (commit by @tobymao)6e0fc5d
- export optimizer functions explicitly in init (PR #3358 by @georgesittas)23d45ee
- postgres: don't generate CommentColumnConstraint (PR #3357 by @georgesittas)e87685b
- lineage: use source names of derived table sources for laterals (PR #3360 by @georgesittas)- ↘️ fixes issue #3356 opened by @eliaperantoni
e82a30b
- postgres: don't generate SchemaCommentProperty (PR #3364 by @georgesittas)47dc52c
- mysql: convert epoch extraction into UNIX_TIMESTAMP call (PR #3369 by @georgesittas)b8f0979
- mysql: generate GROUP_CONCAT for ArrayAgg (PR #3370 by @georgesittas)
♻️ Refactors
b928f54
- don't mutate the AST when creating DDL scopes (PR #3371 by @georgesittas)
v23.12.1 - 2024-04-25
🔧 Chores
719d394
- add a test for quoted aliases (commit by @tobymao)6d7a9f4
- use unknown token types (commit by @tobymao)
v23.12.0 - 2024-04-25
💥 BREAKING CHANGES
-
due to
c5ce47b
- Combine aggregate functions with orderby from WITHIN GROUP (PR #3352 by @VaggelisD):Combine aggregate functions with orderby from WITHIN GROUP (#3352)
✨ New Features
80793cc
- parse (a,) as a tuple instead of a paren (PR #3341 by @georgesittas)b3826f8
- allow comments to be attached for identifiers used in definitions (PR #3340 by @georgesittas)ce7d893
- clickhouse: Parse window functions in ParameterizedAggFuncs (PR #3347 by @VaggelisD)
🐛 Bug Fixes
0e54975
- tsql: only use target table name when generating sp_rename (PR #3342 by @georgesittas)52bdd0c
- tsql: Convert TIMESTAMP to ROWVERSION, transpile both to BINARY (PR #3348 by @VaggelisD)c5ce47b
- duckdb: Combine aggregate functions with orderby from WITHIN GROUP (PR #3352 by @VaggelisD)
🔧 Chores
v23.11.2 - 2024-04-19
🐛 Bug Fixes
v23.11.1 - 2024-04-19
🐛 Bug Fixes
v23.11.0 - 2024-04-19
💥 BREAKING CHANGES
-
due to
290e408
- Preserve DPipe in simplify_concat (PR #3317 by @VaggelisD):Preserve DPipe in simplify_concat (#3317)
-
due to
83cff79
- add comprehensive reserved keywords for presto and redshift (PR #3322 by @tobymao):add comprehensive reserved keywords for presto and redshift (#3322)
-
due to
61f5b12
- Introduce partition in exp.Table (PR #3327 by @VaggelisD):Introduce partition in exp.Table (#3327)
-
due to
1832ff1
- dynamic styling for inline arrays (commit by @tobymao):dynamic styling for inline arrays
-
due to
5fb7f5b
- dont double indent comments (commit by @tobymao):dont double indent comments
✨ New Features
4f1691a
- allow qualify to also annotate on the fly for unnest support (PR #3316 by @tobymao)83cff79
- add comprehensive reserved keywords for presto and redshift (PR #3322 by @tobymao)ef3311a
- hive: Add 'STORED AS' option in INSERT DIRECTORY (PR #3326 by @VaggelisD)- ↘️ addresses issue #3320 opened by @bkyryliuk
7f9cb2d
- clickhouse: Add support for DATE_FORMAT / formatDateTime (PR #3329 by @VaggelisD)- ↘️ addresses issue #3324 opened by @PaienNate
61f5b12
- Introduce partition in exp.Table (PR #3327 by @VaggelisD)- ↘️ addresses issue #3319 opened by @bkyryliuk
31744b2
- prql: handle NULL (PR #3331 by @fool1280)1105044
- tsql: add alter table rename (commit by @tobymao)1832ff1
- dynamic styling for inline arrays (commit by @tobymao)
🐛 Bug Fixes
ef84f17
- optimizer: don't simplify parentheses when parent is SubqueryPredicate (PR #3315 by @georgesittas)290e408
- optimizer: Preserve DPipe in simplify_concat (PR #3317 by @VaggelisD)52b957a
- transform eliminate_qualify on generated columns (PR #3307 by @viplazylmht)eb8d7b8
- remove e*s mapping because it's not equivalent to %f (commit by @tobymao)9de1494
- allow bigquery udf with resered keyword closes #3332 (PR #3333 by @tobymao)e2b6213
- don't double comment unions (commit by @tobymao)5fb7f5b
- dont double indent comments (commit by @tobymao)
🔧 Chores
v23.10.0 - 2024-04-12
🐛 Bug Fixes
506760d
- redshift: unqualify unnest columns (PR #3314 by @georgesittas)
♻️ Refactors
0450521
- get rid of 1st projection pad for leading comma formatting (PR #3308 by @georgesittas)
v23.9.0 - 2024-04-12
💥 BREAKING CHANGES
-
due to
32cdc36
- allow unions to be limited directly and stop subquerying since… (PR #3301 by @tobymao):allow unions to be limited directly and stop subquerying since… (#3301)
-
due to
3c97d34
- parse right-hand side of IN () as a Subquery (PR #3304 by @georgesittas):parse right-hand side of IN () as a Subquery (#3304)
-
due to
75e0c69
- cast less aggressively (PR #3302 by @georgesittas):cast less aggressively (#3302)
✨ New Features
a721923
- prql: Add support for SORT (PR #3297 by @fool1280)2ea438b
- is_negative helper method (commit by @tobymao)b28cd89
- improve transpilation of datetime functions to Teradata (PR #3295 by @maureen-daum)32cdc36
- allow unions to be limited directly and stop subquerying since… (PR #3301 by @tobymao)- ↘️ addresses issue #3300 opened by @williaster
1bc51df
- teradata: handle transpile of quarter function (PR #3303 by @maureen-daum)4790414
- prql: Handle DESC with sort (PR #3299 by @fool1280)
🐛 Bug Fixes
3c97d34
- parse right-hand side of IN () as a Subquery (PR #3304 by @georgesittas)75e0c69
- cast less aggressively (PR #3302 by @georgesittas)d3472c6
- Add postgres transpilation for TIME_TO_UNIX (PR #3305 by @crericha)2224881
- case when / if should ignore null types (commit by @tobymao)5b2feb7
- allow unnesting to bring struct fields into scope (commit by @tobymao)
🔧 Chores
b523bb6
- cleanup teradata to simplify first (commit by @tobymao)6f73186
- refactor to use inline lambda (commit by @tobymao)6b21bba
- make test runnable (commit by @tobymao)
v23.8.2 - 2024-04-10
✨ New Features
🐛 Bug Fixes
94c188d
- optimizer: propagate recursive CTE source to children scopes early (PR #3294 by @georgesittas)281db61
- replace fully qualified columns with generated table aliases since they become invalid (commit by @tobymao)
v23.8.1 - 2024-04-09
✨ New Features
942856d
- postgres: add COMMENT ON MATERIALIZED VIEW (PR #3293 by @l-vincent-l)
🐛 Bug Fixes
fd24b27
- make exp.to_column more lenient (PR #3292 by @georgesittas)
v23.8.0 - 2024-04-08
💥 BREAKING CHANGES
-
due to
6bba030
- transpile map retrieval to duckdb, transpile TRY_ELEMENT_AT (PR #3277 by @georgesittas):transpile map retrieval to duckdb, transpile TRY_ELEMENT_AT (#3277)
-
due to
02218fc
- allow to_column to properly parse quoted column paths, make types simpler (PR #3289 by @tobymao):allow to_column to properly parse quoted column paths, make types simpler (#3289)
✨ New Features
08222c2
- clickhouse: add support for MATERIALIZED, EPHEMERAL column constraints (PR #3275 by @pkit)6bba030
- transpile map retrieval to duckdb, transpile TRY_ELEMENT_AT (PR #3277 by @georgesittas)1726923
- desc history databricks closes #3280 (commit by @tobymao)0690cbc
- snowflake: FINAL/RUNNING keywords in MATCH_RECOGNIZE MEASURES (PR #3284 by @VaggelisD)1311ba3
- presto: add support for DISTINCT / ALL after GROUP BY (PR #3290 by @georgesittas)- ↘️ addresses issue #3286 opened by @bkyryliuk
🐛 Bug Fixes
f65d812
- move EphemeralColumnConstraint generation to base generator (commit by @georgesittas)6d1c44d
- optimizer: unnest union subqueries (PR #3278 by @georgesittas)a37d231
- presto: allow qualify to be an alias closes #3287 (commit by @tobymao)02218fc
- allow to_column to properly parse quoted column paths, make types simpler (PR #3289 by @tobymao)fe0eb57
- pass quoted to the identifier (commit by @tobymao)
🔧 Chores
v23.7.0 - 2024-04-04
✨ New Features
🐛 Bug Fixes
19302ab
- optimizer: preserve the original type when creating a date literal (PR #3273 by @georgesittas)
v23.6.4 - 2024-04-03
🐛 Bug Fixes
803fc9e
- allow placeholders in units closes #3265 (PR #3267 by @tobymao)64ae85b
- nested cte ordering closes #3266 (commit by @tobymao)09287d9
- amend interval unit parsing regression (PR #3269 by @georgesittas)- ↘️ fixes issue #3268 opened by @LilyFoote
bc26e84
- optimizer: tweaks to date simplification (PR #3270 by @barakalon)
v23.6.0 - 2024-04-02
🔧 Chores
4eec748
- deploy sqlglot and then sqlglotrs (PR #3264 by @georgesittas)
v23.4.0 - 2024-04-02
💥 BREAKING CHANGES
-
due to
e148fe1
- describe formatted closes #3244 (commit by @tobymao):describe formatted closes #3244
-
due to
2c359e7
- properly transpile escape sequences (PR #3256 by @georgesittas):properly transpile escape sequences (#3256)
-
due to
9787567
- bump sqlglotrs to 0.2.0 (commit by @georgesittas):bump sqlglotrs to 0.2.0
✨ New Features
8dba8e2
- optimizer: Support for small integer CAST elimination (PR #3234 by @VaggelisD)- ↘️ addresses issue #3229 opened by @NickCrews
e148fe1
- describe formatted closes #3244 (commit by @tobymao)a48d7eb
- allow non func hints closes #3248 (commit by @tobymao)d90ec95
- add conversion of named tuples and classes to structs (PR #3245 by @tobymao)f88640b
- clickhouse: CREATE TABLE computed columns, column compression, index (PR #3252 by @VaggelisD)a64ec1b
- snowflake: MATCH_CONDITION in ASOF JOIN (PR #3255 by @VaggelisD)- ↘️ addresses issue #3254 opened by @Bilbottom
🐛 Bug Fixes
a630c50
- allow interval spans closes #3246 (commit by @tobymao)28c5ee7
- mysql: Duplicate parsing of ENGINE_ATTRIBUTE (PR #3253 by @VaggelisD)2c359e7
- properly transpile escape sequences (PR #3256 by @georgesittas)6badfd1
- Fix STRPOS for Presto & Trino (PR #3261 by @VaggelisD)- ↘️ fixes issue #3259 opened by @amitgilad3
🔧 Chores
9787567
- bump sqlglotrs to 0.2.0 (commit by @georgesittas)
v23.3.0 - 2024-03-29
💥 BREAKING CHANGES
-
due to
0919be5
- StrToUnix Hive parsing, Presto generation fixes (PR #3225 by @georgesittas):StrToUnix Hive parsing, Presto generation fixes (#3225)
-
due to
163c85c
- convert dt with isoformat sep space for better compat, trino doesnt accept T (commit by @tobymao):convert dt with isoformat sep space for better compat, trino doesnt accept T
✨ New Features
59f1d13
- oracle: Support for CONNECT BY [NOCYCLE] (PR #3238 by @VaggelisD)- ↘️ addresses issue #3237 opened by @Hal-H2Apps
12563ae
- mvp for transpling sqlite's STRFTIME (PR #3242 by @georgesittas)- ↘️ addresses issue #3240 opened by @markhalonen
🐛 Bug Fixes
0919be5
- StrToUnix Hive parsing, Presto generation fixes (PR #3225 by @georgesittas)163c85c
- convert dt with isoformat sep space for better compat, trino doesnt accept T (commit by @tobymao)555647d
- make property value parsing more lenient (PR #3230 by @georgesittas)8325039
- duckdb: wrap columns inside of INTERVAL expressions (commit by @georgesittas)fd5783f
- don't evaluate Rand twice when ordering by it (PR #3233 by @georgesittas)b097da5
- index error when comment sql is none (commit by @tobymao)bf94ce3
- > 1 nested joins closes #3231 (commit by @tobymao)2a3a5cd
- properly parse/generate duckdb MAP {..} syntax, annotate MAPs (PR #3241 by @georgesittas)
🔧 Chores
v23.1.0 - 2024-03-26
💥 BREAKING CHANGES
-
due to
71b82b4
- allow transformations that mutate the visited node's parent (PR #3182 by @georgesittas):allow transformations that mutate the visited node's parent (#3182)
✨ New Features
c19878a
- transpile Snowflake's ADDTIME (PR #3180 by @georgesittas)66e2e49
- improve lineage perf (commit by @tobymao)ad23608
- mysql: Parse MODIFY COLUMN (PR #3189 by @VaggelisD)- ↘️ addresses issue #3186 opened by @kosti-hokkanen-supermetrics
a18444d
- add expressions for CORR, COVAR_SAMP, COVAR_POP (PR #3193 by @ttzhou)3620b99
- add support for convertingbytes
to sqlglot AST (PR #3198 by @georgesittas)648c819
- redshift starts with support (PR #3194 by @eakmanrq)c355a4a
- tsql: add support for WITH <view_attribute> in view DDL (PR #3203 by @georgesittas)8622eb2
- duckdb: add support for heredoc string syntax (PR #3212 by @georgesittas)b50dc5e
- Support for MySQL & Redshift UnixTotime (PR #3223 by @VaggelisD)- ↘️ addresses issue #3214 opened by @exgalibas
2f6a2f1
- optimizer: Support for UNION BY NAME (PR #3224 by @VaggelisD)- ↘️ addresses issue #3222 opened by @yiyuanliu
🐛 Bug Fixes
71b82b4
- allow transformations that mutate the visited node's parent (PR #3182 by @georgesittas)- ↘️ fixes issue #3181 opened by @l-vincent-l
6827edd
- postgres: Fix ARROW/DARROW column operators (PR #3191 by @VaggelisD)- ↘️ fixes issue #3185 opened by @ZipBrandon
0dd9ba5
- Fix backtracking through try/catch exceptions (PR #3190 by @VaggelisD)5cdd874
- generator: compute csv leading comma pad length correctly (PR #3201 by @georgesittas)- ↘️ fixes issue #3199 opened by @giovannipcarvalho
73fc807
- tokenizer: don't increment array cursor by 2 on CRLF (PR #3204 by @georgesittas)af1b026
- snowflake: convert VALUES with invalid expressions into UNION ALL (PR #3213 by @georgesittas)ec4648f
- optimizer: don't merge ORDER BY into UNION (PR #3215 by @barakalon)- ↘️ fixes issue #3211 opened by @rorynormaness
e4dd052
- allow snowflake object_construct with string keys to transpile to sqlglot dialect (commit by @tobymao)9e39076
- tsql: datestrtodate for tsql closes #3216 (commit by @tobymao)e7c9158
- bq datetime to timestamp (PR #3220 by @eakmanrq)e6b8d1f
- optimizer: constrain UDTF scope boundary (PR #3226 by @georgesittas)- ↘️ fixes issue #3209 opened by @rorynormaness
♻️ Refactors
4cd0e17
- get rid of redundant condition in Expression.replace (PR #3192 by @georgesittas)
🔧 Chores
3879518
- bump sqlglotrs to 0.1.3 (commit by @georgesittas)
v23.0.5 - 2024-03-20
🐛 Bug Fixes
ed2c9e1
- move varchar max conversion to base (commit by @tobymao)e3b6139
- move comment from window function to Window expression (PR #3178 by @georgesittas)- ↘️ fixes issue #2299 opened by @georgesittas
a452276
- clickhouse: Fixing FORMAT being parsed as implicit alias (PR #3179 by @VaggelisD)
v23.0.4 - 2024-03-20
🐛 Bug Fixes
🔧 Chores
20cd803
- cleanup redundant check (commit by @tobymao)7e12342
- add superset to readme (commit by @tobymao)
v23.0.3 - 2024-03-19
✨ New Features
🐛 Bug Fixes
eaaeab0
- snowflake: Allow non-literal expressions too in DATE functions (PR #3167 by @VaggelisD)
v23.0.2 - 2024-03-19
✨ New Features
32cc2be
- postgres: add support for materialized CTEs (PR #3171 by @georgesittas)- ↘️ addresses issue #3170 opened by @betodealmeida
🐛 Bug Fixes
df4ce17
- can't expand group by for nulls and bools (commit by @tobymao)d859fc0
- unnest annotation with generate_date_array (PR #3169 by @tobymao)
v23.0.1 - 2024-03-19
✨ New Features
🐛 Bug Fixes
5e18d49
- fill in missing implementation details for replace(None) (PR #3166 by @georgesittas)- ↘️ fixes issue #3165 opened by @streamnsight
a0df28f
- can't simplify null parens (commit by @tobymao)
🔧 Chores
eb0a6c3
- actually pop the where statement (commit by @tobymao)f6778ef
- add recursion test (commit by @tobymao)
v23.0.0 - 2024-03-18
✨ New Features
e838713
- mysql: Support for multi arg GROUP_CONCAT (PR #3150 by @VaggelisD)- ↘️ addresses issue #3142 opened by @optionals
7e8f134
- test: Add standard alias to some TPC-DS query (PR #3151 by @fool1280)6d0e965
- add skip limit token kwarg (PR #3149 by @z3z1ma)3ed5845
- include table alias in bigquery unnest (PR #3156 by @eakmanrq)706fac3
- add bigquery mod op (PR #3157 by @eakmanrq)6ffdc25
- clickhouse: Support for INSERT INTO TABLE FUNCTION (PR #3162 by @VaggelisD)021af42
- snowflake: Adding support for DATE, TO_DATE, TRY_TO_DATE functions (PR #3160 by @VaggelisD)
🐛 Bug Fixes
cfde552
- asof identifier closes #3153 (commit by @tobymao)b1e6eef
- bigquery values transpilation with no column alias (commit by @tobymao)c0760b3
- parse over any closes #3155 (commit by @tobymao)
🔧 Chores
38b931e
- pin ruff (commit by @tobymao)66a6284
- improve type hints of Query methods (PR #3148 by @georgesittas)
v22.5.0 - 2024-03-14
💥 BREAKING CHANGES
-
due to
2b4952e
- desugar LOG2 and LOG10 by converting them into LOG (PR #3139 by @georgesittas):desugar LOG2 and LOG10 by converting them into LOG (#3139)
✨ New Features
c01ff44
- snowflake: Add TO_TIMESTAMP test and update env.py (PR #3130 by @fool1280)8526c8e
- tsql: transpile LIMIT with OFFSET properly (PR #3145 by @georgesittas)
🐛 Bug Fixes
a9db8ff
- don't mutate parent nested classes if undefined in a dialect (PR #3134 by @georgesittas)d6bac3e
- duckdb: Slice + Array bug (PR #3137 by @VaggelisD)230a845
- optimizer bugs (commit by @tobymao)
♻️ Refactors
2b4952e
- desugar LOG2 and LOG10 by converting them into LOG (PR #3139 by @georgesittas)- ↘️ addresses issue #3138 opened by @baruchoxman
🔧 Chores
ebbf5a1
- copy sqlglot.svg in docs/ to also display logo in website (PR #3147 by @georgesittas)- ↘️ addresses issue #3146 opened by @lostmygithubaccount
v22.4.0 - 2024-03-12
💥 BREAKING CHANGES
-
due to
b1c8cac
- traverse union scopes iteratively (PR #3112 by @georgesittas):traverse union scopes iteratively (#3112)
✨ New Features
88033da
- test: add more passing tpcds tests (PR #3110 by @fool1280)804af34
- duckdb: add support for positional joins (PR #3111 by @georgesittas)- ↘️ addresses issue #3109 opened by @dylanscott
c4e7bbf
- improve transpilation of TO_NUMBER (commit by @codeDing18)80d484c
- postgres: generate StrToDate (PR #3124 by @georgesittas)09708f5
- Adding EXCLUDE constraint support (PR #3116 by @VaggelisD)9b25a8e
- Adding BACKUP property (PR #3127 by @VaggelisD)0ea849b
- Adding NAME data type in Postgres/Redshift (PR #3128 by @VaggelisD)
🐛 Bug Fixes
c333017
- correctly generate ArrayJoin in various dialects (PR #3120 by @georgesittas)12d72a6
- make the lineage sources dict type covariant (PR #3122 by @georgesittas)- ↘️ fixes issue #3121 opened by @rexledesma
b1c8cac
- traverse union scopes iteratively (PR #3112 by @georgesittas)94b5a2f
- athena: Fix CREATE TABLE properties, STRING data type (PR #3129 by @VaggelisD)- ↘️ fixes issue #3126 opened by @matthias-Q
♻️ Refactors
0ce9ef1
- improve parsing of storage provider setting in index params (commit by @georgesittas)
v22.3.1 - 2024-03-09
✨ New Features
🐛 Bug Fixes
fa84e2c
- copy all arg keys, including those set to None (PR #3108 by @georgesittas)
v22.3.0 - 2024-03-08
✨ New Features
46c9c2c
- snowflake: parse CREATE SEQUENCE (PR #3072 by @tekumara)9f1e1ad
- add Athena dialect (PR #3089 by @georgesittas)efee388
- no more recursion for union generation (PR #3101 by @tobymao)ddab9df
- duckdb: add support for exp.ArrayJoin (PR #3102 by @seruman)8d5be0c
- duckdb: make ARRAY_TO_STRING transpilable to other dialects (commit by @georgesittas)a38db01
- Generalizing CREATE SEQUENCE (PR #3090 by @VaggelisD)18fd079
- no recursion copy (PR #3103 by @tobymao)
🐛 Bug Fixes
b101013
- subquery edge cases (PR #3076 by @tobymao)8c4400b
- bigquery: more table qualification edge cases closes #3083 (commit by @tobymao)d898f55
- bigquery: even more edge cases (commit by @tobymao)4fb74ff
- dataframe optimize user input (PR #3092 by @eakmanrq)- ↘️ fixes issue #3091 opened by @alexdemeo
♻️ Refactors
cea7508
- lineage: simplifyNode.walk()
(PR #3098 by @rexledesma)ebe5a46
- executor: simplify column type inference (PR #3104 by @georgesittas)
🔧 Chores
6c67a2b
- reduce size of tpcds (commit by @tobymao)21e4fca
- update dialect count in README to include Athena (commit by @georgesittas)
v22.2.1 - 2024-03-04
✨ New Features
19e07f3
- initial commit prql (commit by @tobymao)13b64fd
- more prql (commit by @tobymao)3d263aa
- oracle: Support for INSERT hint (PR #3077 by @VaggelisD)- ↘️ addresses issue #3074 opened by @sunrutcon
🐛 Bug Fixes
c51b64f
- json extract precedence closes #3068 (commit by @tobymao)223a475
- planner: don't overwrite JOIN step name (PR #3071 by @georgesittas)2770ddc
- drop CLUSTER/DISTRIBUTED/SORT BY modifiers when unsupported (PR #3069 by @georgesittas)- ↘️ fixes issue #3066 opened by @cploonker
4173ea2
- handle lineage of subqueries (PR #3075 by @tobymao)0ebce40
- redshift: don't transform multi-arg DISTINCT clause (PR #3079 by @georgesittas)
v22.2.0 - 2024-03-01
💥 BREAKING CHANGES
-
due to
08bafbd
- handle unnesting groups closes #3056 (PR #3058 by @tobymao):handle unnesting groups closes #3056 (#3058)
-
due to
4029fab
- expand alias refs of double aggs if it is a window func (PR #3059 by @tobymao):expand alias refs of double aggs if it is a window func (#3059)
✨ New Features
8662e31
- postgres: improve transpilation of JSON array unnesting (PR #3063 by @georgesittas)c9bde44
- Making parse_number & parse_string more lenient (PR #3064 by @VaggelisD)
🐛 Bug Fixes
08bafbd
- handle unnesting groups closes #3056 (PR #3058 by @tobymao)4029fab
- expand alias refs of double aggs if it is a window func (PR #3059 by @tobymao)4e6e82c
- snowflake: allow any identifier after : closes #3061 (PR #3062 by @georgesittas)e2becea
- is distinct from parsing (commit by @tobymao)c8a753b
- Ignore Identifier nodes in the diffing algorithm (PR #3065 by @izeigerman)
v22.1.1 - 2024-02-29
✨ New Features
1e25ec9
- test: handle NULL value in TPC-DS (PR #3052 by @fool1280)ad21b6b
- test: add more passing tpc-ds test (PR #3053 by @fool1280)
🐛 Bug Fixes
08249af
- Hive UnixToTime regression, README stale results (PR #3055 by @VaggelisD)39b3813
- redshift: don't pop recursive cte table columns (commit by @tobymao)6a9501f
- ensure UDF identifier quotes are preserved (PR #3057 by @georgesittas)
v22.1.0 - 2024-02-29
✨ New Features
🐛 Bug Fixes
v22.0.2 - 2024-02-28
✨ New Features
51f8d58
- tsql: add support for OPTION clause, select only (PR #3025 by @nadav-botanica)c9eef99
- Support for TRUNCATE TABLE/DATABASE DDL (PR #3026 by @VaggelisD)703b878
- mysql: add LOCK property, allow properties after ALTER TABLE (PR #3027 by @georgesittas)- ↘️ addresses issue #3020 opened by @samotarnik
🐛 Bug Fixes
bc4acb9
- allow trailing comma in ORDER BY list (PR #3031 by @georgesittas)4105639
- bigquery: unquoted project-0.x closes #3029 (commit by @tobymao)f1f2aec
- bigquery edgecase (commit by @tobymao)5c01c01
- handle falsey values for replace_placeholders kwargs (PR #3036 by @sarchila)ccfbb22
- clickhouse: make CTE expression parser more flexible fixes #3038 (commit by @georgesittas)30e0bb1
- another edge case (commit by @tobymao)0d93852
- oracle: handle GLOBAL/PRIVATE keyword in temp table DDL (PR #3045 by @georgesittas)e89d38d
- duckdb: recognize ENUM as a type (PR #3044 by @georgesittas)4db7781
- avoid raising a KeyError in the lineage module, log a warning (PR #3048 by @georgesittas)
♻️ Refactors
5337980
- simplify parsing of keyword sequences as Vars (PR #3034 by @georgesittas)bc35c59
- use _parse_var_from_options for USE statement parser (PR #3035 by @georgesittas)
🔧 Chores
c0d355a
- bump sqlglotrs to 0.1.2 (commit by @georgesittas)
v22.0.1 - 2024-02-26
🐛 Bug Fixes
e2fc6e8
- optimizer: fix parent mutation of new_projections in column qualifier (PR #3030 by @georgesittas)
v22.0.0 - 2024-02-26
💥 BREAKING CHANGES
-
due to
2507aa2
- consolidate Subqueryable and Unionable into Query expression (PR #2992 by @georgesittas):consolidate Subqueryable and Unionable into Query expression (#2992)
-
due to
d5eb2b1
- make implicit unnest syntax explicit by using UNNEST calls (PR #3005 by @georgesittas):make implicit unnest syntax explicit by using UNNEST calls (#3005)
-
due to
238f9aa
- refactor structs to always be aliases (PR #3017 by @tobymao):refactor structs to always be aliases (#3017)
-
due to
06bcfcd
- select expressions not statements closes #3022, statements can be parsed without into (commit by @tobymao):select expressions not statements closes #3022, statements can be parsed without into
-
due to
1612e62
- Add reference to lineage node (PR #3018 by @vchan):Add reference to lineage node (#3018)
✨ New Features
e50609b
- Supporting RANGE <-> GENERATE_SERIES between DuckDB & SQLite (PR #3010 by @VaggelisD)1709ec2
- bigquery e6s format (commit by @tobymao)17e34e7
- add unnest type annotations (PR #3019 by @tobymao)efdbc12
- clickhouse prewhere closes #3024 (commit by @tobymao)1612e62
- Add reference to lineage node (PR #3018 by @vchan)5c3bd10
- test: add more passing tests of tpc-ds (PR #3016 by @fool1280)
🐛 Bug Fixes
7f547e6
- it's actually seconds + fraction (commit by @tobymao)238f9aa
- refactor structs to always be aliases (PR #3017 by @tobymao)06bcfcd
- select expressions not statements closes #3022, statements can be parsed without into (commit by @tobymao)
♻️ Refactors
2507aa2
- consolidate Subqueryable and Unionable into Query expression (PR #2992 by @georgesittas)d5eb2b1
- make implicit unnest syntax explicit by using UNNEST calls (PR #3005 by @georgesittas)8943179
- move limit method to Query, get rid of Subquery.subquery override (PR #3013 by @georgesittas)
🔧 Chores
v21.2.1 - 2024-02-22
✨ New Features
2a88e40
- bigquery: support ELSE and ELSEIF procedural statements (PR #3011 by @georgesittas)- ↘️ addresses issue #3009 opened by @razvan-am
d2e15ed
- improve transpilation of Doris' MONTHS_ADD (PR #3012 by @georgesittas)
🐛 Bug Fixes
v21.2.0 - 2024-02-22
💥 BREAKING CHANGES
-
due to
2940417
- simplify ADD CONSTRAINT handling (PR #2990 by @georgesittas):simplify ADD CONSTRAINT handling (#2990)
✨ New Features
7c48079
- support parameters in BigQuery / DuckDB (PR #2991 by @r1b)b7c2744
- tests: update test_executor with tpc-ds (PR #2983 by @fool1280)c433cad
- allow more leniant bigquery wildcard parsing (PR #2998 by @tobymao)8607247
- support LEFT JOIN UNNEST in duckdb (PR #2999 by @r1b)64e38ed
- add support for more Snowflake SHOW commands (PR #3002 by @DanCardin)
🐛 Bug Fixes
bc18f56
- optimizer: don't coerce nested arg types in annotate_by_args (PR #2997 by @georgesittas)- ↘️ fixes issue #2152 opened by @plaflamme
ccd8cc0
- doris to_char closes #3001 (commit by @tobymao)
♻️ Refactors
2940417
- simplify ADD CONSTRAINT handling (PR #2990 by @georgesittas)d2711f7
- clean up duplicative placeholder_sql implementations (PR #2993 by @georgesittas)
🔧 Chores
v21.1.2 - 2024-02-19
✨ New Features
b8cbf66
- bigquery: parse procedural EXCEPTION WHEN statement into a Command closes #2981 (commit by @georgesittas)906ceee
- duckdb: implement generation logic for exp.ArrayAny (PR #2984 by @georgesittas)92455e4
- snowflake: create storage integration (PR #2985 by @tekumara)bedf6e9
- improve transpilation support for ArrayAny (PR #2986 by @georgesittas)- ↘️ addresses issue #2707 opened by @HuashiSCNU0303
🐛 Bug Fixes
cc67ab2
- tsql: map StrPosition back to CHARINDEX fixes #2968 (commit by @georgesittas)46f15ce
- postgres: ensure json extraction can roundtrip unaltered (PR #2974 by @georgesittas)- ↘️ fixes issue #2971 opened by @l-vincent-l
7ee4fe7
- expand using with star except (commit by @tobymao)
♻️ Refactors
5a34f3d
- clean up tech debt in dialect implementations (PR #2977 by @georgesittas)
🔧 Chores
ae92789
- rephrase some sentences in the FAQ section (PR #2980 by @georgesittas)22ed4d0
- cleanup kv defs from brackets (PR #2987 by @tobymao)
v21.1.1 - 2024-02-14
✨ New Features
1d0b3d3
- add support for multi-part interval addition syntax (PR #2970 by @georgesittas)
🐛 Bug Fixes
1c67f03
- parser: enable parsing of values into Identifier for some dialects (PR #2962 by @georgesittas)d8b0d4f
- don't treat VALUES as a keyword in BigQuery, Redshift (PR #2965 by @georgesittas)- ↘️ fixes issue #2963 opened by @sean-rose
5b7fd10
- optimizer: more optimizations for qualifying wide tables (PR #2972 by @barakalon)6cb985a
- pass dialect in to_table call inside replace_tables (PR #2973 by @georgesittas)
v21.1.0 - 2024-02-12
✨ New Features
e71d489
- add array and tuple helpers (commit by @tobymao)876e075
- postgres: root operator closes #2940 (commit by @tobymao)e731276
- snowflake: add support for SHOW USERS (PR #2948 by @DanCardin)b9d4468
- tableau: identifier and quotes closes #2950 (commit by @tobymao)f8d9dbf
- sqlite: add support for IIF (PR #2951 by @georgesittas)b755551
- clickhouse: add basic support for system statement (PR #2953 by @GaliFFun)
🐛 Bug Fixes
844018b
- explode_outer to unnest closes #2941 (commit by @tobymao)159da45
- posexplode_outer to unnest (PR #2942 by @chelsea-lin)76d6634
- spark: CREATE TABLE ... PARTITIONED BY fixes (PR #2937 by @barakalon)d07ddf9
- optimizer: remove redundant casts (PR #2945 by @barakalon)b70a394
- if doesn't support different types (commit by @tobymao)6a988e0
- bigquery: fix annotation of timestamp(x) (PR #2946 by @georgesittas)78e6d0d
- optimizer: qualify_columns optimizations for wide tables (PR #2955 by @barakalon)c20cc70
- redshift: don't assume Table is an unnested Column if Join has a predicate (PR #2956 by @georgesittas)- ↘️ fixes issue #2952 opened by @vidit-wisdom
🔧 Chores
v21.0.2 - 2024-02-08
✨ New Features
1842c96
- clickhouse: add support for LIMIT BY clause (PR #2926 by @georgesittas)9241858
- add typing for explode closes #2927 (commit by @tobymao)85073d1
- transpile multi-arg DISTINCT expression (PR #2936 by @georgesittas)
🐛 Bug Fixes
b827626
- remove find method from Schema (PR #2934 by @georgesittas)08cd117
- postgres: fallback to parameter parser if heredoc is untokenizable (PR #2935 by @georgesittas)
🔧 Chores
e4b5edb
- bump sqlglotrs to 0.1.1 (commit by @georgesittas)
v21.0.1 - 2024-02-07
✨ New Features
3a20eac
- clickhouse: add support for JSONExtractString, clean up some helpers (PR #2925 by @georgesittas)- ↘️ addresses issue #2051 opened by @BTheunissen
v21.0.0 - 2024-02-07
💥 BREAKING CHANGES
-
due to
b4e8868
- improve transpilation of JSON paths across dialects (PR #2883 by @georgesittas):improve transpilation of JSON paths across dialects (#2883)
-
due to
aa388ea
- ignore nulls closes #2896 (PR #2898 by @tobymao):ignore nulls closes #2896 (#2898)
-
due to
617a8c0
- timestamp diff for mysql and databricks (commit by @tobymao):timestamp diff for mysql and databricks
-
due to
b00b393
- use raise instead of assert for assert_is (commit by @tobymao):use raise instead of assert for assert_is
-
due to
326aa31
- deprecate case where transforms can be plain strs (PR #2919 by @georgesittas):deprecate case where transforms can be plain strs (#2919)
✨ New Features
fb450f0
- add tsql right left auto casting closes #2899 (commit by @tobymao)617a8c0
- timestamp diff for mysql and databricks (commit by @tobymao)3fa92ca
- redshift: parse GETDATE (PR #2904 by @erickpeirson)d262139
- snowflake: implement parsing logic for SHOW TABLES (PR #2913 by @tekumara)838e780
- improve transpilation of CREATE TABLE LIKE statement (PR #2923 by @georgesittas)cbbad1f
- improve transpilation of JSON path wildcards (PR #2924 by @georgesittas)
🐛 Bug Fixes
aa388ea
- ignore nulls closes #2896 (PR #2898 by @tobymao)b00b393
- use raise instead of assert for assert_is (commit by @tobymao)ab97246
- array overlaps closes #2903 (commit by @tobymao)f3bdcb0
- duckdb: fix JSON pointer path parsing, reduce warning noise (PR #2911 by @georgesittas)072264f
- mysql: SHOW SCHEMAS (PR #2916 by @barakalon)15fdff2
- optimizer: don't remove NOT parenthesis (PR #2917 by @barakalon)d20d826
- have table exclude this if schema target (PR #2921 by @eakmanrq)
♻️ Refactors
b4e8868
- improve transpilation of JSON paths across dialects (PR #2883 by @georgesittas)- ↘️ addresses issue #2839 opened by @FlaviovLeal
9481f94
- several JSON path improvements (PR #2914 by @georgesittas)326aa31
- deprecate case where transforms can be plain strs (PR #2919 by @georgesittas)15582f4
- move JSON path generation logic in Generator (PR #2920 by @georgesittas)
🔧 Chores
afb4f9b
- switch to ruff (commit by @tobymao)f9fdf7b
- switch to ruff (PR #2912 by @tobymao)71c33fa
- pandas warning (commit by @tobymao)
v20.11.0 - 2024-01-29
💥 BREAKING CHANGES
-
due to
eb8b40a
- deprecate NULL, TRUE, FALSE constant expressions (PR #2884 by @georgesittas):deprecate NULL, TRUE, FALSE constant expressions (#2884)
✨ New Features
🐛 Bug Fixes
dc2d7d7
- tsql: len text transpilation closes #2885 (commit by @tobymao)ad50f47
- type imports (PR #2886 by @tobymao)e4fb7f6
- union should return union (commit by @tobymao)8f795ea
- don't expand star except/replace refs (commit by @tobymao)218121c
- alter table cluster by closes #2887 (commit by @tobymao)5cec283
- bigquery script if statement closes #2888 (commit by @tobymao)5fc7791
- all view column options without types closes #2891 (commit by @tobymao)102304e
- postgres: generate CurrentUser without parentheses closes #2893 (commit by @georgesittas)43902db
- error level ignore comments closes #2895 (commit by @tobymao)
🔧 Chores
eb8b40a
- deprecate NULL, TRUE, FALSE constant expressions (PR #2884 by @georgesittas)29cddd5
- change warning message (commit by @tobymao)9eac93e
- upgrade black (commit by @tobymao)4f3fac7
- cleanup command parsing and warnings (commit by @tobymao)
v20.10.0 - 2024-01-24
💥 BREAKING CHANGES
✨ New Features
89b439e
- postgres: support the INCLUDE clause in INDEX creation (PR #2857 by @georgesittas)90ffff8
- clickhouse: AggregateFunction data type (PR #2832 by @pkit)326d3ae
- improve transpilation of Spark's TO_UTC_TIMESTAMP (PR #2861 by @georgesittas)6d03587
- snowflake: SHOW SCHEMAS/OBJECTS (PR #2845 by @tekumara)d5a08b8
- optimizer: improve struct type annotation support for EQ-delimited kv pairs (PR #2863 by @fool1280)1f5fc39
- jsonpath parsing (PR #2867 by @tobymao)7fd9045
- add support for rename column (PR #2866 by @gableh)89b781b
- postgres: add support for the INHERITS property closes #2871 (commit by @georgesittas)970c202
- postgres: add support for the SET property (PR #2873 by @georgesittas)- ↘️ addresses issue #2872 opened by @edongashi
6845c37
- make the CREATE parser more lenient (PR #2875 by @georgesittas)
🐛 Bug Fixes
bf03a45
- snowflake: extend _parse_range to gracefully handle colon operator (PR #2856 by @georgesittas)ad14f4e
- qualify alter table table refs in optimizer qualify (PR #2862 by @z3z1ma)8599903
- optimizer: compute external columns for union sopes correctly (PR #2864 by @georgesittas)- ↘️ fixes issue #2860 opened by @derekpaulsen
3e065f9
- optimizer: don't copy projection in qualify_outputs when attaching alias (PR #2868 by @georgesittas)a642758
- avoid dag cycle with unnesting subqueries closes #2876 (commit by @tobymao)0648453
- set div type on multiplication closes #2878 (commit by @tobymao)b7fb800
- oracle: generate with time zone for timestamptz fixes #2879 (commit by @georgesittas)8770e3b
- optimizer: don't qualify CTEs for DDL/DML statements (PR #2880 by @georgesittas)
🔧 Chores
d55cfba
- move postgres tests (commit by @tobymao)0e43c58
- parser: warn when parsing (>1 tokens) SQL into exp.Command (PR #2874 by @georgesittas)
v20.9.0 - 2024-01-18
💥 BREAKING CHANGES
-
due to
1be93e4
- properly support all unix time scales (commit by @tobymao):properly support all unix time scales
✨ New Features
816976f
- extend submodule annotate_types to handle STRUCT (PR #2783 by @fool1280)7bce2f6
- oracle: add support for ORDER SIBLINGS BY clause (PR #2821 by @georgesittas)- ↘️ addresses issue #2819 opened by @Shweta-BI-Lead
ce8d254
- snowflake: parse RM/REMOVE as commands (PR #2825 by @georgesittas)- ↘️ addresses issue #2824 opened by @sfc-gh-jlambert
1902778
- add support for multi-unit intervals (PR #2822 by @georgesittas)- ↘️ addresses issue #2793 opened by @nikmalviya
a537898
- add support for DESCRIBE EXTENDED (PR #2828 by @georgesittas)6e50759
- clickhouse: support Date32 type (PR #2830 by @pkit)9560e8f
- add support for Heredocs in Databricks Python UDFs (PR #2801 by @viethungle-vt1401)52ed590
- transpile SELECT .. INTO to dialects that do not support it (PR #2820 by @giorgosnikolaou)ea536c4
- remove target alias in trino merge (PR #2852 by @eakmanrq)
🐛 Bug Fixes
6ddbefc
- snowflake: apply range parser after colon, if any (PR #2800 by @georgesittas)- ↘️ fixes issue #2798 opened by @mbarugelCA
0c4f44e
- oracle: regexp_replace replacement is optional closes #2803 (commit by @tobymao)5072d5a
- oracle: improve parsing of JSON_OBJECT[AGG] functions (PR #2807 by @georgesittas)- ↘️ fixes issue #2806 opened by @Shweta-BI-Lead
ea39f10
- optimizer: pushdown predicates more conservatively to avoid DAG cycles (PR #2808 by @georgesittas)- ↘️ fixes issue #2797 opened by @Konntroll
ea58003
- snowflake: insert overwrite into closes #2815 (commit by @tobymao)d5fa5be
- optimizer: handle table alias columns for (UN)PIVOTs (PR #2816 by @georgesittas)- ↘️ fixes issue #2791 opened by @billstark
24177f3
- unnest star expansion closes #2811 (PR #2818 by @tobymao)3dba6c1
- add parentheses to no_safe_divide args (PR #2826 by @j1ah0ng)ed68d6b
- clickhouse: add ipv4/6 data type parser (PR #2829 by @pkit)70b280f
- allow insert columns to have spaces (commit by @tobymao)57917b8
- oracle: TO_TIMESTAMP not parsed as StrToTime (PR #2833 by @pkit)9960e11
- optimizer: annotate struct value without alias correctly (PR #2812 by @fool1280)a6d396b
- doris: add transformation of aggregation function and last_day function (PR #2835 by @echo-hhj)8cc252b
- interval without unit alias closes #2838 (commit by @tobymao)607817f
- schema with period name closes #2842 (commit by @tobymao)1be93e4
- properly support all unix time scales (commit by @tobymao)a657fc0
- clickhouse,doris: fix the transformation of ArraySum (PR #2843 by @echo-hhj)c92888c
- parser: fix order of query modifier parsing for nested subqueries (PR #2851 by @georgesittas)7949a4f
- clickhouse: ensure arraySum generation is preserved, add tests (commit by @georgesittas)17a6ac6
- move comment in expr as alias next to the alias (PR #2853 by @georgesittas)
♻️ Refactors
9e5ae50
- use flag instead of regex (commit by @tobymao)5c13a1e
- simplify merge without target transformation (PR #2854 by @georgesittas)
🔧 Chores
5996a69
- presto: get rid of assert in ELEMENT_AT parser (commit by @georgesittas)f9a02ec
- fix table, column instantiation in schema normalization tests (PR #2817 by @georgesittas)
v20.8.0 - 2024-01-08
💥 BREAKING CHANGES
✨ New Features
2d822f3
- improve support for Doris' TO_DATE, Oracle's SYSDATE (PR #2775 by @georgesittas)7187215
- desc builder (commit by @tobymao)ba62639
- add support for CREATE FUNCTION (SQL) characteristics for MySQL and Databricks (PR #2777 by @viethungle-vt1401)- ↘️ addresses issue #1980 opened by @xinglin-zhao
963e2dc
- snowflake: add support for SHOW COLUMNS (PR #2778 by @andrew-sha)46c9733
- tsql: round func closes #2790 (commit by @tobymao)2dfb7e8
- optimizer: add support for the UNPIVOT operator (PR #2771 by @georgesittas)
🐛 Bug Fixes
68e1214
- column field typing (commit by @tobymao)3f31706
- tsql exec command #2772 (commit by @tobymao)f6cbadb
- snowflake: add a couple of special fn types (PR #2774 by @georgesittas)0634f73
- optimizer: replace star with outer column list (PR #2776 by @georgesittas)d31ae0d
- allow string aliases closes #2788 (commit by @tobymao)8f8f00e
- don't transform null ordering with positional orders closes #2779 (commit by @tobymao)f85ce3b
- tsql: gracefully handle complex formats in FORMAT (PR #2794 by @georgesittas)a2499f5
- tsql: generate correct TRIM syntax closes #2786 (commit by @georgesittas)59ecd2f
- clickhouse: allow transpilation of countIf, fix 2 arg variant parsing (PR #2795 by @georgesittas)3f7748b
- don't transpile nulls last in window specs (commit by @tobymao)
v20.7.1 - 2024-01-04
🐛 Bug Fixes
v20.6.0 - 2024-01-04
💥 BREAKING CHANGES
-
due to
4648c6a
- set sample clause keyword(s) as class constant to enable transpilation (PR #2750 by @georgesittas):set sample clause keyword(s) as class constant to enable transpilation (#2750)
-
due to
0b6bdc4
- improve transpilation of JSON value extraction (PR #2744 by @georgesittas):improve transpilation of JSON value extraction (#2744)
-
due to
862b305
- improve table sampling transpilation (PR #2761 by @georgesittas):improve table sampling transpilation (#2761)
✨ New Features
202f035
- clickhouse: add aggregate parsing (PR #2734 by @pkit)e772e26
- guess the correct dialect in case we get an unknown one (PR #2753 by @georgesittas)7a07862
- implement to_s method in Expression for verbose repr mode (PR #2756 by @georgesittas)4072184
- improve transpilation of TIME/TIMESTAMP_FROM_PARTS (PR #2755 by @georgesittas)3bd811d
- optimizer: allow star expansion to be turned off (PR #2762 by @georgesittas)c246285
- bigquery unix_date closes #2758 (commit by @tobymao)a2abbc7
- improve transpilation of LAST_DAY (PR #2766 by @georgesittas)7e7ac65
- snowflake: add support for OBJECT_CONSTRUCT_KEEP_NULL (PR #2769 by @georgesittas)
🐛 Bug Fixes
ed972f9
- alter table rename should not qualify with db in postgres (PR #2736 by @z3z1ma)1ebfb36
- else interval (commit by @tobymao)a43174f
- generateCROSS JOIN
instead of comma inexplode_to_unnest
transformation (PR #2739 by @cpcloud)e543c55
- interval is null (commit by @tobymao)fb3188f
- lineage closes #2742 (commit by @tobymao)b608b2d
- duckdb: percentile_cont closes #2741 (commit by @tobymao)0b6bdc4
- improve transpilation of JSON value extraction (PR #2744 by @georgesittas)33d6e5f
- bigquery: enable transpilation of single-argument TIME func (PR #2752 by @georgesittas)- ↘️ fixes issue #2749 opened by @jherrmannNetfonds
72f8cfa
- snowflake: parse two argument version of TIMESTAMP_FROM_PARTS (PR #2754 by @georgesittas)2a94f2b
- bigquery: fix parsing of COUNTIF (PR #2765 by @giovannipcarvalho)- ↘️ fixes issue #2764 opened by @giovannipcarvalho
862b305
- improve table sampling transpilation (PR #2761 by @georgesittas)
♻️ Refactors
4648c6a
- set sample clause keyword(s) as class constant to enable transpilation (PR #2750 by @georgesittas)
v20.5.0 - 2023-12-29
💥 BREAKING CHANGES
-
due to
87498c3
- redshift unnesting to column (commit by @tobymao):redshift unnesting to column
-
due to
a4e899a
- normalize units to all be upper case (PR #2714 by @tobymao):normalize units to all be upper case (#2714)
-
due to
92b4ec1
- Change Expression.repr format (PR #2723 by @barakalon):Change Expression.repr format (#2723)
✨ New Features
92b4ec1
- Change Expression.repr format (PR #2723 by @barakalon)
🐛 Bug Fixes
db9de94
- Grant 'contents: write' permissions to the 'deploy' job (commit by @izeigerman)1abd731
- allow final in clickhouse ctes (commit by @tobymao)87498c3
- redshift unnesting to column (commit by @tobymao)55735f5
- redshift: auto refresh closes #2713 (commit by @tobymao)b415037
- hive: parse values alias closes #2717 (commit by @tobymao)8979e51
- duckdb: udf no types closes #2718 (commit by @tobymao)2888452
- snowflake: timezone_from_parts nanos closes #2720 (commit by @tobymao)4fd6c90
- predicate pushdown closes #2721 (commit by @tobymao)0ae6f6c
- snowflake, duckdb: generate TimestampDiff correctly (PR #2728 by @georgesittas)a8582b1
- include empty lists in the hide_missing repr check (PR #2729 by @georgesittas)33df497
- bigquery: improve transpilation of structs / brackets (PR #2730 by @georgesittas)af50c79
- duckdb: named and positional parameters closes #2732 (commit by @tobymao)ea43cec
- duckdb: position and named paramaters closes #2732 (commit by @tobymao)c50b948
- bigquery: add FUNCTIONS entry for FORMAT_DATE to facilitate transpilation (PR #2733 by @georgesittas)
♻️ Refactors
🔧 Chores
c628af5
- Update installation steps in README to include sqlglotrs (PR #2725 by @izeigerman)
v20.2.0 - 2023-12-14
🐛 Bug Fixes
1a484b3
- presto: coerce DATEADD expression to BIGINT (PR #2648 by @barakalon)3cdb81a
- duckdb: transpile bigquery structs w/ aliases correctly (PR #2650 by @georgesittas)- ↘️ fixes issue #2649 opened by @nakalamvokis
49dc0da
- tokenizer: advance self._start by a character when we encounter CRLF (PR #2658 by @georgesittas)- ↘️ fixes issue #2656 opened by @charsmith
8ee5492
- duckdb: support the 6 arg. variant of make_timestamp (PR #2659 by @georgesittas)9cf71ff
- Get rid of the custom text encoding in the tokenizer (PR #2660 by @izeigerman)462c970
- make union parsing non-recursive, allowing to parse infinite large unions and lhs binding (PR #2662 by @tobymao)8860521
- optimizer: handle case where top-level query is a Subquery in scope (PR #2661 by @georgesittas)4617ac3
- executor: respect LIMIT in set operations (PR #2665 by @georgesittas)a8d4b05
- postgres exec as command closes #2666 (commit by @tobymao)bf6d3e4
- optimizer: eliminate eliminate_unions (PR #2663 by @barakalon)2ae0deb
- snowflake: refactor location paths (PR #2668 by @georgesittas)9177c6a
- snowflake: time travel syntax can be used in queries as well (PR #2674 by @georgesittas)- ↘️ fixes issue #2670 opened by @sfc-gh-jlambert
7188431
- ignore unnesting non subqueries closes #2676 (commit by @tobymao)9e7112b
- create .venv when publishing so that maturin doesn't crash (PR #2675 by @georgesittas)
♻️ Refactors
v20.1.0 - 2023-12-07
💥 BREAKING CHANGES
-
due to
96f9b0e
- make generation of CONCAT less verbose (PR #2639 by @georgesittas):make generation of CONCAT less verbose (#2639)
✨ New Features
7a505f0
- clickhouse: add support for arrayJoin (PR #2640 by @georgesittas)2062553
- add comments to replace table (commit by @tobymao)
🐛 Bug Fixes
4f07aaa
- from_utc double cast (commit by @tobymao)96f9b0e
- make generation of CONCAT less verbose (PR #2639 by @georgesittas)1a231f7
- avoid recursive set op calls (commit by @tobymao)
v20.0.0 - 2023-12-07
💥 BREAKING CHANGES
-
due to
be89da3
- introduce Dialect settings, make MySQL case-sensitive by default (PR #2627 by @georgesittas):introduce Dialect settings, make MySQL case-sensitive by default (#2627)
-
due to
4d68e39
- remove redundant todate closes #2636 (commit by @tobymao):remove redundant todate closes #2636
-
due to
1e387f6
- parse functions with positional args in exp.func (PR #2622 by @georgesittas):parse functions with positional args in exp.func (#2622)
-
due to
ee2e7f0
- snowflake column transform constraints closes #2634 (commit by @tobymao):snowflake column transform constraints closes #2634
-
due to
656d54c
- make lineage html more reusable (commit by @tobymao):make lineage html more reusable
✨ New Features
be89da3
- introduce Dialect settings, make MySQL case-sensitive by default (PR #2627 by @georgesittas)ee2e7f0
- snowflake column transform constraints closes #2634 (commit by @tobymao)
🐛 Bug Fixes
b0c5375
- tsql: add dw, hour to the DATEPART-only formats (PR #2632 by @georgesittas)- ↘️ fixes issue #2630 opened by @abadugu13
4d68e39
- remove redundant todate closes #2636 (commit by @tobymao)1e387f6
- parse functions with positional args in exp.func (PR #2622 by @georgesittas)78697b4
- optimizer: simplify Sub/Div more conservatively, they're not associative (PR #2635 by @georgesittas)
♻️ Refactors
🔧 Chores
v19.9.0 - 2023-12-05
💥 BREAKING CHANGES
-
due to
6e71c34
- remove safe versions and use a flag instead (PR #2629 by @tobymao):remove safe versions and use a flag instead (#2629)
🐛 Bug Fixes
4755293
- attach function comments to the AST (PR #2628 by @georgesittas)160f06d
- snowflake: allow rename/replace identifier (commit by @tobymao)
♻️ Refactors
v19.8.3 - 2023-12-04
✨ New Features
🐛 Bug Fixes
6351007
- tokenize CRLF sequence correctly (PR #2623 by @georgesittas)
🔧 Chores
f9a43a1
- don't patch loggers at method level to silence warnings (PR #2620 by @georgesittas)
v19.8.2 - 2023-12-01
🐛 Bug Fixes
5657a60
- tsql, teradata: Distinct goes before top (PR #2618 by @treysp)c0e751a
- duckdb: arrays are 1-indexed (PR #2619 by @georgesittas)
v19.8.1 - 2023-12-01
🐛 Bug Fixes
v19.8.0 - 2023-12-01
💥 BREAKING CHANGES
-
due to
b5f690b
- add timestamp functions to BQ and DuckDB closes #2611 (PR #2612 by @j1ah0ng):add timestamp functions to BQ and DuckDB closes #2611 (#2612)
-
due to
019e0e5
- qualify columns added in explode to unnest transformation (PR #2615 by @georgesittas):qualify columns added in explode to unnest transformation (#2615)
✨ New Features
5af7ac3
- helper method for dot parts (commit by @tobymao)da0a4b1
- postgres: add support for operators with schema path (PR #2610 by @georgesittas)- ↘️ addresses issue #2609 opened by @ninja96826
🐛 Bug Fixes
568ddd1
- treat parameters as primary expressions (PR #2605 by @georgesittas)- ↘️ fixes issue #2604 opened by @bruderooo
526d760
- revert 568ddd12, parse placeholder in sample instead (PR #2606 by @georgesittas)bb75218
- always expand sentinel line break in pretty mode (PR #2608 by @georgesittas)9106702
- properly normalize and parse schema for replace_tables and expand (commit by @tobymao)d47879f
- snowflake: unnest sql doesn't need subquery (commit by @tobymao)b5f690b
- add timestamp functions to BQ and DuckDB closes #2611 (PR #2612 by @j1ah0ng)5aa134d
- preserve alias quotes in explode_to_unnest (PR #2613 by @georgesittas)5509e31
- generate UnixToTime correctly (spark, bq, presto, snowflake, duckdb) (PR #2614 by @georgesittas)019e0e5
- qualify columns added in explode to unnest transformation (PR #2615 by @georgesittas)ad9fe11
- snowflake: snowflake array_contains closes #2616 (commit by @tobymao)
🔧 Chores
v19.7.0 - 2023-11-28
💥 BREAKING CHANGES
-
due to
8cd7d1c
- use more canonical cast instead of to_date (commit by @tobymao):use more canonical cast instead of to_date
-
due to
c413b7f
- expand positional args in order by as aliases (PR #2599 by @tobymao):expand positional args in order by as aliases (#2599)
-
due to
13817f1
- avoid unnecessary copying in normalization (PR #2602 by @tobymao):avoid unnecessary copying in normalization (#2602)
✨ New Features
739c3c7
- insert returning builder closes #2579 (commit by @tobymao)6e3c7c1
- tsql: default database .. closes #2594 (commit by @tobymao)
🐛 Bug Fixes
8cd7d1c
- use more canonical cast instead of to_date (commit by @tobymao)08d60b6
- tsql: add special chars in single var tokens (PR #2582 by @georgesittas)- ↘️ fixes issue #2581 opened by @Hal-H2Apps
bf29a9b
- handle ending spaces after keywords closes #2585 (commit by @tobymao)f53f656
- optimizer: respect EXCEPT when expanding star for PIVOTs (PR #2589 by @georgesittas)426075f
- duckdb: unqualify columns under Pivot (PR #2590 by @georgesittas)4774431
- tsql: generate DATEPART when the format is quarter (PR #2591 by @georgesittas)- ↘️ fixes issue #2586 opened by @abadugu13
dc783a8
- bigquery: generate FORMAT_DATE for TimeToStr (PR #2596 by @georgesittas)2ecfd34
- time format chunk misses from mapping, but its constituent parts are not (PR #2598 by @georgesittas)c413b7f
- expand positional args in order by as aliases (PR #2599 by @tobymao)c66e413
- oracle: to_char nlsparam closes #2601 (commit by @tobymao)
♻️ Refactors
v19.6.0 - 2023-11-20
🐛 Bug Fixes
7647227
- oracle: parse DROP CONSTRAINT into DROP instead of Command (PR #2573 by @HassanShafiq123)- ↘️ fixes issue #2572 opened by @HassanShafiq123
f5899a1
- bigquery: bigquery only allows literals in LIMIT (PR #2574 by @treysp)757c433
- treat := as PropertyEQ in base sqlglot classes (PR #2576 by @georgesittas)
🔧 Chores
v19.5.1 - 2023-11-16
🐛 Bug Fixes
v19.5.0 - 2023-11-16
💥 BREAKING CHANGES
-
due to
96d514c
- get rid of SetAgg to use ArrayUniqueAgg for consistency (PR #2566 by @georgesittas):get rid of SetAgg to use ArrayUniqueAgg for consistency (#2566)
✨ New Features
3766686
- executor: add support for array_unique_agg (PR #2564 by @wezham)53b3677
- executor: add support for null replacement value in ARRAY_JOIN (PR #2569 by @georgesittas)
🐛 Bug Fixes
ac79a59
- tokenizer should not reuse list in initializer (commit by @tobymao)2029896
- snowflake: Snowflake only supports literals in LIMIT (PR #2568 by @treysp)
♻️ Refactors
96d514c
- get rid of SetAgg to use ArrayUniqueAgg for consistency (PR #2566 by @georgesittas)c4da9fc
- tokenizer performance improvements (commit by @tobymao)
v19.4.0 - 2023-11-14
💥 BREAKING CHANGES
-
due to
5034d92
- transpile NULLS FIRST/LAST to dialects that dont support it (PR #2554 by @georgesittas):transpile NULLS FIRST/LAST to dialects that dont support it (#2554)
✨ New Features
5034d92
- transpile NULLS FIRST/LAST to dialects that dont support it (PR #2554 by @georgesittas)a6bdff9
- snowflake: improve TRY_CAST -> CAST transpilation (PR #2561 by @georgesittas)
🐛 Bug Fixes
9d345e5
- spark: string(n) -> varchar(n) closes #2552 (commit by @tobymao)e5e6d92
- optimizer: dont cast right side of IS (PR #2559 by @barakalon)18793b0
- snowflake: generate SHA1 for exp.SHA (PR #2557 by @georgesittas)8cfb39e
- clickhouse: scalar ctes second try (commit by @tobymao)0f9912f
- snowflake: only generate TRY_CAST if cast value is of text type (PR #2560 by @georgesittas)
v19.3.1 - 2023-11-10
🐛 Bug Fixes
1d557a7
- tsql: only call subquery method in CTAS if it's not one already (PR #2553 by @georgesittas)
v19.3.0 - 2023-11-10
✨ New Features
🐛 Bug Fixes
d92f2be
- don't bubble up CTEs for the CREATE DDL statement (PR #2550 by @georgesittas)39ef0e1
- tsql: preserve column projection quotes for newly added Alias nodes (PR #2551 by @georgesittas)
v19.2.0 - 2023-11-10
💥 BREAKING CHANGES
-
due to
9f42b6b
- disallow nested CTEs for Spark and Databricks (PR #2544 by @georgesittas):disallow nested CTEs for Spark and Databricks (#2544)
✨ New Features
91483b0
- add / move fixed-width integer tokens to base class (PR #2540 by @j1ah0ng)45334eb
- bigquery: array contains to exist unnest closes #2547 (commit by @tobymao)
🐛 Bug Fixes
9f42b6b
- disallow nested CTEs for Spark and Databricks (PR #2544 by @georgesittas)
v19.1.3 - 2023-11-09
✨ New Features
d9d64e0
- postgres: parse CREATE CONSTRAINT TRIGGER as Command (PR #2541 by @georgesittas)ea41ddc
- optimizer: simplify DATE_ADD on literals (PR #2537 by @barakalon)73746ed
- more robust boolean conversions for tsql (PR #2543 by @tobymao)
🐛 Bug Fixes
9922232
- presto -> spark to_json closes #2536 (commit by @tobymao)1c6d348
- parser: take TokenType.RAW_STRING into account in _parse_string (PR #2542 by @georgesittas)- ↘️ fixes issue #2539 opened by @braunreyes
b5a477f
- tsql top paren term parsing (commit by @tobymao)
v19.1.2 - 2023-11-09
✨ New Features
7de4922
- hive: add fine-grained parsing for REFRESH (PR #2531 by @georgesittas)- ↘️ addresses issue #2530 opened by @juliands-stripe
🐛 Bug Fixes
8abf1d7
- snowflake: avoid advancing beyond array limit when parsing staged files (PR #2529 by @georgesittas)- ↘️ fixes issue #2528 opened by @nsenno-dbr
151f14b
- transpile Snowflake structs correctly (PR #2534 by @georgesittas)- ↘️ fixes issue #2533 opened by @nsenno-dbr
5c750f3
- tsql: convert boolean columns into explicit conditions (PR #2535 by @georgesittas)
v19.1.1 - 2023-11-08
🐛 Bug Fixes
ff69304
- snowflake->spark sample transpilation closes #2526 (commit by @tobymao)a43132b
- Alter column set type statement for MySQL (PR #2527 by @izeigerman)
v19.1.0 - 2023-11-08
💥 BREAKING CHANGES
-
due to
c6db124
- transpile division (PR #2513 by @barakalon):transpile division (#2513)
-
due to
3469e75
- typed div and safe div semantics (PR #2516 by @barakalon):typed div and safe div semantics (#2516)
✨ New Features
f95947f
- bigquery: add support for FOR .. IN statement (PR #2507 by @georgesittas)- ↘️ addresses issue #2506 opened by @scholtzan
01d446b
- optimizer: annotate type of ABS (PR #2524 by @georgesittas)
🐛 Bug Fixes
c7302cf
- struct conversion for non correlated queries (commit by @tobymao)1aa727c
- subquery column lineage closes #2510 (commit by @tobymao)c6db124
- transpile division (PR #2513 by @barakalon)3787389
- lineage with subquery and cte closes #2515 (commit by @tobymao)3469e75
- typed div and safe div semantics (PR #2516 by @barakalon)52066ea
- tsql: parse DROP CONSTRAINT into Drop instead of Command (PR #2521 by @georgesittas)- ↘️ fixes issue #2519 opened by @HassanShafiq123
190f028
- oracle: parse TO_CHAR using format_time_lambda (PR #2523 by @georgesittas)e2e11ae
- optimizer: more support for date literals in simplify (PR #2525 by @barakalon)
🔧 Chores
2065210
- expressions type (commit by @tobymao)7ff5f25
- use tuples instead of sets for inline collection instantiations (PR #2520 by @georgesittas)
v19.0.3 - 2023-11-02
🐛 Bug Fixes
🔧 Chores
c51d9ae
- fix type hint for normalize_identifiers (PR #2505 by @GeorgeSittas)
v19.0.2 - 2023-11-01
✨ New Features
3d60f0e
- optimizer: more date function coercion (PR #2493 by @barakalon)01c1abb
- tsql: add period constraint, system versioning property, generate as row (PR #2484 by @Rik-de-Kort)b18235b
- use parse_identifiers in qualify tables (PR #2502 by @tobymao)
🐛 Bug Fixes
471591c
- teradata: supportTRYCAST
(PR #2496 by @hsheth2)5cdbdf6
- teradata: support**
for exponent (PR #2495 by @hsheth2)70227fc
- postgres: allow opclass types to be namespaced (PR #2499 by @GeorgeSittas)b434717
- tsql: improve support for SYSTEM_VERSIONING (PR #2501 by @GeorgeSittas)8691e1a
- oracle: alter table add multiple columns closes #2500 (commit by @tobymao)
🔧 Chores
v19.0.1 - 2023-10-31
✨ New Features
12596fd
- support teradata as format no type closes #2485 (PR #2486 by @tobymao)f25b61c
- redshift: add support for DATE_DIFF (PR #2491 by @GeorgeSittas)
🐛 Bug Fixes
83ecc5a
- get rid of UNKNOWN type mapping in base Generator class (PR #2487 by @GeorgeSittas)22990ef
- qualify catalog only if db is present (PR #2489 by @eakmanrq)8e20328
- schema: use to_identifier as fallback when normalizing names (PR #2492 by @GeorgeSittas)f6c34b0
- teradata: add UPD and DEL abbreviations (PR #2494 by @hsheth2)
v19.0.0 - 2023-10-30
💥 BREAKING CHANGES
-
due to
7a6da28
- generator now always copies, making transforms much simpler (PR #2477 by @tobymao):generator now always copies, making transforms much simpler (#2477)
✨ New Features
542ea6c
- mysql: convert full outer join to union with left/right outer joins (PR #2461 by @GeorgeSittas)b3990bc
- postgres: support WITH ORDINALITY in table functions (PR #2465 by @GeorgeSittas)c3852db
- postgres: add support for the PARTITION OF property in CREATE (PR #2476 by @GeorgeSittas)- ↘️ addresses issue #2469 opened by @judahrand
🐛 Bug Fixes
4f9cb22
- facilitate transpilation of Redshift's LISTAGG (PR #2460 by @GeorgeSittas)81ab80a
- mysql: str_to_date for datetime (PR #2473 by @barakalon)a1252d8
- teradata: add eq, minus abbreviations fixes #2474 (commit by @GeorgeSittas)e6f31d6
- snowflake: don't add time format in TO_TIMESTAMP if not supplied (PR #2475 by @GeorgeSittas)2307910
- optimizer: make normalize_identifiers identifier conversion more lenient (PR #2478 by @GeorgeSittas)ed5c559
- snowflake: avoid crash on OBJECT_CONSTRUCT without arguments (PR #2482 by @GeorgeSittas)- ↘️ fixes issue #2479 opened by @wedotech-ashley
df0a698
- tsql: add 'dddd' to '%A' time mapping (PR #2483 by @GeorgeSittas)- ↘️ fixes issue #2481 opened by @SudarshanVS
♻️ Refactors
v18.17.0 - 2023-10-25
💥 BREAKING CHANGES
-
due to
c8e87b6
- unnabreviate units, e.g. ms to millisecond (PR #2451 by @GeorgeSittas):unnabreviate units, e.g. ms to millisecond (#2451)
✨ New Features
7ded253
- add support for {fn ...} function syntax (PR #2447 by @GeorgeSittas)ee18756
- snowflake: register APPROX_TOP_K as AggFunc (PR #2450 by @GeorgeSittas)- ↘️ addresses issue #2449 opened by @yogevyuval
57b744a
- optimizer: infer bracket type (PR #2441 by @GeorgeSittas)64b18e6
- add ArgMax, ArgMin expressions, fix their transpilation (PR #2454 by @GeorgeSittas)959fa92
- lineage: terminal table node for select star (PR #2456 by @edpaget)
🐛 Bug Fixes
e11ecaf
- clickhouse: treat CURRENT_DATE as a function (PR #2439 by @GeorgeSittas)- ↘️ fixes issue #2438 opened by @samuelcolvin
fdb1668
- improve bracket parsing error, set Slice type to Unknown (PR #2440 by @GeorgeSittas)- ↘️ fixes issue #2437 opened by @samuelcolvin
546eb54
- redshift: don't rewrite JSON_PARSE to PARSE_JSON (commit by @purcell)00e3515
- parser: treat 'use' as a valid identifier token (PR #2446 by @GeorgeSittas)c8e87b6
- unnabreviate units, e.g. ms to millisecond (PR #2451 by @GeorgeSittas)- ↘️ fixes issue #2448 opened by @samuelcolvin
11bfc75
- lineage: handle unions with SELECT STAR (PR #2452 by @edpaget)b856477
- add table alias in unnest with columns only (PR #2457 by @GeorgeSittas)
🔧 Chores
927f5aa
- add docstrings in rest of transforms (commit by @GeorgeSittas)
v18.16.1 - 2023-10-21
✨ New Features
🐛 Bug Fixes
87efe41
- duckdb: regexp_replace modifiers closes #2436 (commit by @tobymao)be38964
- infinite loop due to uppercase expansion (commit by @tobymao)
v18.16.0 - 2023-10-21
🐛 Bug Fixes
5b388bc
- attach comments to Union expressions (PR #2432 by @GeorgeSittas)- ↘️ fixes issue #2430 opened by @SudarshanVS
e6721d1
- subquery lineage closes #2431 (commit by @tobymao)b4f76eb
- clickhouse: neq bug closes #2435 (commit by @tobymao)
v18.15.1 - 2023-10-19
✨ New Features
469226b
- snowflake: support for ALTER TABLE SWAP WITH (PR #2420 by @teraamp)13a5df2
- lineage: lineage from UDTFs that use columns (PR #2424 by @edpaget)8d7e4e9
- show version in cli (commit by @tobymao)88ddaa7
- make data type build more flexible (commit by @tobymao)
🐛 Bug Fixes
e1186a5
- redshift: generate the IDENTITY constraint correctly (PR #2418 by @GeorgeSittas)a00b5b5
- smarter detection of timestamp() fallback to cast (commit by @tobymao)c5028d4
- teradata: teradata only supports top closes #2419 (commit by @tobymao)3173683
- snowflake: map DAYOF[MONTH|YEAR] back to itself fixes #2422 (commit by @GeorgeSittas)e612089
- ts_or_ds reparse closes #2428 (commit by @tobymao)
🔧 Chores
fda3576
- fix type hint of swaptable_sql (commit by @GeorgeSittas)
v18.15.0 - 2023-10-17
🐛 Bug Fixes
v18.14.0 - 2023-10-17
🐛 Bug Fixes
4163d5f
- makeRegexpILike
a subclass ofBinary
as well asFunc
(PR #2404 by @samuelcolvin)de0cd98
- clickhouse any -> has closes #2408 (commit by @tobymao)463b6d6
- redshift: add a missing retreat in the group by parser (PR #2412 by @GeorgeSittas)- ↘️ fixes issue #2411 opened by @mrmammadov
f8109be
- bigquery: revert commit 09e2eeb, only reduce NULL for BQ at sqlgen time (PR #2414 by @GeorgeSittas)f970f7c
- clickhouse: map RegexpILike to match (PR #2407 by @GeorgeSittas)- ↘️ fixes issue #2406 opened by @samuelcolvin
1c8883f
- clickhouse any transpilation closes #2408 (commit by @tobymao)586de82
- casting (commit by @tobymao)d9958f9
- presto/trino limit can only contain literals (commit by @tobymao)7744648
- trino view column and partition column (PR #2416 by @eakmanrq)
v18.13.0 - 2023-10-13
✨ New Features
e2e960a
- duckdb: add parsing support for timestamp types with unit suffixes (PR #2400 by @cpcloud)f024ac5
- redshift approximate count distinct (commit by @tobymao)
🐛 Bug Fixes
d7021d1
- optimizer: don't propagate equality constraints from IF/CASE outwards (PR #2396 by @GeorgeSittas)ed45fad
- teradata: FOR in LOCKING ROW FOR ACCESS is optional (PR #2402 by @GeorgeSittas)
♻️ Refactors
🔧 Chores
85a16b1
- remove generic schema type (PR #2399 by @GeorgeSittas)
v18.12.0 - 2023-10-10
💥 BREAKING CHANGES
-
due to
28308da
- support spark trycast, treat databricks as strict_cast closes #2389 (commit by @tobymao):support spark trycast, treat databricks as strict_cast closes #2389
-
due to
c7c3869
- add explode outer and change hiearchy are explosions closes #2393 (commit by @tobymao):add explode outer and change hiearchy are explosions closes #2393
✨ New Features
f4f8366
- schema: add method to check if column exists (PR #2381 by @GeorgeSittas)da2c6f1
- optimizer: simplify CONCAT_WS (PR #2383 by @GeorgeSittas)cca58dd
- optimizer: propagate constants (PR #2386 by @GeorgeSittas)28308da
- support spark trycast, treat databricks as strict_cast closes #2389 (commit by @tobymao)c7c3869
- add explode outer and change hiearchy are explosions closes #2393 (commit by @tobymao)
🐛 Bug Fixes
0fb1652
- replace executor None values with np.NaN to silence Pandas>2.1 warnings (PR #2384 by @GeorgeSittas)a849794
- mysql: move parsing logic for JSON_TABLE to base parser (PR #2387 by @GeorgeSittas)e08c1c0
- correctly handle agg subexpressions with no selections (PR #2390 by @ginter)8afa7a1
- schema: don't specialize type variable in MappingSchema (PR #2394 by @GeorgeSittas)
v18.11.6 - 2023-10-06
🐛 Bug Fixes
v18.11.5 - 2023-10-06
✨ New Features
🐛 Bug Fixes
v18.11.4 - 2023-10-05
✨ New Features
3266e51
- bigquery: improve support for CREATE MODEL DDL statement (PR #2380 by @GeorgeSittas)
🐛 Bug Fixes
dd8334d
- parser: don't consume identifier in unnamed constraint parser (PR #2377 by @GeorgeSittas)
v18.11.3 - 2023-10-04
✨ New Features
347ac51
- redshift: add support for Redshift's super array index iteration (PR #2373 by @GeorgeSittas)160d841
- bigquery: add support for ML.PREDICT function (PR #2375 by @GeorgeSittas)
🐛 Bug Fixes
6a65a09
- postgres: translate variance_pop to var_pop and variance to var_samp (PR #2371 by @cpcloud)
v18.11.2 - 2023-10-03
🐛 Bug Fixes
513fe2c
- parser: support END keyword when parsing create procedure DDLs (PR #2369 by @GeorgeSittas)1ba5f98
- distinct from parsing (commit by @tobymao)
v18.11.1 - 2023-10-03
🐛 Bug Fixes
f777155
- unescape escape sequences on read, re-escape them on generation (PR #2367 by @GeorgeSittas)0d1e674
- optimizer: handle edge case in DATE_TRUNC simplification (PR #2368 by @GeorgeSittas)
v18.11.0 - 2023-10-03
✨ New Features
e4da5d7
- clickhouse: add support for SAMPLE BY property in CREATE DDL (PR #2355 by @GeorgeSittas)8dc2a9c
- add the ability to set meta in sql comments (PR #2351 by @tobymao)d2047ec
- snowflake: add support for staged file file_format clause (PR #2359 by @GeorgeSittas)55e2d15
- switch identifier normalization off using comments (PR #2361 by @GeorgeSittas)
🐛 Bug Fixes
1df9333
- parser: exclude set operators from unnest offset alias token set (PR #2349 by @GeorgeSittas)- ↘️ fixes issue #2348 opened by @sean-rose
a794bfe
- hive: don't generate WithDataProperty (PR #2350 by @GeorgeSittas)5fb7174
- fix perf issues with nested left joins (commit by @tobymao)ac4e572
- handle strings in Table.parts, use dialect for parsing in table_name (PR #2353 by @GeorgeSittas)e8273e2
- hive: don't generate BYTE when transpiling Oracle's VARCHAR(5 BYTE) (PR #2358 by @GeorgeSittas)- ↘️ fixes issue #2356 opened by @CaryMoore-DB
2bc30a5
- mysql: DATE_ADD for datetimes (PR #2360 by @barakalon)a270c15
- redshift: treat single quote as an escape character (PR #2365 by @GeorgeSittas)0e93890
- optimizer: don't merge CTEs with EXPLODE projections into outer scopes (PR #2366 by @GeorgeSittas)
v18.10.1 - 2023-09-29
✨ New Features
🐛 Bug Fixes
17e39d0
- snowflake: fix staged table path parsing (PR #2346 by @GeorgeSittas)
v18.10.0 - 2023-09-29
✨ New Features
090724d
- addeliminate_qualify
to clickhouse, mysql, oracle, postgres, and tsql dialects (PR #2339 by @cpcloud)e2c8366
- executor: add support for TRIM, fix TRIM CSV-style parsing order (PR #2342 by @GeorgeSittas)- ↘️ addresses issue #2341 opened by @skyserenaa
🐛 Bug Fixes
fcc2d8f
- mysql,optimizer: TO_DAYS transpilation and more date casting (PR #2334 by @barakalon)
v18.9.0 - 2023-09-28
💥 BREAKING CHANGES
-
due to
f0e5eb6
- revert escape sequence changes introduced in #2230 (PR #2336 by @GeorgeSittas):revert escape sequence changes introduced in #2230 (#2336)
✨ New Features
f80501c
- presto: group_concat -> array_join closes #2331 (commit by @tobymao)8af4054
- snowflake: add support for staged file table syntax (PR #2333 by @GeorgeSittas)- ↘️ addresses issue #2330 opened by @ShayYaari
bcd342a
- mysql: add unsigned decimal type (PR #2340 by @Nitrino)
🐛 Bug Fixes
58c7849
- clickhouse: don't generate parentheses, match R_PAREN conditionally (PR #2332 by @GeorgeSittas)f0e5eb6
- revert escape sequence changes introduced in #2230 (PR #2336 by @GeorgeSittas)5ea5438
- snowflake: allow window to be used as a table alias (PR #2337 by @GeorgeSittas)- ↘️ fixes issue #2335 opened by @arunbalasubramani
79c208a
- snowflake, bigquery: parse COLLATE as a func instead of a binary operator (PR #2343 by @GeorgeSittas)
v18.8.0 - 2023-09-26
💥 BREAKING CHANGES
-
due to
66d7385
- store expressions in Offset.expression when using builder fixes #2312 (commit by @GeorgeSittas):store expressions in Offset.expression when using builder fixes #2312
-
due to
cdcc564
- make ObjectIdentifier, IntervalSpan and PseudoType DataTypes (PR #2315 by @GeorgeSittas):make ObjectIdentifier, IntervalSpan and PseudoType DataTypes (#2315)
-
due to
ebdfc59
- add support for heredoc strings (Postgres, ClickHouse) (PR #2328 by @GeorgeSittas):add support for heredoc strings (Postgres, ClickHouse) (#2328)
✨ New Features
c50e74c
- support for percentiles in duckdb, snowflake (PR #2302 by @longxiaofei)8ed0a81
- bigquery: add support for CREATE TABLE .. COPY DDL syntax (PR #2305 by @GeorgeSittas)- ↘️ addresses issue #2304 opened by @razvan-am
3cb3131
- clickhouse: add isnan and startswith renamings (PR #2310 by @cpcloud)f473e88
- postgres: add support for operator classes in CREATE INDEX DDL (PR #2317 by @GeorgeSittas)64a7b93
- optimizer: canonicalize date arithmetic funcs (PR #2320 by @barakalon)f3d928b
- optimizer: ensure boolean predicates on CASE statement (PR #2321 by @barakalon)ebdfc59
- add support for heredoc strings (Postgres, ClickHouse) (PR #2328 by @GeorgeSittas)
🐛 Bug Fixes
c51ecb1
- clickhouse: fix incorrect array param generation for clickhouse quantiles (PR #2311 by @cpcloud)66d7385
- store expressions in Offset.expression when using builder fixes #2312 (commit by @GeorgeSittas)cdcc564
- make ObjectIdentifier, IntervalSpan and PseudoType DataTypes (PR #2315 by @GeorgeSittas)aa2c4c3
- optimizer: a couple simplify_date_trunc enhancements (PR #2319 by @barakalon)180cd8e
- clickhouse: support SAMPLE clause fixes #2323 (commit by @GeorgeSittas)8242a2c
- mysql: transpile CHAR (PR #2329 by @barakalon)
🔧 Chores
v18.7.0 - 2023-09-22
✨ New Features
f1b6546
- add iter for expressions (commit by @tobymao)13877fe
- optimizer: replace date funcs (PR #2299 by @barakalon)
🐛 Bug Fixes
fc793c4
- postgres: generate ARRAY[] correctly (PR #2287 by @GeorgeSittas)- ↘️ fixes issue #1457 opened by @cmvarmour
06e0869
- unnest complex closes #2284 (commit by @tobymao)5aa7e2a
- bigquery: preserve log argument order when parsing and generation dialects match (PR #2293 by @cpcloud)44f732d
- parser: make kwarg parsing more robust (PR #2295 by @GeorgeSittas)8fe91e2
- redshift: generate correct SQL VALUES clause alias (PR #2298 by @GeorgeSittas)6429042
- bigquery: anticipate OPTION property after JS UDF definition (PR #2297 by @GeorgeSittas)29550c1
- safedpipe is always varchar (commit by @tobymao)
v18.6.0 - 2023-09-21
💥 BREAKING CHANGES
-
due to
8100311
- explode to unnest with multiple explosions (PR #2235 by @tobymao):explode to unnest with multiple explosions (#2235)
-
due to
ff19f4c
- don't parse SEMI, ANTI as table aliases, fix join side issue (PR #2247 by @GeorgeSittas):don't parse SEMI, ANTI as table aliases, fix join side issue (#2247)
-
due to
8ebbfe2
- store expressions in Limit.expression when using builder (PR #2249 by @GeorgeSittas):store expressions in Limit.expression when using builder (#2249)
-
due to
4badd91
- preserve ascending order of sorting when present (PR #2256 by @GeorgeSittas):preserve ascending order of sorting when present (#2256)
-
due to
e90312a
- improve transpilation of T-SQL's SET assignment command (PR #2275 by @GeorgeSittas):improve transpilation of T-SQL's SET assignment command (#2275)
✨ New Features
f63a06b
- eliminate semi/anti joins transformation (PR #2242 by @GeorgeSittas)d1cfa01
- optimizer: simplify date_trunc (PR #2271 by @barakalon)e90312a
- improve transpilation of T-SQL's SET assignment command (PR #2275 by @GeorgeSittas)69a2c67
- optimizer: simplify_equality (PR #2281 by @barakalon)ef062d1
- kill (PR #2285 by @barakalon)
🐛 Bug Fixes
66aadfc
- unescape escape sequences (PR #2230 by @GeorgeSittas)cd30eb7
- tsql: include catalog and db in create if not exists (PR #2231 by @treysp)c2238a5
- snowflake: transpile SELECT UNNEST(x) to TABLE(FLATTEN(..)) (PR #2232 by @GeorgeSittas)8509d52
- don't unnest subqueries when the parent select doesn't have a from since the subquery can't be joined (PR #2233 by @ginter)8100311
- explode to unnest with multiple explosions (PR #2235 by @tobymao)1992ab9
- transpile bool xor closes #2238 (commit by @tobymao)12de208
- snowflake: use IF instead of FILTER(WHERE cond) for conditional aggregation (PR #2241 by @GeorgeSittas)94d56be
- bigquery: regex with raw strings compile closes #2236 (commit by @tobymao)ff19f4c
- don't parse SEMI, ANTI as table aliases, fix join side issue (PR #2247 by @GeorgeSittas)8ebbfe2
- store expressions in Limit.expression when using builder (PR #2249 by @GeorgeSittas)829415c
- snowflake: rename GenerateSeries, include offset in unnest_sql (PR #2243 by @GeorgeSittas)ba013d6
- presto: treat struct with key-value definition as unsupported (PR #2245 by @GeorgeSittas)ab7effe
- parser: check for column operators after having parsed brackets (PR #2251 by @GeorgeSittas)3b654f2
- dataframe: ensure Column.alias preserves quotes (PR #2254 by @GeorgeSittas)f76ebb2
- tsql: generate SELECT INTO from CTAS (PR #2237 by @treysp)4badd91
- preserve ascending order of sorting when present (PR #2256 by @GeorgeSittas)86538ba
- bigquery: reduce the scope where UNKNOWN is treated as NULL (PR #2260 by @GeorgeSittas)12c83b6
- hive: get rid of any ASC in a ClusteredColumnConstraint (PR #2261 by @GeorgeSittas)35927a2
- tsql: correctly escape single quotes in EXEC (PR #2263 by @treysp)61f85a4
- postgres: parse RESTRICT constraint action (PR #2267 by @Nitrino)d5b229a
- snowflake: implement correct semantics of EXCEPT, RENAME (PR #2268 by @GeorgeSittas)- ↘️ fixes issue #2265 opened by @diogo-fernan
ccff88c
- postgres: add support for WHERE clause in CREATE INDEX (PR #2269 by @GeorgeSittas)ed8714f
- bigquery: allow overlaps to be used as an identifier (PR #2273 by @GeorgeSittas)- ↘️ fixes issue #2272 opened by @turntable-justin
76b7077
- ensure Expression is not an iterable to avoid inf. loops (PR #2280 by @GeorgeSittas)6475b84
- remove copy (PR #2282 by @barakalon)310d691
- improve performance of VALUES -> UNION ALL transpilation (PR #2283 by @GeorgeSittas)
🔧 Chores
v18.5.1 - 2023-09-15
✨ New Features
0378325
- improve support for percentiles in duckdb, postgres (PR #2219 by @GeorgeSittas)b59ef0f
- add support for scoped user-defined types (PR #2226 by @GeorgeSittas)- ↘️ addresses issue #2217 opened by @sashindeitidata
🐛 Bug Fixes
b3c97de
- mysql: timestamp add/sub closes #2214 (commit by @tobymao)4634220
- use parse primary in the sample parser to handle nums like .25 (commit by @GeorgeSittas)fd1ed25
- oracle: add support for locking reads fixes #2216 (commit by @GeorgeSittas)5ec8e1f
- normalize before qualifying tables (commit by @tobymao)da398f4
- parse and generate JSON correctly (PR #2220 by @GeorgeSittas)6bc8e13
- mysql: transpile ISNULL to IS NULL (PR #2221 by @barakalon)2fa4043
- mysql: transpile MONTHNAME (PR #2222 by @barakalon)857e380
- mysql: TIMESTAMP -> CAST (PR #2223 by @barakalon)
v18.5.0 - 2023-09-13
✨ New Features
72e939e
- parser: allow functions in FETCH clause (PR #2207 by @GeorgeSittas)- ↘️ addresses issue #2204 opened by @sashindeitidata
d944e17
- mysql: add support for [UN]LOCK TABLES as a Command (PR #2212 by @GeorgeSittas)
🐛 Bug Fixes
416b341
- use SUPPORTS_USER_DEFINED_TYPES to set udt in schema _to_data_type (PR #2203 by @GeorgeSittas)14c1b3b
- mysql: add support for index type in the UNIQUE KEY constraint (PR #2211 by @GeorgeSittas)5c7210a
- oracle: allow CONNECT BY / START WITH to be interchanged (PR #2208 by @GeorgeSittas)- ↘️ fixes issue #2205 opened by @sashindeitidata
v18.4.1 - 2023-09-12
💥 BREAKING CHANGES
-
due to
f85b535
- parse schema UDTs into DataTypes instead of identifiers (PR #2201 by @GeorgeSittas):parse schema UDTs into DataTypes instead of identifiers (#2201)
🐛 Bug Fixes
a228656
- tokenizer: treat quote as escape only if its followed by itself (PR #2199 by @GeorgeSittas)fa09688
- mysql: for update regression due to list comprehensions closes #2200 (commit by @tobymao)f85b535
- parse schema UDTs into DataTypes instead of identifiers (PR #2201 by @GeorgeSittas)
v18.4.0 - 2023-09-12
✨ New Features
5e2042a
- add TINYTEXT and TINYBLOB types (PR #2182 by @Nitrino)0c536bd
- oracle: add support for JSON_ARRAYAGG (PR #2189 by @GeorgeSittas)f4e3e09
- oracle: add support for JSON_TABLE (PR #2191 by @GeorgeSittas)- ↘️ addresses issue #2187 opened by @sashindeitidata
11d95ff
- add redshift concat_ws support (PR #2194 by @eakmanrq)
🐛 Bug Fixes
c7433bf
- join using with star (commit by @tobymao)451439c
- clickhouse: add missing type mappings for string types (PR #2183 by @GeorgeSittas)5ba5165
- duckdb: rename VariancePop -> var_pop in DuckDB (PR #2184 by @gforsyth)d192515
- optimizer: merge subqueries should use alias from outer scope (PR #2185 by @barakalon)12db377
- mysql: multi table update closes #2193 (commit by @tobymao)b9f5ede
- oracle: make parentheses in JSON_TABLE's COLUMNS clause optional (commit by @GeorgeSittas)8c51275
- mysql: parse column prefix in index / pk defn. correctly (PR #2197 by @GeorgeSittas)
♻️ Refactors
a81dd14
- override Bracket.output_name only when there's one bracket expression (commit by @GeorgeSittas)7ae5a94
- fix mutation bug in Column.to_dot, simplify Dot.build (PR #2196 by @GeorgeSittas)
🔧 Chores
981ad23
- duckdb: fix var_pop tests (commit by @GeorgeSittas)
v18.3.0 - 2023-09-07
💥 BREAKING CHANGES
-
due to
3fc2eb5
- improve support for interval spans like HOUR TO SECOND (PR #2167 by @GeorgeSittas):improve support for interval spans like HOUR TO SECOND (#2167)
-
due to
93b7ba2
- MySQL Timestamp Data Types (PR #2173 by @eakmanrq):MySQL Timestamp Data Types (#2173)
✨ New Features
5dd0fda
- spark: add support for raw strings (PR #2165 by @GeorgeSittas)d9f8910
- teradata: add support for the SAMPLE clause (PR #2169 by @GeorgeSittas)63ac621
- mysql: improve support for unsigned int types (PR #2172 by @GeorgeSittas)cd301cc
- postgres: add support for ALTER TABLE ONLY ... (PR #2179 by @GeorgeSittas)
🐛 Bug Fixes
3fc2eb5
- improve support for interval spans like HOUR TO SECOND (PR #2167 by @GeorgeSittas)93b7ba2
- MySQL Timestamp Data Types (PR #2173 by @eakmanrq)6d761f9
- filter_sql use strip closes #2180 (commit by @tobymao)
🔧 Chores
5fbe303
- add minimum python version required to setup.py (PR #2170 by @GeorgeSittas)- ↘️ addresses issue #2168 opened by @jlardieri5
v18.2.0 - 2023-09-05
✨ New Features
5df9b5f
- snowflake: desc table type closes #2145 (commit by @tobymao)a48051c
- teradata: improve support for DATABASE statement (PR #2160 by @GeorgeSittas)
🐛 Bug Fixes
d4d7a5c
- bigquery: allow numbers in table name (commit by @tobymao)7b589ae
- snowflake: better support for LISTAGG (PR #2147 by @GeorgeSittas)- ↘️ fixes issue #2146 opened by @alonc-sygnia
9c4a9cd
- hive: parse <date_part> as an interval instead of an alias (PR #2151 by @GeorgeSittas)- ↘️ fixes issue #2123 opened by @liujiwen-up
585d0bf
- tokenizer with ambious keywords (commit by @tobymao)f0bddde
- oracle: remove COALESCE -> NVL mapping fixes #2158 (commit by @GeorgeSittas)dcacef1
- parser: use _parse_bitwise for values of JSON_OBJECT (commit by @GeorgeSittas)db1303c
- parser: solve interval parsing bug (PR #2157 by @GeorgeSittas)- ↘️ fixes issue #2154 opened by @liujiwen-up
36ac469
- remove inconsistent quotes from eliminate distinct on transform (commit by @tobymao)
🔧 Chores
f934575
- improve type hints for dialects (PR #2152 by @GeorgeSittas)
v18.1.0 - 2023-09-01
💥 BREAKING CHANGES
-
due to
f3fee3a
- iceberg version/timestamp snapshots, bigquery, refactor tsql closes #2128 (commit by @tobymao):iceberg version/timestamp snapshots, bigquery, refactor tsql closes #2128
✨ New Features
f3fee3a
- iceberg version/timestamp snapshots, bigquery, refactor tsql closes #2128 (commit by @tobymao)30e3e2f
- add support for transpiling some datetime functions from bq to databricks (PR #2142 by @fireis)
🐛 Bug Fixes
632ad59
- mysql: binary x parsing closes #2130 (commit by @tobymao)999a950
- optimizer: dont simplify parens with multiple predicates closes #2131 (commit by @tobymao)bf7af1f
- parser: support order in update statement (PR #2134 by @brosoul)7a27931
- bigquery: parse JSON_OBJECT properly for key-value pairs (PR #2136 by @middagj)2ad559d
- mysql: generate JSON_OBJECT properly (PR #2139 by @middagj)bd96d0c
- tsql: support adding multiple columns with ALTER TABLE (PR #2140 by @treysp)32d8e54
- row number in transform requires order by (commit by @tobymao)39bce6d
- mysql: allow unquoted identifiers that start with a number (PR #2141 by @middagj)
v18.0.1 - 2023-08-30
✨ New Features
🐛 Bug Fixes
be56bc0
- optimizer join needs on condition (commit by @tobymao)cc0a6e2
- tsql: generate IDENTITY instead of AUTO_INCREMENT (PR #2127 by @GeorgeSittas)d1ccb03
- bigquery: unnest with structs closes #2125 (commit by @tobymao)6a0110a
- create the struct key properly in struct_extract_sql (PR #2129 by @GeorgeSittas)
v18.0.0 - 2023-08-29
🐛 Bug Fixes
c9d679b
- parse INTERVAL ... YEAR (PR #2122 by @barakalon)d5bae81
- table with empty identifiers (commit by @tobymao)
v17.16.2 - 2023-08-28
✨ New Features
5b14f52
- duckdb: by_name modifiers #2118 (commit by @tobymao)cf2789f
- duckdb: allow selects in from leading syntax #2118 (commit by @tobymao)
🐛 Bug Fixes
167d298
- presto: transpile DATE_SUB (PR #2120 by @barakalon)
v17.16.1 - 2023-08-26
✨ New Features
🐛 Bug Fixes
v17.16.0 - 2023-08-26
✨ New Features
🐛 Bug Fixes
0316f7f
- presto: datetime -> timestamp (PR #2113 by @barakalon)
v17.15.1 - 2023-08-24
✨ New Features
dc5836c
- tsql: table constraints closes #2106 (commit by @tobymao)bda94df
- tsql: not for replication closes #2107 (commit by @tobymao)c99bf73
- mysql mediumint and year types closes #2109 (commit by @tobymao)
🐛 Bug Fixes
fb8a0b6
- regxpilike for snowflake (commit by @tobymao)f62f35c
- clickhouse dateadd/datediff closes #2108 (commit by @tobymao)b0d82ea
- property with ON keyword closes #2111 (commit by @tobymao)12bc916
- tsql: single quotes in if not exists (commit by @tobymao)
v17.15.0 - 2023-08-22
💥 BREAKING CHANGES
-
due to
1da653f
- Have Spark put CTE at front of insert (PR #2086 by @eakmanrq):Have Spark put CTE at front of insert (#2086)
-
due to
edb9a96
- rename DataTypeSize -> DataTypeParam (PR #2097 by @GeorgeSittas):rename DataTypeSize -> DataTypeParam (#2097)
-
due to
28a0e20
- add support for casting to user defined types (PR #2096 by @GeorgeSittas):add support for casting to user defined types (#2096)
-
due to
075849f
- allow types to be identifiers closes #2102 (commit by @tobymao):allow types to be identifiers closes #2102
✨ New Features
33220b9
- add more funcs to scope module (commit by @tobymao)2922bb0
- postgres full text search @@ closes #2066 (commit by @tobymao)c5dc9ac
- oracle: add support for old-style SELECT UNIQUE .. syntax (PR #2076 by @GeorgeSittas)- ↘️ addresses issue #2074 opened by @sashindeitidata
6426c1f
- tsql: transpile CREATE SCHEMA IF NOT EXISTS to dynamic SQL (PR #2083 by @GeorgeSittas)19300a8
- oracle: add support for $, # symbols (PR #2095 by @GeorgeSittas)- ↘️ addresses issue #2090 opened by @sashindeitidata
0b9a575
- tsql: update statistics cmd closes #2101 (commit by @tobymao)28a0e20
- add support for casting to user defined types (PR #2096 by @GeorgeSittas)- ↘️ addresses issue #2091 opened by @sashindeitidata
2843817
- add snowflake/tsql insert/stuff (commit by @tobymao)1fa5056
- tsql computed column exp closes #2104 (commit by @tobymao)
🐛 Bug Fixes
3c01cbf
- presto: allow REGEXP_REPLACE with 2 arguments (PR #2073 by @GeorgeSittas)- ↘️ fixes issue #2072 opened by @dmelchor-stripe
3c493e9
- optimizer: solve an infinite loop problem in simplify (PR #2071 by @GeorgeSittas)- ↘️ fixes issue #2068 opened by @powerAmore
c1febf2
- duckdb: improve struct kwarg parsing (PR #2082 by @GeorgeSittas)1da653f
- Have Spark put CTE at front of insert (PR #2086 by @eakmanrq)1aafe6e
- allow placeholders to be any ID_VAR token (PR #2093 by @GeorgeSittas)- ↘️ fixes issue #2089 opened by @sashindeitidata
6fa1581
- interval::int cast closes #2098 (commit by @tobymao)075849f
- allow types to be identifiers closes #2102 (commit by @tobymao)e474aa0
- array (commit by @tobymao)
♻️ Refactors
edb9a96
- rename DataTypeSize -> DataTypeParam (PR #2097 by @GeorgeSittas)
🔧 Chores
afe0286
- remove unnecessary class constants (PR #2094 by @GeorgeSittas)a20794a
- cleanup types and add sort by alias for hive (commit by @tobymao)
v17.14.2 - 2023-08-15
✨ New Features
cd2628a
- convert ANY_VALUE to MAX for some dialects (PR #2058 by @GeorgeSittas)d92a5b7
- optimizer: improve type annotation for nested types (PR #2061 by @GeorgeSittas)
🐛 Bug Fixes
21b061f
- escape sequence warnings closes #2059 (commit by @tobymao)56a3d89
- spark: handle MAP(..) without arguments correctly (PR #2063 by @GeorgeSittas)- ↘️ fixes issue #2062 opened by @dmelchor-stripe
7787342
- pushdown predicate to HAVING (PR #2064 by @barakalon)
v17.14.1 - 2023-08-15
🐛 Bug Fixes
0126d01
- parenthesize coalesce simplification (PR #2057 by @barakalon)
v17.14.0 - 2023-08-14
💥 BREAKING CHANGES
-
due to
2e73a4f
- dict conversion had incorrect ast (commit by @tobymao):dict conversion had incorrect ast
🐛 Bug Fixes
2e73a4f
- dict conversion had incorrect ast (commit by @tobymao)8affeff
- coalesce simplify window func (commit by @tobymao)
v17.13.0 - 2023-08-14
✨ New Features
c817e19
- improve support for NVL2 function (PR #2042 by @GeorgeSittas)689956b
- add distribute by alias for hive window functions closes #2043 (commit by @tobymao)0746b6f
- tsql: if object_id is not null support closes #2044 (commit by @tobymao)c37abfd
- any_value hive/spark/presto closes #2053 (commit by @tobymao)f8cb87d
- presto, spark: improve support for STR_TO_MAP, SPLIT_TO_MAP (PR #2054 by @GeorgeSittas)
🐛 Bug Fixes
a35cfe0
- tsql: add support for 'culture' argument in FORMAT (PR #2047 by @GeorgeSittas)cad6de8
- tsql: improve handling of table hints in MERGE statement (PR #2049 by @GeorgeSittas)- ↘️ fixes issue #2048 opened by @dmoore247
96d4d8b
- parser: ensure identifiers aren't treated as NO_PAREN_FUNCTIONS (PR #2056 by @GeorgeSittas)
v17.12.0 - 2023-08-11
✨ New Features
95ec5b6
- hive: improve transpilation of Bigquery's TIMESTAMP_ADD (PR #2012 by @GeorgeSittas)921d7a5
- add apache doris dialect (PR #2006 by @liujiwen-up)6e2705e
- simplify COALESCE (PR #2019 by @barakalon)915b1e2
- databricks: add support for UNPIVOT nulls option (PR #2021 by @GeorgeSittas)ea7891d
- duckdb: improve support for INT128, HUGEINT, NUMERIC (PR #2023 by @GeorgeSittas)190255d
- clickhouse: add support for FixedString(N) type (PR #2036 by @GeorgeSittas)ccb1b14
- clickhouse: LowCardinality closes #2033 (commit by @tobymao)55a8ead
- clickhouse: add support for Enum types (PR #2038 by @GeorgeSittas)593153c
- presto,oracle: add support for INTERVAL span types (PR #2035 by @GeorgeSittas)36f308e
- clickhouse: add support for Nested type (PR #2039 by @GeorgeSittas)
🐛 Bug Fixes
bc46c3d
- executor: add table normalization, fix python type mapping (PR #2015 by @GeorgeSittas)baab165
- improve comment handling for several expressions (PR #2017 by @GeorgeSittas)325b26e
- duckdb ISNAN (PR #2024 by @barakalon)ad75c6f
- only some joins can be simplified to CROSS (PR #2025 by @barakalon)32eb129
- postgres: improve parsing of array types closes #2034 (PR #2040 by @tobymao)4591092
- parse time[(p)] with time zone correctly (PR #2041 by @GeorgeSittas)
♻️ Refactors
c3fd695
- doris: cleanup implementation of Doris dialect (PR #2018 by @GeorgeSittas)
🔧 Chores
v17.10.2 - 2023-08-09
✨ New Features
🐛 Bug Fixes
7ccfd35
- optimizer: don't parse str argument in normalize_identifiers (PR #2010 by @GeorgeSittas)
v17.10.1 - 2023-08-08
🐛 Bug Fixes
f6fe54a
- optimizer: wrap expanded alias expressions (PR #2004 by @GeorgeSittas)900bec3
- if_sql mutation (commit by @tobymao)c73790d
- optimizer: ensure TableAlias column names shadow source columns (PR #2002 by @GeorgeSittas)caf2adc
- snowflake: tokenizeas raw string delimiters (PR #2007 by @GeorgeSittas)
289493b
- remove several mutations in Generator methods (PR #2009 by @GeorgeSittas)
v17.10.0 - 2023-08-07
✨ New Features
🐛 Bug Fixes
92f3288
- snowflake: generate WEEKOFYEAR instead of WEEK_OF_YEAR (commit by @GeorgeSittas)c9dd971
- parser, duckdb: decode/encode in duckdb don't take charset (PR #1993 by @charsmith)e00d857
- redshift: parse dateadd alias date_add (PR #1995 by @gafeol)d219a65
- snowflake startswith closes #1998 (commit by @tobymao)
v17.9.1 - 2023-08-03
✨ New Features
57df0b7
- optimizer: allow normalize_identifiers to accept strings (PR #1992 by @GeorgeSittas)
🐛 Bug Fixes
652d1c9
- optimizer: wrap scalar subquery replacement in a MAX call (PR #1988 by @GeorgeSittas)- ↘️ fixes issue #1987 opened by @laurentiupiciu
1865959
- ensure eliminate_qualify won't introduce duplicate projections (PR #1990 by @GeorgeSittas)
v17.9.0 - 2023-08-01
✨ New Features
ea7c7da
- teradata: parse [COLLECT|HELP] STATISTICS as Commands (PR #1979 by @GeorgeSittas)- ↘️ addresses issue #1978 opened by @MarkBell920
🐛 Bug Fixes
4af91a0
- parser: parse placeholder as fallback for boolean, null, star (PR #1976 by @GeorgeSittas)- ↘️ fixes issue #1975 opened by @SoftwareGuy2020
be7d4e6
- control whether quotes are generated for extract's date part (PR #1981 by @GeorgeSittas)5436f53
- Make date_add with incorrect expression more clear (commit by @tobymao)
♻️ Refactors
8a44cc2
- optimizer: improve handling of DDL optimization (PR #1972 by @GeorgeSittas)9e77c7b
- optimizer: factor out pseudocolumns in qualify columns (PR #1984 by @GeorgeSittas)
🔧 Chores
78b0eed
- update docstring with description of Expression.meta (commit by @GeorgeSittas)
v17.8.5 - 2023-07-28
✨ New Features
9d67283
- optimizer: add support for resolving CTEs in CREATE statements (PR #1949 by @gtoonstra)
🐛 Bug Fixes
2874ae5
- tsql: improve UDF parsing (PR #1973 by @GeorgeSittas)89c8635
- parser,bigquery: make separator optional in STRING_AGG parser (PR #1974 by @GeorgeSittas)
v17.8.4 - 2023-07-28
✨ New Features
7440e4a
- tsql: improve support for the DATEDIFF function (PR #1967 by @GeorgeSittas)
🐛 Bug Fixes
2d5d714
- tsql: revert float-to-datetime coercions (PR #1970 by @GeorgeSittas)35f55e9
- mysql: simplify LIMIT, OFFSET when their expression is complex (PR #1971 by @GeorgeSittas)
🔧 Chores
5695667
- add dialect parameter to parse for parity with parse_one (PR #1969 by @GeorgeSittas)
v17.8.3 - 2023-07-27
🐛 Bug Fixes
75b418c
- mysql: generate DATETIME instead of TIMESTAMP for TimeStrToTime (commit by @GeorgeSittas)
v17.8.2 - 2023-07-27
✨ New Features
5e641c2
- presto: add IPADDRESS/IPPREFIX data types (PR #1965 by @roykoand)d2685dd
- mysql: improve support for DDL index column constraints (PR #1961 by @GeorgeSittas)- ↘️ addresses issue #1959 opened by @ninja96826
🐛 Bug Fixes
7082b61
- trino->spark starts_with closes #1963 (commit by @tobymao)9787329
- trino->spark is_nan closes #1964 (commit by @tobymao)1ebe49f
- mysql: generate TimeStrToTime as a cast to TIMESTAMP (PR #1968 by @GeorgeSittas)
v17.8.1 - 2023-07-27
✨ New Features
59847f5
- parser: improved comment parsing (PR #1956 by @mpf82)8448141
- tsql: improve transpilation of temp table DDLs (PR #1958 by @GeorgeSittas)
🐛 Bug Fixes
92849bd
- optimizer: traverse UNNEST scope (PR #1960 by @GeorgeSittas)7f79592
- using type (commit by @tobymao)
🔧 Chores
4ed04d5
- minor README addition (commit by @GeorgeSittas)
v17.8.0 - 2023-07-24
✨ New Features
75d49b7
- schema: improve overridability of normalization setting (PR #1954 by @GeorgeSittas)
🐛 Bug Fixes
da5a4d1
- oracle: improve handling of KEEP (...) OVER (...) window syntax (PR #1953 by @GeorgeSittas)- ↘️ fixes issue #1952 opened by @push2prod
v17.7.0 - 2023-07-23
💥 BREAKING CHANGES
-
due to
2aa62d1
- mysql 5 does not support select * from values (commit by @tobymao):mysql 5 does not support select * from values
✨ New Features
b82573b
- redshift: improve transpilation of ADD_MONTHS function (PR #1945 by @GeorgeSittas)
🐛 Bug Fixes
46b5dfa
- duckdb: ensure 'day' will be generated for exp.DateDiff by default (PR #1944 by @GeorgeSittas)- ↘️ fixes issue #1943 opened by @richard-a-lott
327451f
- limit with select subquery closes #1948 (commit by @tobymao)f2f4084
- offset subquery (commit by @tobymao)2aa62d1
- mysql 5 does not support select * from values (commit by @tobymao)3b5d0a6
- mysql cast only supports a few data types (commit by @tobymao)
v17.6.1 - 2023-07-21
✨ New Features
4b7e9f1
- clickhouse: add support for the logical xor function (PR #1937 by @GeorgeSittas)1d2b5e0
- hive: add support for the query TRANSFORM clause (PR #1935 by @GeorgeSittas)
🐛 Bug Fixes
b8de650
- union lineage with > 2 sources closes #1934 (commit by @tobymao)79efb42
- duckdb, presto: improve bitwise support (PR #1938 by @GeorgeSittas)
v17.6.0 - 2023-07-19
✨ New Features
v17.5.0 - 2023-07-18
✨ New Features
e6b3a01
- tsql: improve support for transaction statements (PR #1907 by @dmoore247)048b9bc
- add refresh command (commit by @tobymao)3456bbf
- add RegexpReplace expression (PR #1925 by @GeorgeSittas)d6c8722
- clickhouse array join (commit by @tobymao)
🐛 Bug Fixes
d928ee0
- duckdb filter where optional (commit by @tobymao)cbcb113
- spark: add support for RLIKE function (PR #1911 by @GeorgeSittas)cc33749
- preserve comments in exp.Drop (commit by @GeorgeSittas)35e05f7
- make end transactions postgres specific closes #1921 (commit by @tobymao)aaee594
- teradata: separate POST_EXPRESSION props from POST_INDEX (PR #1924 by @GeorgeSittas)- ↘️ fixes issue #1923 opened by @MarkBell920
a523c8b
- comments above limit (commit by @tobymao)e9f1cb5
- spark,duckdb: transpile TO_TIMESTAMP, MONTHS_BETWEEN correctly (PR #1929 by @GeorgeSittas)- ↘️ fixes issue #1928 opened by @richard-a-lott
♻️ Refactors
726306e
- scope: rename _is_subquery_scope to _is_derived_table for clarity (PR #1912 by @GeorgeSittas)
v17.4.1 - 2023-07-11
🐛 Bug Fixes
v17.4.0 - 2023-07-11
💥 BREAKING CHANGES
-
due to
c511278
- table_name force quotes if unsafe identifiers (commit by @tobymao):table_name force quotes if unsafe identifiers
✨ New Features
21246fb
- Add FLOAT(n) mappings to Hive (PR #1896 by @dmoore247)d68f844
- tsql: insert output closes #1901 (commit by @tobymao)273daf9
- add returning as alias for postgres (commit by @tobymao)
🐛 Bug Fixes
900ad7e
- mysql: add support some logical operators (PR #1899 by @brosoul)c3b4b66
- expansions of literals in select and where (commit by @tobymao)6ccb595
- postgres nested jsonb closes #1903 (commit by @tobymao)a27521b
- improve parsing / generation of REGEXP_EXTRACT (PR #1905 by @GeorgeSittas)3e8c6cb
- oracle: keep NCHAR as-is (PR #1908 by @mpf82)5eed17e
- use sql method to generate index name (PR #1909 by @GeorgeSittas)c511278
- table_name force quotes if unsafe identifiers (commit by @tobymao)
♻️ Refactors
3b215ad
- hive: cleanup handling of FLOAT(n) in the generator (commit by @GeorgeSittas)69a69f6
- show an 'unsupported' error when transpiling (+) (PR #1906 by @GeorgeSittas)
v17.3.0 - 2023-07-07
✨ New Features
fafccf5
- postgres: add MONEY type, revert in Spark to use DECIMAL(15, 4) (commit by @GeorgeSittas)24dda47
- improve transpilation of BigQuery's TO_HEX(MD5(..)) (PR #1897 by @GeorgeSittas)
🐛 Bug Fixes
2ab8887
- spark: map MONEY type to a broader DECIMAL type (commit by @GeorgeSittas)dd7e494
- enforce function arg order (commit by @tobymao)
🔧 Chores
5cf9304
- optimizer: add more tests, improve titles in qualify_tables.sql (commit by @GeorgeSittas)
v17.2.0 - 2023-07-06
🐛 Bug Fixes
1f575db
- duckdb: improve transpilation of BigQuery DATE function (PR #1895 by @GeorgeSittas)
v17.1.0 - 2023-07-04
✨ New Features
🐛 Bug Fixes
83db4c0
- tsql: rename EXTRACT to DATEPART closes #1885 (commit by @GeorgeSittas)5a84605
- order by agg closes #1887 (PR #1889 by @tobymao)d1ad7da
- performance regression due to 6f80cc80 (commit by @tobymao)
v17.0.0 - 2023-07-04
💥 BREAKING CHANGES
-
due to
df4448d
- use a dictionary for query modifier search (commit by @tobymao):use a dictionary for query modifier search
-
due to
f747260
- hashable args is now more efficient and identifiers no longer accomodate case insensitivity because that is dialect specific (commit by @tobymao):hashable args is now more efficient and identifiers no longer accomodate case insensitivity because that is dialect specific
✨ New Features
47d999c
- mysql: add support for the MEMBER OF operator (PR #1872 by @GeorgeSittas)156afcd
- add the ability to parse nested joins implements #1878 (commit by @tobymao)
🐛 Bug Fixes
8a19d7a
- mysql: improve parsing of INSERT .. SELECT statement (PR #1871 by @GeorgeSittas)58e1683
- bigquery: improve support for cast to timestamp with format, time zone (PR #1873 by @GeorgeSittas)- ↘️ fixes issue #1870 opened by @dskarbrevik
0197119
- convert JSONArrayContains to a Func expression (commit by @GeorgeSittas)f4fb1f4
- tsql datepart format casing closes #1869 (commit by @tobymao)fe69102
- duckdb date_trunc to time closes #1875 (commit by @tobymao)a957388
- mysql: add support more kind for MEMBER OF content (PR #1880 by @brosoul)6f80cc8
- parser: handle chained table join with consecutive USING clauses (PR #1883 by @GeorgeSittas)82f8fff
- bigquery don't strip nested types (commit by @tobymao)cf12c8a
- python is literal warning (commit by @tobymao)
♻️ Refactors
df4448d
- use a dictionary for query modifier search (commit by @tobymao)f747260
- hashable args is now more efficient and identifiers no longer accomodate case insensitivity because that is dialect specific (commit by @tobymao)f621e85
- remove unused line, no tests fail (commit by @tobymao)0114b6d
- change to lambda that returns tuple (commit by @tobymao)
v16.8.1 - 2023-06-30
🐛 Bug Fixes
v16.8.0 - 2023-06-30
💥 BREAKING CHANGES
-
due to
fcf7dd0
- big query single quotes does not support line breaks (commit by @tobymao):big query single quotes does not support line breaks
✨ New Features
3800158
- datediff python executor (commit by @tobymao)2e1a2b8
- snowflake: add support for GROUP BY ALL (PR #1864 by @GeorgeSittas)6e81ac6
- makefile: add rule to skip integration tests (PR #1865 by @GeorgeSittas)
🐛 Bug Fixes
2911bbb
- typo (commit by @tobymao)d6c1569
- executor: allow non-projected aggregates in ORDER BY (PR #1863 by @GeorgeSittas)fcf7dd0
- big query single quotes does not support line breaks (commit by @tobymao)
♻️ Refactors
v16.7.7 - 2023-06-30
🐛 Bug Fixes
v16.7.6 - 2023-06-30
🐛 Bug Fixes
♻️ Refactors
15ac3c1
- executor: get rid of 'running' set (PR #1861 by @GeorgeSittas)
v16.7.4 - 2023-06-29
✨ New Features
08c3074
- bigquery: support the full syntax of ANY_VALUE (PR #1860 by @GeorgeSittas)- ↘️ addresses issue #1858 opened by @lucia-vargas-a
🐛 Bug Fixes
0357d63
- bigquery quoted udf project id (commit by @tobymao)28e1024
- group and order cannot replace with literals (commit by @tobymao)5dabb96
- alias snowflake timediff/timestampdiff to datediff closes #1851 (commit by @tobymao)
♻️ Refactors
🔧 Chores
1e76107
- snowflake: fix tests (commit by @GeorgeSittas)
v16.7.2 - 2023-06-28
🐛 Bug Fixes
v16.7.1 - 2023-06-28
✨ New Features
95a4b70
- bigquery: pushdown CTE column names (PR #1847 by @GeorgeSittas)f81dd26
- bigquery: add support for casting to string w/ format (PR #1848 by @GeorgeSittas)
🔧 Chores
v16.7.0 - 2023-06-28
💥 BREAKING CHANGES
-
due to
d72caf4
- bigquery udfs are case sensitive (commit by @tobymao):bigquery udfs are case sensitive
🐛 Bug Fixes
ebe04bb
- table name with dots (commit by @tobymao)e3c43f2
- redshift to ast incorrect (commit by @tobymao)d72caf4
- bigquery udfs are case sensitive (commit by @tobymao)7cb01a0
- bigquery: transpile explode projection to cross join unnest, clean up tests (PR #1844 by @GeorgeSittas)abdf34b
- bigquery: STRING_AGG parsing bug (PR #1846 by @GeorgeSittas)
v16.6.0 - 2023-06-27
💥 BREAKING CHANGES
-
due to
71818f9
- bigquery normalize dot tables and aliases (commit by @tobymao):bigquery normalize dot tables and aliases
🐛 Bug Fixes
b60e19b
- spark clustered by dml (commit by @tobymao)40928b7
- full support for spark clustered by (commit by @tobymao)71818f9
- bigquery normalize dot tables and aliases (commit by @tobymao)
v16.5.0 - 2023-06-27
💥 BREAKING CHANGES
-
due to
451dad2
- use alias for order by after group by closes #1822 (commit by @tobymao):use alias for order by after group by closes #1822
-
due to
9de9667
- group by having closes #1831 (commit by @tobymao):group by having closes #1831
✨ New Features
5d5795d
- postgres: improve transpilation of ELEMENT_AT (PR #1830 by @GeorgeSittas)- ↘️ addresses issue #1829 opened by @SudarshanVS
763d25b
- mysql: add support for SIGNED [INTEGER] and UNSIGNED [INTEGER] types (PR #1828 by @brosoul)
🐛 Bug Fixes
451dad2
- use alias for order by after group by closes #1822 (commit by @tobymao)8aef4c3
- dont expand bq pseudocolumns in optimizer star expansion (PR #1826 by @z3z1ma)f7abc28
- mysql: convert (U)BIGINT to (UN)SIGNED in CAST expressions (PR #1832 by @GeorgeSittas)9de9667
- group by having closes #1831 (commit by @tobymao)cb0ac10
- unnest subqueries in executor closes #1835 (commit by @tobymao)32a86aa
- bigquery: handle reserved keywords (PR #1839 by @serkef)4de255c
- interval precedence parsing bug (PR #1837 by @GeorgeSittas)e4d6ba5
- remove group alias for spark 3 (commit by @tobymao)
🔧 Chores
v16.4.2 - 2023-06-23
✨ New Features
91ebaf5
- snowflake: add support for BYTEINT type (PR #1819 by @GeorgeSittas)- ↘️ addresses issue #1818 opened by @criccomini
2367bfc
- make table_name more robust by quoting unsafe parts (PR #1820 by @GeorgeSittas)5572e76
- execute LEFT and RIGHT (PR #1821 by @barakalon)
v16.4.1 - 2023-06-23
✨ New Features
088e745
- databricks: add support for REPLACE WHERE in INSERT statement (PR #1817 by @GeorgeSittas)
🐛 Bug Fixes
8079b50
- executor: ensure IN clause can work with a single value (PR #1815 by @GeorgeSittas)
v16.4.0 - 2023-06-21
💥 BREAKING CHANGES
-
due to
1db023f
- simplify mypy type hints for parse_one (PR #1797 by @GeorgeSittas):simplify mypy type hints for parse_one (#1797)
✨ New Features
15f6f26
- support BigQuery GENERATE_ARRAY (PR #1800 by @r1b)2f43629
- bigquery: support TO_JSON_STRING (PR #1802 by @r1b)e62c50c
- add support for LIMIT clause in DELETE statement (PR #1804 by @GeorgeSittas)a2bf084
- duckdb: support TO_JSON (PR #1803 by @r1b)b8d9a19
- add support for LIMIT clause in UPDATE statement (PR #1808 by @GeorgeSittas)
🐛 Bug Fixes
2e67bf9
- teradata: add support for the SELECT TOP N syntax (PR #1799 by @GeorgeSittas)6945b28
- remove side on condition simplification (commit by @tobymao)d7c1e7d
- snowflake: add support for TOP keyword (commit by @ftom)
♻️ Refactors
1db023f
- simplify mypy type hints for parse_one (PR #1797 by @GeorgeSittas)458f12d
- hive: improve transpilation of TO_JSON (PR #1809 by @GeorgeSittas)
🔧 Chores
4da37aa
- clean up some comments in helper.py (commit by @GeorgeSittas)73cddc4
- fix ANNOTATORS mypy type hint (commit by @GeorgeSittas)
v16.3.1 - 2023-06-16
🐛 Bug Fixes
v16.3.0 - 2023-06-16
💥 BREAKING CHANGES
-
due to
038afc9
- switch presto tsords to cast timestamp -> date (commit by @tobymao):switch presto tsords to cast timestamp -> date
-
due to
4084ba3
- move normalization logic in Dialect, update case-sensitivity info (PR #1784 by @GeorgeSittas):move normalization logic in Dialect, update case-sensitivity info (#1784)
✨ New Features
fc9afb3
- snowflake: add support for COPY GRANTS property (PR #1793 by @GeorgeSittas)
🐛 Bug Fixes
311380c
- select as struct transpilation closes #1788 (commit by @tobymao)1b62c0a
- parser: cast coalesce arg to text in the context of a CONCAT call (PR #1792 by @GeorgeSittas)d27e8f8
- schema: ensure tables aren't normalized for BigQuery (PR #1794 by @GeorgeSittas)58fe190
- rawstring backslashes for bigquery (commit by @tobymao)
♻️ Refactors
038afc9
- switch presto tsords to cast timestamp -> date (commit by @tobymao)4084ba3
- move normalization logic in Dialect, update case-sensitivity info (PR #1784 by @GeorgeSittas)
v16.2.1 - 2023-06-16
💥 BREAKING CHANGES
-
due to
88249b8
- cyclic joins in the optimizer (PR #1786 by @tobymao):cyclic joins in the optimizer (#1786)
🐛 Bug Fixes
88249b8
- cyclic joins in the optimizer (PR #1786 by @tobymao)f957a07
- overly aggressive cross join removal (commit by @tobymao)cacf8bf
- build null types (commit by @tobymao)
🔧 Chores
d696d7f
- cleanup merge_subqueries (commit by @tobymao)8e1b6a7
- speed up executor tests (commit by @tobymao)
v16.2.0 - 2023-06-15
🐛 Bug Fixes
🔧 Chores
v16.1.4 - 2023-06-15
🐛 Bug Fixes
4a1068b
- Postgres: Set INDEX_OFFSET to 1 (PR #1782 by @vegarsti)f523dd6
- build uppercasing everything (commit by @tobymao)
v16.1.3 - 2023-06-15
✨ New Features
🐛 Bug Fixes
fd0fc97
- bigquery timestamp -> timestamptz (commit by @tobymao)b86f7e8
- dialect build (commit by @tobymao)
v16.1.1 - 2023-06-15
🐛 Bug Fixes
697c8b1
- bigquery: allow SPLIT call with 1 argument (PR #1770 by @GeorgeSittas)0796cdc
- join using struct (commit by @tobymao)b13d0b9
- map "RETURNING" to its token in the base Tokenizer (PR #1773 by @GeorgeSittas)- ↘️ fixes issue #1771 opened by @LilyFoote
a2deee3
- parser: don't parse an alias for non-source UNNESTs (PR #1774 by @GeorgeSittas)0a1362b
- bigquery regexp_extract closes #1776 (commit by @tobymao)f84732e
- bigquery timestamp mapping (commit by @tobymao)
♻️ Refactors
1dbed85
- optimizer: make the type annotator more dry (PR #1777 by @GeorgeSittas)
v16.1.0 - 2023-06-13
✨ New Features
a4934cb
- add hint builder (PR #1758 by @GeorgeSittas)b87fa35
- add copy flag to replace_tables (commit by @tobymao)6cfc873
- snowflake: add support for // comments (PR #1765 by @GeorgeSittas)- ↘️ addresses issue #1763 opened by @florian-ernst-alan
🐛 Bug Fixes
146e66a
- select x.update (commit by @tobymao)2b46782
- json_object(*) closes #1757 (commit by @tobymao)0264b43
- limit offset multi arg order (commit by @tobymao)4fcdb0f
- tokenizer: improve tokenization of decimals ending in . (PR #1766 by @GeorgeSittas)- ↘️ fixes issue #1764 opened by @florian-ernst-alan
35d960a
- parser: disallow no paren functions when parsing table parts (PR #1767 by @GeorgeSittas)- ↘️ fixes issue #1762 opened by @florian-ernst-alan
5955b9e
- values inner alias snowflake closes #1768 (commit by @tobymao)0a9cecb
- Postgres: Support UNNEST (PR #1761 by @vegarsti)
♻️ Refactors
46abf16
- simplify list comprehension in hint parser (commit by @GeorgeSittas)
v16.0.0 - 2023-06-12
💥 BREAKING CHANGES
-
due to
e00647a
- output name for parens (commit by @tobymao):output name for parens
-
due to
2dd8cba
- misc. improvements in formatting, type hints, dialect class variables (PR #1750 by @GeorgeSittas):misc. improvements in formatting, type hints, dialect class variables (#1750)
-
due to
a233afa
- bigquery cast date format closes #1753 (commit by @tobymao):bigquery cast date format closes #1753
✨ New Features
99c41d9
- clickhouse: support CREATE VIEW TO syntax (PR #1752 by @pkit)e00647a
- output name for parens (commit by @tobymao)
🐛 Bug Fixes
48ad1f1
- bigquery table with hyphen number (commit by @tobymao)68b9128
- index using closes #1751 (commit by @tobymao)55a14a3
- selecting from table with same name as cte (commit by @tobymao)7000a6f
- presto offset limit order closes #1754 (commit by @tobymao)1553bfa
- count with multiple args closes #1755 (commit by @tobymao)a233afa
- bigquery cast date format closes #1753 (commit by @tobymao)
♻️ Refactors
2dd8cba
- misc. improvements in formatting, type hints, dialect class variables (PR #1750 by @GeorgeSittas)
🔧 Chores
v15.2.0 - 2023-06-09
💥 BREAKING CHANGES
-
due to
c6a540c
- store type dump so it is not reparsed (commit by @tobymao):store type dump so it is not reparsed
✨ New Features
e028d98
- redshift,presto: transpile FROM_BASE to STRTOL and vice versa (PR #1744 by @GeorgeSittas)- ↘️ addresses issue #1742 opened by @pangyifish
bb1f1a0
- redshift,presto: transpile DATEADD, DATEDIFF to presto (PR #1746 by @GeorgeSittas)- ↘️ addresses issue #1745 opened by @pangyifish
🐛 Bug Fixes
9b56fc9
- add ts_or_ds to postgres (commit by @tobymao)0cc09cf
- is true for presto closes #1740 (commit by @tobymao)6168fbf
- redshift len->length closes #1741 (commit by @tobymao)824fcb2
- bigquery table with hyphen number (commit by @tobymao)
🔧 Chores
d2e46c3
- fix README example (commit by @GeorgeSittas)c6a540c
- store type dump so it is not reparsed (commit by @tobymao)
v15.1.0 - 2023-06-07
💥 BREAKING CHANGES
-
due to
6ad00ca
- convert left and right closes #1733 (commit by @tobymao):convert left and right closes #1733
✨ New Features
5867fc4
- postgres: add support for all range/multirange types (PR #1718 by @GeorgeSittas)dd29f3f
- presto: transpile 'epoch' to '1970-01-01 00:00:00' in time-like casts (PR #1726 by @GeorgeSittas)- ↘️ addresses issue #1725 opened by @pangyifish
🐛 Bug Fixes
4f31a50
- clickhouse backslash str escape closes #1719 (commit by @tobymao)95f7ac7
- bigquery: treat HASH as a reserved keyword (PR #1721 by @GeorgeSittas)cad14bd
- conditionally quote identifiers that start with a digit (PR #1729 by @GeorgeSittas)e058513
- ensure pivot can be used as a table name (PR #1734 by @GeorgeSittas)be0de6e
- window sql gen closes #1739 (commit by @tobymao)
🔧 Chores
1eb338a
- optimizer: fix pushdown_predicates comment example (PR #1732 by @GeorgeSittas)a30a828
- cleanup identifer (commit by @tobymao)
v15.0.0 - 2023-06-02
✨ New Features
24d44ad
- schema: allow passing kwargs in ensure_schema (PR #1706 by @GeorgeSittas)1b1d9f2
- mysql: add support for the UNIQUE KEY constraint (PR #1708 by @GeorgeSittas)17dc0e1
- duckdb: add support for simplified pivot syntax (PR #1714 by @GeorgeSittas)- ↘️ addresses issue #1712 opened by @csubhodeep
🐛 Bug Fixes
ec7c863
- ensure maybe parse doesn't get none (commit by @tobymao)5f45e18
- teradata partition order (PR #1696 by @tobymao)764ce6f
- clear errors on schema parse closes #1698 (commit by @tobymao)a9e1483
- Minor Dataframe cleanup (PR #1700 by @eakmanrq)264e9d7
- make error message more robust (commit by @tobymao)da17c4d
- snowflake object_construct to struct closes #1699 (commit by @tobymao)2792eaa
- bigquery record -> struct (commit by @tobymao)6045b74
- allow type column ops for bigquery (commit by @tobymao)910166c
- set quote_identifiers in qualify, add normalize flag in schema (PR #1701 by @GeorgeSittas)611c234
- parse query modifiers for ddl selects (PR #1703 by @GeorgeSittas)6833823
- duckdb: transpile DATE_SUB into a subtraction (PR #1705 by @GeorgeSittas)- ↘️ fixes issue #1704 opened by @muscovitebob
dd5457c
- schema: ensure the correct dialect is used in schema methods (PR #1710 by @GeorgeSittas)92dbace
- interval preceding closes #1715 (commit by @tobymao)
♻️ Refactors
12d3cca
- schema: replace _ensure_table with exp.maybe_parse (PR #1709 by @GeorgeSittas)5d6fbfe
- factor out the the name sequence generation logic (PR #1716 by @GeorgeSittas)
🔧 Chores
810522b
- fix return type of and_, or_ methods (commit by @GeorgeSittas)c2c955c
- make exception less broad (commit by @tobymao)e7abaef
- cleanup (commit by @tobymao)223c58d
- fix tests (commit by @tobymao)
v14.1.1 - 2023-05-26
🐛 Bug Fixes
🔧 Chores
v14.1.0 - 2023-05-26
💥 BREAKING CHANGES
-
due to
a6fdd59
- improve python type hints (PR #1689 by @GeorgeSittas):improve python type hints (#1689)
🐛 Bug Fixes
964b04c
- allow optimizer to handle non unionables (commit by @tobymao)7771609
- redshift type (commit by @tobymao)543b565
- raw strings bigquery escape closes #1691 (PR #1694 by @tobymao)fbf5f47
- create index with order closes #1692 (commit by @tobymao)8465a77
- clickhouse: allow aliases in tuple function arguments (PR #1695 by @GeorgeSittas)
🔧 Chores
a6fdd59
- improve python type hints (PR #1689 by @GeorgeSittas)6cce5fc
- make bigquery hex less lenient (commit by @tobymao)
v14.0.0 - 2023-05-24
💥 BREAKING CHANGES
-
due to
267ea8f
- cleanup unnecessary tokens (PR #1688 by @tobymao):cleanup unnecessary tokens (#1688)
-
due to
e995ab0
- use maybe_parse in exp.to_table, fix exp.Table expression parser (PR #1684 by @GeorgeSittas):use maybe_parse in exp.to_table, fix exp.Table expression parser (#1684)
✨ New Features
a392114
- databricks: add support for GENERATED ALWAYS AS (expr) clause (PR #1686 by @GeorgeSittas)1cb9614
- implement transform to add column names to recursive CTEs (PR #1687 by @GeorgeSittas)
🐛 Bug Fixes
c567a0b
- snowflake: preserve TIME type instead of converting it to TIMESTAMP (PR #1685 by @GeorgeSittas)- ↘️ fixes issue #1682 opened by @wedotech-ashley
e995ab0
- use maybe_parse in exp.to_table, fix exp.Table expression parser (PR #1684 by @GeorgeSittas)
🔧 Chores
v13.3.1 - 2023-05-23
✨ New Features
ea130b4
- add dot to executor closes #1676 (commit by @tobymao)b875aa4
- executor: add strftime (PR #1679 by @GeorgeSittas)
🐛 Bug Fixes
129931b
- snowflake: allow 2nd argument in initcap (PR #1670 by @GeorgeSittas)1a88b17
- parser: add asc, desc to id var tokens (PR #1671 by @GeorgeSittas)be5217d
- teradata: improve post index property parsing (PR #1675 by @GeorgeSittas)- ↘️ fixes issue #1674 opened by @MarkBell920
903dde0
- replace between before normalization (commit by @tobymao)1de5684
- tokenizer: initialize self._col properly to avoid edge case (PR #1678 by @GeorgeSittas)17be003
- start and end of tokens now respect quotes closes #1677 (commit by @tobymao)
v13.3.0 - 2023-05-19
💥 BREAKING CHANGES
-
due to
8c9e5ec
- multi threading issues with simplify (commit by @tobymao):multi threading issues with simplify
🐛 Bug Fixes
v13.2.2 - 2023-05-19
🐛 Bug Fixes
v13.2.1 - 2023-05-19
✨ New Features
e7f6455
- executor: add support for qualified table references (PR #1659 by @GeorgeSittas)- ↘️ addresses issue #1657 opened by @wmaiouiru
🐛 Bug Fixes
3f2f4df
- redshift: handle VALUES clause more robustly (PR #1654 by @GeorgeSittas)da51f1e
- cast to boolean closes #1658 (commit by @tobymao)2cefcaa
- add exp.Neg to UNWRAPPED_INTERVAL_VALUES (PR #1662 by @GeorgeSittas)- ↘️ fixes issue #1660 opened by @joshmarcus
7130db0
- lineage: remove unnecessary optimization (PR #1663 by @GeorgeSittas)cfbadfa
- optimizer: expand refs in QUALIFY into corresponding projections (PR #1665 by @GeorgeSittas)- ↘️ fixes issue #1661 opened by @homebase3
🔧 Chores
19a56d9
- explain versioning system in README (PR #1652 by @GeorgeSittas)862deab
- snowflake: remove select_sql and values_sql as the bug was resolved (PR #1653 by @GeorgeSittas)
v13.2.0 - 2023-05-18
🔧 Chores
v13.1.0 - 2023-05-18
✨ New Features
🐛 Bug Fixes
f88ea48
- snowflake: add support for GEOGRAPHY, GEOMETRY types (PR #1640 by @GeorgeSittas)- ↘️ fixes issue #1639 opened by @dlouseiro
6d04523
- Spark table format vs file format (PR #1644 by @barakalon)6f9d531
- postgres, redshift: use single string interval logic (PR #1651 by @GeorgeSittas)- ↘️ fixes issue #1649 opened by @ibestvina
72c5995
- interval execution closes #1650 (commit by @tobymao)c4ef23c
- clickhouse: absorb _parse_ternary logic in _parse_conjunction (PR #1646 by @GeorgeSittas)- ↘️ fixes issue #1645 opened by @ArtjomKotkov
🔧 Chores
1d1c0d7
- issue a warning if version can't be imported (PR #1648 by @GeorgeSittas)
v13.0.2 - 2023-05-16
✨ New Features
🐛 Bug Fixes
cc7a5de
- ensure unit is a var in parse_date_delta (PR #1637 by @GeorgeSittas)
♻️ Refactors
b9140b6
- CI/CD: make it so that deployment only requires tag push (PR #1638 by @GeorgeSittas)
v13.0.1 - 2023-05-16
✨ New Features
8610298
- snowflake: add support for the CLONE clause in DDL statements (PR #1627 by @GeorgeSittas)50025ea
- clickhouse: add support for clickhouse's placeholders (PR #1628 by @GeorgeSittas)4b1aa02
- optimizer: optimize pivots (PR #1617 by @GeorgeSittas)13a731a
- snowflake: translate [CHAR|NCHAR] VARYING into VARCHAR (PR #1634 by @GeorgeSittas)06d6990
- snowflake: translate CHARACTER VARYING into VARCHAR too (commit by @GeorgeSittas)c01edb0
- create builders for the INSERT statement (PR #1630 by @GeorgeSittas)
🐛 Bug Fixes
99532d9
- tablesample losing db closes #1629 (commit by @tobymao)409f13d
- missing from comment and spacing closes #1631 (commit by @tobymao)bba360c
- clickhouse: map ApproxDistinct to uniq, AnyValue to any (PR #1635 by @GeorgeSittas)- ↘️ fixes issue #1633 opened by @ewjoachim
v13.0.0 - 2023-05-15
✨ New Features
31a82cc
- add math associativity simplification (commit by @tobymao)a973113
- reparse bigquery nested identifiers (commit by @tobymao)a33112f
- bigquery: allow first part of table names to contain dashes (PR #1624 by @GeorgeSittas)
🐛 Bug Fixes
0acfaf7
- clickhouse settings and format closes #1605 closes #1604 (commit by @tobymao)b5f0abc
- global join clickhouse closes #1606 (commit by @tobymao)d92964b
- clickhouse attach command closes #1608 (commit by @tobymao)72f1984
- clickhouse cast to string closes #1607 (commit by @tobymao)2f34d6f
- clickhouse group by with totals closes #1609 (commit by @tobymao)b75b006
- clickhouse paramaterized func closes #1610 (commit by @tobymao)4601831
- join/pivot/lateral order and simplify (commit by @tobymao)29e5af2
- remove unconditional expression copy (PR #1611 by @tobymao)a67b2de
- clickhouse: join type/kind ordering issues (PR #1614 by @pkit)6875d07
- clickhouse:USING
allows unwrapped col list (PR #1615 by @pkit)2f7473b
- presto sequence to unnest closes #1600 (commit by @tobymao)966dfbb
- tokenizer: avoid edge case bug in the trie lookup loop (PR #1619 by @GeorgeSittas)4833953
- simplify from to a single expression closes #1620 (PR #1620 by @tobymao)bc0b021
- allow identifier params. (commit by @tobymao)
v12.4.0 - 2023-05-12
✨ New Features
f585eef
- clickhouse: parse ternary operator (PR #1603 by @GeorgeSittas)- ↘️ addresses issue #1602 opened by @ArtjomKotkov
🐛 Bug Fixes
41b90be
- snowflake: Handle form of CONVERT_TIMEZONE with a source TZ (PR #1598 by @pmsanford)4dd413b
- expand alias refs was buggy and did the samething expand lateral… (PR #1599 by @tobymao)
v12.2.0 - 2023-05-09
✨ New Features
1fa8ae9
- sqlite primary key transforms closes #1557 (commit by @tobymao)fb819f0
- optimizer: expand join constructs into SELECT * from subqueries (PR #1560 by @GeorgeSittas)- ↘️ addresses issue #1554 opened by @SudarshanVS
e173dd5
- improve tokenizer perf significantly on sql with many strings (commit by @tobymao)c9103fe
- Clickhouse: Support large data types (PR #1568 by @matthax)
🐛 Bug Fixes
34b6038
- bigquery conversion without table alias (commit by @tobymao)6124d0c
- bigquery select distinct as struct (commit by @tobymao)54a7637
- postgres exponent precedence closes #1555 (commit by @tobymao)ac60698
- array_join -> concat_ws closes #1558 (commit by @tobymao)79a478e
- comments refactor closes #1561 (commit by @tobymao)7b09bff
- options inside of bigquery struct closes #1562 (commit by @tobymao)4f0b3ed
- bigquery date_part WEEK(WEEKDAY) closes #1563 (commit by @tobymao)4744742
- presto, spark: remove WITHIN GROUP when transpiling percentile_[cont|disc] (PR #1565 by @GeorgeSittas)23cf246
- need to differentiate between peek and curr tokenizers (commit by @tobymao)9f13b6c
- base64 closes #1567 (commit by @tobymao)bcfae2c
- subquery selects (PR #1569 by @barakalon)34d99ab
- spark: unqualify columns in PIVOT expressions (PR #1572 by @GeorgeSittas)e1713f3
- preserve quotes in aliases (commit by @tobymao)fa0f3a1
- allow any identifier as name when parsing a struct field (PR #1573 by @GeorgeSittas)
♻️ Refactors
951d407
- preserve the full text of hex/bin literals (PR #1552 by @GeorgeSittas)5bbb7e8
- simplify tokenizer alnum logic (PR #1570 by @GeorgeSittas)
🔧 Chores
c580cb3
- update README optimizer example (commit by @GeorgeSittas)
v12.1.0 - 2023-05-05
🐛 Bug Fixes
0b46fa6
- remove bigquery workaround for values type inference (commit by @tobymao)dfae784
- sqlite no table options closes #1553 (commit by @tobymao)aef9cfa
- double json spark closes #1547 (commit by @tobymao)
🔧 Chores
v12.0.0 - 2023-05-04
✨ New Features
862cbeb
- Use alternative transform for dialects that do not support distinct on (PR #1524 by @crericha)52c80e0
- Support regex function in Starrocks (PR #1528 by @acreux)00b4779
- spark: new Spark2 dialect, improve DATEDIFF sql generation BREAKING (PR #1529 by @GeorgeSittas)e2593ba
- Add BYTES type to BigQuery dialect (PR #1536 by @relud)911e4e9
- distinct on builder (commit by @tobymao)
🐛 Bug Fixes
5c26f56
- windowspec generator (commit by @tobymao)e7111ba
- trino: wrap SEQUENCE in an UNNEST call if used as a source (PR #1527 by @GeorgeSittas)3d964c6
- use preprocess instead of expanding transform dicts BREAKING (PR #1525 by @GeorgeSittas)5fc27d3
- trim with double pipes (commit by @tobymao)9778c16
- create table options for bigquery closes #1531 (commit by @tobymao)55dc509
- bigquery: allow 2nd argument for PERCENTILE_[CONT|DISC] (PR #1537 by @GeorgeSittas)5c59747
- qualifying correlated subqueries (commit by @tobymao)19c0490
- parse unnest array type closes #1532 (commit by @tobymao)51ca411
- expand laterals first if no schema is present (commit by @tobymao)abfbce2
- bigquery udf existing func clash closes #1535 (commit by @tobymao)444dd94
- Spark: Add DOUBLE, FLOAT cast functions (PR #1530 by @vegarsti)0578d6d
- oracle: allow parsing of @dblink in table names (PR #1540 by @GeorgeSittas)b7e08cc
- duckdb: parse DATEDIFF correctly (PR #1546 by @GeorgeSittas)f21abb7
- oracle: set post_tablesample_alias=True to fix alias parsing (PR #1548 by @GeorgeSittas)8ebba48
- binary_double/float types closes #1543 (commit by @tobymao)2a6a3e7
- make some SQL builders pure (PR #1526 by @GeorgeSittas)99310c4
- duckdb: remove parentheses from CurrentTimestamp, CurrentDate (PR #1551 by @GeorgeSittas)- ↘️ fixes issue #1550 opened by @BTheunissen
a113685
- spark: cast UnixToTime to TIMESTAMP BREAKING (PR #1549 by @GeorgeSittas)- ↘️ fixes issue #1545 opened by @joshmarcus
🔧 Chores
v11.7.0 - 2023-05-02
✨ New Features
20cacba
- tsql, oracle: add support for NEXT VALUE FOR clause (PR #1521 by @GeorgeSittas)96bb150
- builder methods for basic ops (PR #1516 by @tobymao)e11a5ce
- add case when change func to parse BREAKING (commit by @tobymao)455b9e9
- oracle: support KEEP (.. [FIRST|LAST] ..) window function syntax (PR #1522 by @GeorgeSittas)
🐛 Bug Fixes
94fed8c
- call _parse_bitwise as a fallback for nested type args (PR #1515 by @GeorgeSittas)52ab03d
- array with method calls (commit by @tobymao)c3db2b8
- allow parsing 'if' as an identifier (PR #1517 by @GeorgeSittas)
🔧 Chores
d5d360a
- Remove older CHANGELOG entries and let CI handle it from now on (commit by @GeorgeSittas)
v11.6.3 - 2023-05-01
✨ New Features
80287dd
- presto: transpile explode/posexplode into (cross join) unnest (PR #1501 by @GeorgeSittas)
🐛 Bug Fixes
efd8c05
- redshift doesn't support locks (commit by @tobymao)f4ece7c
- comment after paren closes #1504 (commit by @tobymao)85b2c00
- postgres doesn't support plural interval closes #1503 (commit by @tobymao)2e0eee6
- postgres date_part type closes #1506 (commit by @tobymao)2dcbc7f
- tsql hashbytes closes #1508 (commit by @tobymao)5347c7a
- change str to Expression in alias_ isinstance check (PR #1510 by @GeorgeSittas)f137815
- BigQueryTIMESTAMP
andTIMESTAMPTZ
types (PR #1511 by @plaflamme)6143491
- allow $ to appear in postgres/redshift identifiers (PR #1512 by @GeorgeSittas)
🔧 Chores
adc526c
- add note about conventional commit naming in CONTRIBUTING.md (commit by @GeorgeSittas)9421650
- set action for automatic conventional changelog generation (PR #1513 by @GeorgeSittas)