Claude Code
925e20bb04
fix(odps): address review feedback - security, recursion, typing, tests
...
- Move security check before ODPS partition detection (auth before backend calls)
- Wrap is_odps_partitioned_table in try/except with warning log and fallback
- Replace OdpsBaseEngineSpec.get_table_metadata body with NotImplementedError
- Fix select_star signature: engine: Engine -> dialect: Dialect (matches base)
- Update Optional[X] -> X | None for modern Python typing
- Remove broken __eq__ that violated frozen dataclass hash contract
- Fix Partition docstring typos and __str__ description
- Add warning log when ODPS URI does not match expected pattern
- Add tests/unit_tests/db_engine_specs/test_odps.py with 7 unit tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 14:00:48 -07:00
Evan Rusackas
a1bf361fe2
fix: ODPS (MaxCompute) data source table preview failed
...
When using the ODPS (MaxCompute) data source, previewing partitioned
tables in SQLLab would fail because ODPS requires a partition to be
specified for partition tables.
This PR adds ODPS-specific handling:
- New OdpsEngineSpec with partition detection support
- Modified select_star to add partition filter for ODPS partition tables
- New Partition dataclass in sql/parse.py
- New is_odps_partitioned_table method in DatabaseDAO
Closes #32301
Co-Authored-By: zhutong6688 <zhutong66@163.com >
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-03-11 13:55:33 -07:00
HY Chang
3cb00bf116
feat(database): add Google Cloud Datastore db engine spec ( #37677 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-03-06 16:40:17 -08:00
Michael S. Molina
c41942a38a
chore(deps): Upgrade sqlglot from 27.15.2 to 28.10.0 ( #37841 )
2026-02-10 13:13:11 -03:00
Amin Ghadersohi
15b3c96f8e
fix(security): Add table blocklist and fix MCP SQL validation bypass ( #37411 )
2026-02-09 14:12:06 +01:00
Evan Rusackas
87bbd54d0a
feat(examples): Transpile virtual dataset SQL on import ( #37311 )
...
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net >
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
2026-01-22 09:50:05 -08:00
ankitajhanwar2001
d8f7ae83ee
fix(sqlglot): use Athena dialect for awsathena parsing ( #36747 )
2026-01-12 10:06:46 -08:00
Evan Rusackas
c7a4d4f2cc
fix(sql): handle backtick-quoted identifiers with base dialect ( #36545 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-15 13:00:13 -08:00
Beto Dealmeida
e4cb84bc02
feat: DB2 dialect for sqlglot ( #36365 )
2025-12-02 12:19:52 -05:00
amaannawab923
186693b840
feat(ag-grid): add SQLGlot-based SQL escaping for where and having filter clauses ( #36136 )
2025-11-25 09:35:40 +02:00
Beto Dealmeida
f3e620cd0f
fix: RLS in virtual datasets ( #36061 )
2025-11-14 14:21:09 -05:00
Vitor Avila
6701d0ae0c
fix: Use singlestoredb dialect for sqlglot ( #36096 )
2025-11-13 16:10:55 -03:00
Beto Dealmeida
62dc5c0306
fix(cache): ensure SQL is sanitized before cache key generation ( #35419 )
2025-10-02 13:25:54 -04:00
Beto Dealmeida
5428376662
fix(pinot): DATE_ADD function ( #35424 )
2025-10-02 09:56:20 -04:00
Beto Dealmeida
4e093a8e2a
feat: sqlglot dialect for Pinot ( #35333 )
2025-09-29 21:56:35 -04:00
Evan Rusackas
7fb7ac8bef
fix(sql): Add Impala dialect support to sqlglot parser ( #34662 )
...
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Joe Li <joe@preset.io >
2025-09-04 11:07:09 -07:00
Michael S. Molina
e1234b2264
fix: User-provided Jinja template parameters causing SQL parsing errors ( #34802 )
2025-08-22 14:39:14 -03:00
Beto Dealmeida
6fc734da51
fix: prevent anonymous code in Postgres ( #34412 )
2025-07-31 08:33:34 -04:00
Beto Dealmeida
122bb68e5a
fix: subquery alias in RLS ( #34374 )
2025-07-28 22:58:15 -04:00
Beto Dealmeida
8df5860826
chore: bump sqlglot to latest version (27.3.0) ( #34302 )
2025-07-24 15:38:29 -07:00
Beto Dealmeida
b794b192d1
fix: return 422 on invalid SQL ( #34303 )
2025-07-24 16:40:56 -04:00
Beto Dealmeida
efa8cb6fa4
chore: improve sqlglot parsing ( #34270 )
2025-07-24 10:50:59 -04:00
Beto Dealmeida
5a32777dd0
chore: remove unnecessary disables ( #34139 )
2025-07-11 11:25:02 -04:00
Đỗ Trọng Hải
1a54b761c1
feat(db): remove Rockset DB support ( #33929 )
2025-06-27 23:12:54 +07:00
Beto Dealmeida
2cc1ef88c8
chore: use mysql dialect for Pinot ( #33848 )
2025-06-20 12:11:42 -07:00
Beto Dealmeida
404f7c1043
feat: initial Dremio sqlglot dialect ( #33847 )
2025-06-20 12:05:45 -07:00
Beto Dealmeida
2f007bf7a5
fix: typo in SQL dialect map ( #33727 )
2025-06-09 17:03:31 -04:00
Beto Dealmeida
b00660acf1
chore: update sqlglot dialect map ( #33701 )
2025-06-05 13:14:44 -04:00
Beto Dealmeida
edc60914f6
chore: 100% test coverage for SQL parsing ( #33568 )
2025-06-04 22:18:09 -04:00
Beto Dealmeida
a26e1d822a
chore: remove sqlparse ( #33564 )
2025-06-04 19:31:41 -04:00
Adalbert Makarovych
ade85daee2
feat(database): add SingleStore engine specification ( #32887 )
...
Co-authored-by: Adalbert Makarovych <amakarovych0ua@singlestore.com >
Co-authored-by: Evan Rusackas <evan@preset.io >
2025-06-02 11:50:12 -06:00
Beto Dealmeida
401ce56fa1
feat: use sqlglot to validate adhoc subquery ( #33560 )
2025-05-30 18:09:19 -04:00
Beto Dealmeida
cf315388f2
feat(sqllab): use sqlglot instead of sqlparse ( #33542 )
2025-05-30 17:08:19 -04:00
Beto Dealmeida
ea5a609d0b
feat: implement CVAS/CTAS in sqlglot ( #33525 )
2025-05-28 09:45:59 -04:00
Beto Dealmeida
0abe6eed89
feat: implement RLS in sqlglot ( #33524 )
2025-05-28 09:10:45 -04:00
Beto Dealmeida
e205846845
feat: implement CTEs logic in sqlglot ( #33518 )
2025-05-28 08:38:00 -04:00
Beto Dealmeida
1393f7d3d2
chore: sql/parse cleanup ( #33515 )
2025-05-27 16:42:04 -04:00
Beto Dealmeida
8de58b9848
feat: use sqlglot to set limit ( #33473 )
2025-05-27 15:20:02 -04:00
Beto Dealmeida
adeed60fe0
feat: implement limit extraction in sqlglot ( #33456 )
2025-05-22 20:09:36 -04:00
Beto Dealmeida
339ba96600
fix: improve function detection ( #33306 )
2025-05-01 13:45:03 -04:00
Michael S. Molina
687f762457
refactor: Removes the legacy dataset editor ( #31976 )
2025-01-24 14:52:22 -03:00
Beto Dealmeida
4ca5846c7f
feat: old Firebolt dialect ( #31849 )
2025-01-15 09:02:37 -05:00
Beto Dealmeida
c2d7cf388d
feat: Firebolt sqlglot dialect ( #31825 )
2025-01-14 09:36:25 -05:00
Beto Dealmeida
e4b3ecd372
feat: push predicates into virtual datasets ( #31486 )
2025-01-08 22:11:28 -05:00
Maxime Beauchemin
e51b95ffa8
chore: enforce more ruff rules ( #31447 )
...
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com >
2024-12-18 17:41:34 -08:00
Oleg Ovcharuk
48c5ee4f8b
fix: Use clickhouse sqlglot dialect for YDB ( #31323 )
2024-12-07 12:58:23 -08:00
Beto Dealmeida
4cac7feb67
feat: use dialect when tokenizing ( #30614 )
2024-10-15 14:32:02 -04:00
Beto Dealmeida
47c1e09c75
fix: sqlparse fallback for formatting queries ( #30578 )
2024-10-11 15:45:40 -04:00
Beto Dealmeida
cc9fd88c0d
chore: improve DML check ( #30417 )
2024-09-27 15:26:36 -04:00
Beto Dealmeida
bdf29cb7c2
chore: organize SQL parsing files ( #30258 )
2024-09-13 16:24:19 -04:00