Skip to content

refactor(bigquery)!: Extract and compile generator#7372

Merged
VaggelisD merged 2 commits intomainfrom
vaggelisd/extract_bigquery_generator
Mar 24, 2026
Merged

refactor(bigquery)!: Extract and compile generator#7372
VaggelisD merged 2 commits intomainfrom
vaggelisd/extract_bigquery_generator

Conversation

@VaggelisD
Copy link
Collaborator

@VaggelisD VaggelisD commented Mar 24, 2026

No description provided.

TRY_SUPPORTED, SUPPORTS_UESCAPE, and SUPPORTS_DECODE_CASE are set by
_Dialect.__new__ on generator subclasses. Without ClassVar, mypyc stores
them as getset descriptors which don't propagate correctly to interpreted
subclasses at runtime.
@github-actions
Copy link
Contributor

Benchmark Results

Legend: 🟢🟢 = 5%+ faster | 🟢 = 3-5% faster | 🟩 = 1-3% faster | ⚪ = unchanged | 🟧 = 1-3% slower | 🔴 = 3-5% slower | 🔴🔴 = 5%+ slower

sqlglot

Query main PR diff
tpch 3.1ms 3.1ms 0.2% faster
short 244us 243us 0.5% faster
deep_arithmetic 8.7ms 8.8ms 1.9% slower 🟧
large_in 468.5ms 473.3ms 1.0% slower 🟧
values 508.3ms 519.6ms 2.2% slower 🟧
many_joins 13.3ms 13.2ms 0.9% faster
many_unions 51.1ms 52.4ms 2.6% slower 🟧
nested_subqueries 1.7ms 1.7ms 0.9% slower
many_columns 14.0ms 14.7ms 5.0% slower 🔴
large_case 41.6ms 42.9ms 3.1% slower 🔴
complex_where 34.2ms 33.8ms 1.2% faster 🟩
many_ctes 20.2ms 20.1ms 0.9% faster
many_windows 24.9ms 26.4ms 6.2% slower 🔴🔴
nested_functions 887us 897us 1.1% slower 🟧
large_strings 6.1ms 6.2ms 1.4% slower 🟧
many_numbers 116.5ms 120.7ms 3.6% slower 🔴

sqlglot[c]

Query main PR diff
tpch 698us 679us 2.7% faster 🟩
short 70us 79us 13.1% slower 🔴🔴
deep_arithmetic 2.8ms 2.9ms 4.3% slower 🔴
large_in 118.8ms 117.3ms 1.2% faster 🟩
values 130.5ms 128.1ms 1.9% faster 🟩
many_joins 2.6ms 2.7ms 1.2% slower 🟧
many_unions 8.9ms 9.1ms 1.5% slower 🟧
nested_subqueries 262us 267us 2.0% slower 🟧
many_columns 3.1ms 3.1ms 0.7% faster
large_case 10.4ms 10.3ms 1.2% faster 🟩
complex_where 7.7ms 7.8ms 1.4% slower 🟧
many_ctes 3.7ms 3.6ms 1.4% faster 🟩
many_windows 5.3ms 5.3ms 0.7% faster
nested_functions 173us 173us 0.1% faster
large_strings 1.4ms 1.4ms 0.8% faster
many_numbers 27.2ms 27.0ms 0.5% faster

Comment /benchmark to re-run.

@VaggelisD VaggelisD changed the title refactor(bigquery): Extract and compile generator refactor(bigquery)!: Extract and compile generator Mar 24, 2026
@github-actions
Copy link
Contributor

SQLGlot Integration Test Results

Comparing:

  • this branch (sqlglot:vaggelisd/extract_bigquery_generator, sqlglot version: vaggelisd/extract_bigquery_generator)
  • baseline (main, sqlglot version: 0.0.1.dev1)

By Dialect

dialect main sqlglot:vaggelisd/extract_bigquery_generator transitions links
bigquery -> bigquery 23872/23877 passed (100.0%) 23872/23877 passed (100.0%) No change full result / delta
bigquery -> duckdb 2106/2624 passed (80.3%) 2106/2624 passed (80.3%) No change full result / delta
duckdb -> duckdb 4003/4004 passed (100.0%) 4003/4004 passed (100.0%) No change full result / delta
snowflake -> duckdb 1508/2674 passed (56.4%) 1508/2674 passed (56.4%) No change full result / delta
snowflake -> snowflake 65910/65910 passed (100.0%) 65910/65910 passed (100.0%) No change full result / delta
databricks -> databricks 1364/1364 passed (100.0%) 1364/1364 passed (100.0%) No change full result / delta
postgres -> postgres 6040/6040 passed (100.0%) 6040/6040 passed (100.0%) No change full result / delta
redshift -> redshift 7059/7059 passed (100.0%) 7059/7059 passed (100.0%) No change full result / delta

Overall

main: 113552 total, 111862 passed (pass rate: 98.5%), sqlglot version: 0.0.1.dev1

sqlglot:vaggelisd/extract_bigquery_generator: 113552 total, 111862 passed (pass rate: 98.5%), sqlglot version: vaggelisd/extract_bigquery_generator

Transitions:
No change

@VaggelisD VaggelisD merged commit d301233 into main Mar 24, 2026
11 of 13 checks passed
@VaggelisD VaggelisD deleted the vaggelisd/extract_bigquery_generator branch March 24, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants