NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #375 most downloaded on PyPI
An easily customizable SQL parser and transpiler
Last release 4 days ago
22 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 54 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
6 years old
782 releases · first in 2021
One column per quarter.
`078471d` - mysql,doris: improve transpilation of INTERVAL (plural to singular) *(PR #3543 by @Toms1999)*
078471d - mysql,doris: improve transpilation of INTERVAL (plural to singular) (PR #3543 by @Toms1999)fe56e64 - postgres: add support for col int[size] column def syntax (PR #3548 by @georgesittas)
188dce8 - snowflake: add support for WITH-prefixed column constraints (PR #3549 by @georgesittas)
712d247 - add support for ALTER COLUMN DROP NOT NULL (PR #3550 by @noklam)
7c323bd - add option in schema's find method to ensure types are DataTypes (PR #3560 by @georgesittas)1a8a16b - clickhouse: improve struct type parsing (PR #3547 by @georgesittas)
970d3b0 - postgres: setting un-suffixed FLOAT as DOUBLE (#3551) (PR #3552 by @sandband)
e1a9a8b - redshift: add support for MINUS operator #3553 (PR #3555 by @sandband)beb0269 - tsql: adapt TimeStrToTime to avoid superfluous casts (PR #3558 by @Themiscodes)eae3c51 - use regex to split interval strings (PR #3556 by @georgesittas)
a67de5f - get rid of redundant dict_depth check in schema find (PR #3561 by @georgesittas)89a8984 - move UNESCAPED_SEQUENCES out of the _Dialect metaclass (commit by @georgesittas)893addf - add SET NOT NULL test (commit by @georgesittas)due to `80c622e` - add reserved keywords fixes #3526 *(commit by @georgesittas)*:
due to 80c622e - add reserved keywords fixes #3526 (commit by @georgesittas):
add reserved keywords fixes #3526
a255610 - add StringToArray expression (postgres), improve its transpilation (commit by @georgesittas)8f46d48 - redshift: transpile SPLIT_TO_STRING (commit by @georgesittas)80c622e - doris: add reserved keywords fixes #3526 (commit by @georgesittas)ebf5fc7 - hive: generate correct names for weekofyear, dayofmonth, dayofweek (PR #3533 by @oshyun)
3fe3c2c - parser: make _parse_type less aggressive, only parse column as last resort (PR #3541 by @georgesittas)
8afff02 - tsql: preserve REPLICATE roundtrip (commit by @georgesittas)due to `a077f17` - add reserved keywords *(PR #3525 by @georgesittas)*:
due to a077f17 - add reserved keywords (PR #3525 by @georgesittas):
add reserved keywords (#3525)
d958bba - snowflake: add support for CREATE WAREHOUSE (PR #3510 by @yingw787)
2105300 - databricks: Enable hex string literals (PR #3522 by @VaggelisD)
1ef3bb6 - snowflake: Add support for CREATE STREAMLIT (PR #3519 by @yingw787)
5cecbfa - unnest identifier closes #3512 (commit by @tobymao)33ab353 - snowflake: parse certain DB_CREATABLES as identifiers (commit by @georgesittas)d468f92 - doris: dont generate arrows for JSONExtract* closes #3513 (commit by @georgesittas)bfb9f98 - postgres: parse @> into ArrayContainsAll, improve transpilation (PR #3515 by @georgesittas)
4def45b - make UDF DDL property parsing more lenient closes #3517 (commit by @georgesittas)a077f17 - mysql: add reserved keywords (PR #3525 by @georgesittas)
358f30c - remove redundant postgres JSONB token mapping (commit by @georgesittas)due to `77d21d9` - parse : operator as JSONExtract (similar to Snowflake) *(PR #3508 by @georgesittas)*:
due to 77d21d9 - parse : operator as JSONExtract (similar to Snowflake) (PR #3508 by @georgesittas):
parse : operator as JSONExtract (similar to Snowflake) (#3508)
77d21d9 - databricks: parse : operator as JSONExtract (similar to Snowflake) (PR #3508 by @georgesittas)due to `e281db8` - Add ALTER TABLE SET *(PR #3485 by @VaggelisD)*:
due to e281db8 - Add ALTER TABLE SET (PR #3485 by @VaggelisD):
Add ALTER TABLE SET (#3485)
e281db8 - Add ALTER TABLE SET (PR #3485 by @VaggelisD)9aee21b - add RETURNS NULL ON NULL and STRICT properties (PR #3504 by @georgesittas)
`89c1d3a` - clickhouse: support generate TimestampTrunc, Variance, Stddev *(PR #3489 by @longxiaofei)*
89c1d3a - clickhouse: support generate TimestampTrunc, Variance, Stddev (PR #3489 by @longxiaofei)due to `846d5cd` - set default precision / width for DECIMAL type *(PR #3472 by @georgesittas)*:
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
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)
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)58d5f2b - presto: fix parsing and generating hash functions presto/trino (PR #3459 by @viplazylmht)
065281e - optimizer: fix multiple bugs in unnest_subqueries, clean up test suite (PR #3464 by @georgesittas)
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)
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 <schema> more gracefully for DeclareItem (commit by @georgesittas)due to `510f8b5` - improve transpilation of TABLESAMPLE clause *(PR #3457 by @georgesittas)*:
due to 510f8b5 - improve transpilation of TABLESAMPLE clause (PR #3457 by @georgesittas):
improve transpilation of TABLESAMPLE clause (#3457)
`c3bb3da` - change python-version to 3.11 for build-rs *(commit by @georgesittas)*
c3bb3da - change python-version to 3.11 for build-rs (commit by @georgesittas)`cd8f568` - fix rust deployment workflow bug *(commit by @georgesittas)*
cd8f568 - fix rust deployment workflow bug (commit by @georgesittas)Nothing published for this version
Nothing published for this version
`130255e` - update rust *(commit by @tobymao)*
`116172a` - add support for ON property in ALTER and DROP statements *(PR #3450 by @GaliFFun)*
116172a - add support for ON property in ALTER and DROP statements (PR #3450 by @GaliFFun)aa104fd - add semi colon comments (commit by @tobymao)2c62267 - bigquery: fix SHA1 generator (PR #3453 by @viplazylmht)
fb3dea9 - clickhouse: fix parsing and generating hash functions (PR #3454 by @viplazylmht)
b76dfda - snowflake: COPY Subquery postfix (PR #3449 by @VaggelisD)
`33ac4fc` - add create view tsql *(commit by @tobymao)*
due to `9338ebc` - tsql drop view no catalog *(commit by @tobymao)*:
80670bb - snowflake: Support for APPROX_PERCENTILE (PR #3426 by @VaggelisD)
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)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)
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)30f9d30 - bump ruff to 0.4.3 (PR #3430 by @georgesittas)91bed56 - test 3.12 (commit by @tobymao)due to `258ad3b` - parse column instead of identifier for SET assignment LHS *(PR #3417 by @georgesittas)*:
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)
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)
ea197ea - snowflake: ensure OBJECT_CONSTRUCT is not generated inside of VALUES (PR #3419 by @georgesittas)`4dbcd4f` - refactor publish workflow for sqlglotrs releasing *(commit by @georgesittas)*
4dbcd4f - refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)`aa4f90a` - refactor publish workflow for sqlglotrs releasing *(commit by @georgesittas)*
aa4f90a - refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)`0deffd8` - refactor publish workflow for sqlglotrs releasing *(commit by @georgesittas)*
0deffd8 - refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)`5125732` - refactor publish workflow for sqlglotrs releasing *(commit by @georgesittas)*
5125732 - refactor publish workflow for sqlglotrs releasing (commit by @georgesittas)`0a36dd8` - fix should-deploy-rs bash condition *(commit by @georgesittas)*
0a36dd8 - fix should-deploy-rs bash condition (commit by @georgesittas)`fc979a0` - snowflake: make FILE_FORMAT option always be uppercase in COPY INTO *(commit by @georgesittas)*
fc979a0 - snowflake: make FILE_FORMAT option always be uppercase in COPY INTO (commit by @georgesittas)1b5b77d - improve unsupported error documentation (PR #3406 by @georgesittas)fcb51af - release sqlglotrs only when Cargo.toml is updated (PR #3408 by @georgesittas)`2c2a788` - snowflake: COPY postfix *(PR #3398 by @VaggelisD)*
2c2a788 - snowflake: COPY postfix (PR #3398 by @VaggelisD)
due to `cc6259d` - Mark UDTF child scopes as ScopeType.SUBQUERY *(PR #3390 by @VaggelisD)*:
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)
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)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)
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)
477754c - trino: bring back TRIM parsing (PR #3385 by @georgesittas)
cc6259d - optimizer: Mark UDTF child scopes as ScopeType.SUBQUERY (PR #3390 by @VaggelisD)0d23b20 - allow joins in FROM expression parser (PR #3389 by @georgesittas)
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)`d2a6f16` - COPY TO/FROM statement *(PR #3359 by @VaggelisD)*
d2a6f16 - COPY TO/FROM statement (PR #3359 by @VaggelisD)f034ea0 - mysql: Transpile TimestampTrunc (PR #3367 by @VaggelisD)
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)
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)
b928f54 - don't mutate the AST when creating DDL scopes (PR #3371 by @georgesittas)`719d394` - add a test for quoted aliases *(commit by @tobymao)*
due to `c5ce47b` - Combine aggregate functions with orderby from WITHIN GROUP *(PR #3352 by @VaggelisD)*:
due to c5ce47b - Combine aggregate functions with orderby from WITHIN GROUP (PR #3352 by @VaggelisD):
Combine aggregate functions with orderby from WITHIN GROUP (#3352)
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)
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)
`68595eb` - edge case *(commit by @tobymao)*
`9cf6f4e` - don't allow any_token on reserved keywords *(commit by @tobymao)*
due to `290e408` - Preserve DPipe in simplify_concat *(PR #3317 by @VaggelisD)*:
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
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)
7f9cb2d - clickhouse: Add support for DATE_FORMAT / formatDateTime (PR #3329 by @VaggelisD)
61f5b12 - Introduce partition in exp.Table (PR #3327 by @VaggelisD)
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)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)`506760d` - redshift: unqualify unnest columns *(PR #3314 by @georgesittas)*
506760d - redshift: unqualify unnest columns (PR #3314 by @georgesittas)0450521 - get rid of 1st projection pad for leading comma formatting (PR #3308 by @georgesittas)due to `32cdc36` - allow unions to be limited directly and stop subquerying since… *(PR #3301 by @tobymao)*:
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 <value> IN (<query>) as a Subquery (PR #3304 by @georgesittas):
parse right-hand side of <value> IN (<query>) as a Subquery (#3304)
due to 75e0c69 - cast less aggressively (PR #3302 by @georgesittas):
cast less aggressively (#3302)
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)
1bc51df - teradata: handle transpile of quarter function (PR #3303 by @maureen-daum)4790414 - prql: Handle DESC with sort (PR #3299 by @fool1280)3c97d34 - parse right-hand side of <value> IN (<query>) 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)`eabb708` - prql: add filter, set operations *(PR #3291 by @fool1280)*
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)`942856d` - postgres: add COMMENT ON MATERIALIZED VIEW *(PR #3293 by @l-vincent-l)*
942856d - postgres: add COMMENT ON MATERIALIZED VIEW (PR #3293 by @l-vincent-l)fd24b27 - make exp.to_column more lenient (PR #3292 by @georgesittas)due to `6bba030` - transpile map retrieval to duckdb, transpile TRY_ELEMENT_AT *(PR #3277 by @georgesittas)*:
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)
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)
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)`e33fb01` - prql: Add support for TAKE *(PR #3258 by @fool1280)*
`803fc9e` - allow placeholders in units closes #3265 *(PR #3267 by @tobymao)*
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)
bc26e84 - optimizer: tweaks to date simplification (PR #3270 by @barakalon)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
due to `0919be5` - StrToUnix Hive parsing, Presto generation fixes *(PR #3225 by @georgesittas)*:
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
59f1d13 - oracle: Support for CONNECT BY [NOCYCLE] (PR #3238 by @VaggelisD)
12563ae - mvp for transpling sqlite's STRFTIME (PR #3242 by @georgesittas)
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)Nothing published for this version
Nothing published for this version
Nothing published for this version
`ed2c9e1` - move varchar max conversion to base *(commit by @tobymao)*
ed2c9e1 - move varchar max conversion to base (commit by @tobymao)e3b6139 - move comment from window function to Window expression (PR #3178 by @georgesittas)
a452276 - clickhouse: Fixing FORMAT being parsed as implicit alias (PR #3179 by @VaggelisD)
`42cf703` - redshift varchar(max) catch lower case *(commit by @tobymao)*
`bc8bc7f` - replace a nested child node with a list convenience *(commit by @tobymao)*
eaaeab0 - snowflake: Allow non-literal expressions too in DATE functions (PR #3167 by @VaggelisD)`32cc2be` - postgres: add support for materialized CTEs *(PR #3171 by @georgesittas)*
32cc2be - postgres: add support for materialized CTEs (PR #3171 by @georgesittas)
`931774d` - iterative connector sql *(commit by @tobymao)*
5e18d49 - fill in missing implementation details for replace(None) (PR #3166 by @georgesittas)
a0df28f - can't simplify null parens (commit by @tobymao)`e838713` - mysql: Support for multi arg GROUP_CONCAT *(PR #3150 by @VaggelisD)*
e838713 - mysql: Support for multi arg GROUP_CONCAT (PR #3150 by @VaggelisD)
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)
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)38b931e - pin ruff (commit by @tobymao)66a6284 - improve type hints of Query methods (PR #3148 by @georgesittas)due to `2b4952e` - desugar LOG2 and LOG10 by converting them into LOG *(PR #3139 by @georgesittas)*:
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)
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)
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)2b4952e - desugar LOG2 and LOG10 by converting them into LOG (PR #3139 by @georgesittas)
ebbf5a1 - copy sqlglot.svg in docs/ to also display logo in website (PR #3147 by @georgesittas)
due to `b1c8cac` - traverse union scopes iteratively *(PR #3112 by @georgesittas)*:
due to b1c8cac - traverse union scopes iteratively (PR #3112 by @georgesittas):
traverse union scopes iteratively (#3112)
88033da - test: add more passing tpcds tests (PR #3110 by @fool1280)804af34 - duckdb: add support for positional joins (PR #3111 by @georgesittas)
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)
c333017 - correctly generate ArrayJoin in various dialects (PR #3120 by @georgesittas)
12d72a6 - make the lineage sources dict type covariant (PR #3122 by @georgesittas)
b1c8cac - traverse union scopes iteratively (PR #3112 by @georgesittas)94b5a2f - athena: Fix CREATE TABLE properties, STRING data type (PR #3129 by @VaggelisD)
0ce9ef1 - improve parsing of storage provider setting in index params (commit by @georgesittas)`80b2320` - no recursion dfs *(PR #3105 by @tobymao)*
`46c9c2c` - snowflake: parse CREATE SEQUENCE *(PR #3072 by @tekumara)*
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)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)
cea7508 - lineage: simplify Node.walk() (PR #3098 by @rexledesma)ebe5a46 - executor: simplify column type inference (PR #3104 by @georgesittas)6c67a2b - reduce size of tpcds (commit by @tobymao)21e4fca - update dialect count in README to include Athena (commit by @georgesittas)`19e07f3` - initial commit prql *(commit by @tobymao)*
19e07f3 - initial commit prql (commit by @tobymao)13b64fd - more prql (commit by @tobymao)3d263aa - oracle: Support for INSERT hint (PR #3077 by @VaggelisD)
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)
4173ea2 - handle lineage of subqueries (PR #3075 by @tobymao)0ebce40 - redshift: don't transform multi-arg DISTINCT clause (PR #3079 by @georgesittas)due to `08bafbd` - handle unnesting groups closes #3056 *(PR #3058 by @tobymao)*:
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)
8662e31 - postgres: improve transpilation of JSON array unnesting (PR #3063 by @georgesittas)c9bde44 - Making parse_number & parse_string more lenient (PR #3064 by @VaggelisD)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)`1e25ec9` - test: handle NULL value in TPC-DS *(PR #3052 by @fool1280)*
1e25ec9 - test: handle NULL value in TPC-DS (PR #3052 by @fool1280)ad21b6b - test: add more passing tpc-ds test (PR #3053 by @fool1280)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)Your coding agent can read these notes before it upgrades. Set up the MCP server →