rusackas
3265f42418
test(sql): cover mysql/snowflake in SHOW-statement FORCE_LIMIT regression test
...
Parametrize the regression test over engines whose sqlglot dialect
parses SHOW into a real exp.Show node (starrocks, mysql, snowflake),
not just starrocks, since the fix guards on AST node type rather than
dialect and any of these engines is equally exposed.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-29 18:29:14 -07:00
Claude Code
b0fd51fe24
test(sql): SHOW statements must not get a forced LIMIT ( #36939 )
...
set_limit_value's FORCE_LIMIT path unconditionally sets
_parsed.args["limit"] on any statement, including SHOW TABLES/
DATABASES/CREATE TABLE. sqlglot's Show expression has no real LIMIT
slot to hold that value, so it renders a malformed statement with two
LIMIT keywords instead of rejecting cleanly. StarRocks (and likely
other engines using FORCE_LIMIT) reject the result outright, which is
exactly the "Unexpected input 'LIMIT'" error reported in #36939 for
SHOW TABLES / SHOW DATABASES / SHOW CREATE TABLE.
This is unrelated to the other two statements in that issue (REFRESH
EXTERNAL TABLE, DROP ... FORCE) — those fail to parse at the sqlglot
layer entirely, confirmed still true against the pinned sqlglot
30.12.0 for every dialect tried, not just starrocks. That's an
upstream sqlglot dialect gap, not something fixable in this repo, so
it's out of scope here.
This is a test-only PR; the test is expected to be RED (confirms the
bug, does not fix it). Not using a closing keyword since merging this
alone won't resolve #36939 .
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-07-29 16:31:09 -07:00
Ramachandran A G
bcf0361a91
feat(KustoKQL): Add support for NULL / IS NOT NULL operator ( #37890 )
...
Co-authored-by: ag-ramachandran <ramacg@microsoft.com >
Co-authored-by: Joe Li <joe@preset.io >
2026-07-23 18:28:37 -07:00
Damian Pendrak
1392fbc9b2
fix(sql): validate Custom SQL metric has an aggregate under GROUP BY ( #42199 )
2026-07-22 09:28:57 +02:00
Evan Rusackas
666b6805c4
test(sql): prove Oracle GROUP BY stays explicit for virtual-dataset charts ( #42255 )
...
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com >
2026-07-21 09:59:34 -07:00
Evan Rusackas
7b0969131f
test(sql): prove ClickHouse parametric aggregates parse cleanly ( #37285 ) ( #41836 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-07-07 08:53:49 -07:00
Evan Rusackas
de5a31a2cf
test(sql): prove Oracle GROUP BY is no longer rewritten to ordinals ( #35414 ) ( #41834 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-07-07 08:53:05 -07:00
Evan Rusackas
2aa43f6f0f
fix(sql): stop sanitize_clause from rewriting user SQL semantics ( #36113 ) ( #41125 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-07-06 18:03:26 -07:00
Shaitan
2da2db6c7c
feat(sql): schema-qualified table denylist + information_schema/lo_* defaults ( #41120 )
...
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-01 16:57:45 +01:00
Shaitan
3651020014
fix(sql): cap parser input length via SQL_MAX_PARSE_LENGTH config ( #40499 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
Co-authored-by: sha174n <pedro.sousa@preset.io >
Co-authored-by: Evan Rusackas <evan@preset.io >
2026-07-01 16:32:12 +01:00
Shaitan
215b207ae4
fix(sql): detect set operations and nested selects in subquery check ( #38452 )
...
Co-authored-by: sha174n <pedro.sousa@preset.io >
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-06-22 20:27:32 -07:00
Jean Dupuis
b2e5f80db2
fix(sql): preserve multi-arg DISTINCT in sanitize_clause and format ( #39340 )
2026-06-19 13:02:50 -07:00
Shaitan
6a1091d576
fix(sql): broaden mutating-statement detection in SQL Lab parser ( #40421 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
Co-authored-by: sha174n <pedro.sousa@preset.io >
2026-06-16 15:07:34 -07:00
Evan Rusackas
b85a2cdab1
fix: ODPS (MaxCompute) data source table preview failed ( #38174 )
...
Co-authored-by: zhutong6688 <zhutong66@163.com >
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com >
2026-06-05 17:57:44 -07:00
Shaitan
56fd991efd
fix(dataset): unify validation for stored and adhoc SQL expressions ( #40392 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-03 12:55:50 +01:00
Shaitan
f7f50a7977
fix(sqllab): quote CTAS target identifiers and validate tmp_table_name format ( #40245 )
...
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-03 12:55:25 +01:00
Shaitan
6eaee211aa
fix(sqllab): require dataset match for raw query access ( #40409 )
...
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com >
2026-06-02 21:50:27 +01:00
Evan Rusackas
b97d3ef520
fix(api,sql): use json_response in Api.query and log dialect fallback ( #40644 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-06-02 11:48:46 -07:00
Evan Rusackas
c39a47cbac
test(sql-parser): pin WITH+UNION as non-mutating across dialects ( #25659 ) ( #40138 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-20 10:08:21 -07:00
Alexandru Soare
b98bd2a07a
fix(mcp): Block destructive DDL (DROP, TRUNCATE, ALTER) in execute_sql ( #39621 )
2026-05-20 14:29:15 +03:00
Evan Rusackas
b5ad4a7a07
test(sql-parser): pin TimescaleDB hyperfunctions parse on postgresql ( #32028 ) ( #40142 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-19 19:53:33 -07:00
Evan Rusackas
9bfa0642a1
test(sql-parser): pin quoted identifiers with spaces are not subqueries ( #32541 , #32684 ) ( #40143 )
...
Co-authored-by: Claude Code <noreply@anthropic.com >
2026-05-18 14:21:59 -07:00
Luiz Otavio
0b419a07f5
fix: add comments to SQL clause validation ( #39167 )
2026-04-16 09:19:39 -03:00
Beto Dealmeida
a854fa60a2
feat: apply RLS conservatively ( #38683 )
2026-03-17 10:20:09 -04: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
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
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
5ec8f9d886
chore: bump sqlglot to 27.15.2 ( #35176 )
2025-09-22 12:40:16 -04: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
Đỗ Trọng Hải
1a54b761c1
feat(db): remove Rockset DB support ( #33929 )
2025-06-27 23:12:54 +07:00
Beto Dealmeida
404f7c1043
feat: initial Dremio sqlglot dialect ( #33847 )
2025-06-20 12:05:45 -07: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
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
0fa3feb088
chore: remove parse_sql ( #33474 )
2025-05-27 18:03:55 -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
22fe985cfc
fix(firebolt): allow backslach escape for single quotes ( #32350 )
2025-02-24 11:12:34 -05: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