Skip to content

Dialect feature coverage ​

Generated by tools/coverage.py on 2026-10-02. Do not edit by hand.

Every probe is parsed by this grammar and by independent reference parsers (SQLGlot, ANTLR grammars-v4, pglast, sqlfluff). A feature is not "covered" just because our own grammar accepts our own probe.

Legend: yes implemented, no absent (tracked gap), n/a not applicable, - not observable.

Scores ​

DialectParentScoreImplemented / ApplicableAgrees with references
base (ANSI Core)none100.0%59 / 5928/29
postgresbase100.0%94 / 9452/52
mysqlbase100.0%80 / 8040/40
mariadbmysql100.0%83 / 8341/41
tsqlbase100.0%82 / 8241/42
oraclebase100.0%82 / 8241/43
db2base100.0%80 / 8031/41
sqlitebase100.0%64 / 6428/28
hivebase100.0%69 / 6934/35
sparkhive100.0%74 / 7436/38
databricksspark100.0%74 / 7437/38
snowflakebase100.0%82 / 8242/42
bigquerybase100.0%77 / 7735/37
redshiftbase100.0%74 / 7440/40
trinobase100.0%71 / 7134/36
athenatrino100.0%71 / 7135/36
duckdbbase100.0%79 / 7940/40
clickhousebase100.0%71 / 7132/36
flinkbase100.0%70 / 700/35
cockroachdbpostgres100.0%90 / 900/50
spannerbigquery100.0%72 / 720/33
teradatabase100.0%70 / 7031/35
hanabase100.0%83 / 830/41

Suspect probes ​

Our grammar accepts these, but no independent parser does. The grammar may be too loose, or the probe may not be real SQL.

  • base / cursor, asked: antlr, sqlfluff, sqlglot
  • tsql / security_label, asked: antlr, sqlfluff, sqlglot
  • oracle / create_operator, asked: sqlfluff, sqlglot
  • oracle / materialized_view_log, asked: sqlfluff, sqlglot
  • db2 / returning_clause, asked: sqlfluff
  • db2 / savepoint, asked: sqlfluff
  • db2 / procedural_block, asked: sqlfluff
  • db2 / prepared_statements, asked: sqlfluff
  • db2 / cursor, asked: sqlfluff
  • db2 / security_label, asked: sqlfluff
  • db2 / alter_set_options, asked: sqlfluff
  • db2 / index_rebuild, asked: sqlfluff
  • db2 / database_link, asked: sqlfluff
  • db2 / optimize_table, asked: sqlfluff
  • hive / show_statement, asked: sqlfluff, sqlglot
  • spark / procedural_block, asked: sqlfluff, sqlglot
  • spark / optimize_table, asked: sqlfluff, sqlglot
  • databricks / procedural_block, asked: sqlfluff, sqlglot
  • bigquery / returning_clause, asked: sqlfluff, sqlglot
  • bigquery / database_link, asked: sqlfluff, sqlglot
  • trino / prepared_statements, asked: sqlfluff, sqlglot
  • trino / database_link, asked: sqlfluff, sqlglot
  • athena / database_options, asked: sqlfluff, sqlglot
  • clickhouse / show_statement, asked: sqlfluff, sqlglot
  • clickhouse / alter_set_options, asked: sqlfluff, sqlglot
  • clickhouse / index_rebuild, asked: sqlfluff, sqlglot
  • clickhouse / optimize_table, asked: sqlfluff, sqlglot
  • teradata / procedural_block, asked: sqlfluff, sqlglot
  • teradata / cursor, asked: sqlfluff, sqlglot
  • teradata / alter_set_options, asked: sqlfluff, sqlglot
  • teradata / database_link, asked: sqlfluff, sqlglot

Confirmed gaps ​

Our grammar rejects these, but at least one independent parser accepts them. These are genuinely missing features.

None.

Feature matrix ​

Feature (ISO, weight)basepostgresmysqlmariadbtsqloracledb2sqlitehivesparkdatabrickssnowflakebigqueryredshifttrinoathenaduckdbclickhouseflinkcockroachdbspannerteradatahana
select_basic (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
cte (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
recursive_cte (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
window_functions (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
grouping_sets (n/a, 1)yesyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
rollup (n/a, 1)yesyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
offset_fetch (n/a, 1)yesyesn/an/ayesyesyesn/an/an/an/ayesn/ayesyesyesyesn/ayesyesn/an/an/a
limit_offset (n/a, 3)noyesyesyesn/an/an/ayesyesyesyesyesyesyesyesyesyesyesyesyesyesn/ayes
qualify_clause (n/a, 1)non/an/an/an/an/an/an/an/ayesyesyesyesn/an/an/ayesyesn/an/an/ayesn/a
lateral_join (n/a, 1)yesyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
tablesample (n/a, 1)yesyesn/an/ayesyesyesn/ayesyesyesyesyesyesyesyesyesyesyesn/ayesn/ayes
set_operations (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
distinct_on (n/a, 1)noyesn/an/an/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/ayesn/an/an/a
insert_values (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
update_where (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
delete_where (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
merge_statement (n/a, 3)yesyesn/an/ayesyesyesn/ayesyesyesyesyesyesyesyesyesn/ayesn/an/ayesyes
returning_clause (n/a, 3)noyesn/ayesyesyesyesyesn/an/an/ayesyesn/an/an/ayesyesn/ayesyesn/an/a
upsert (n/a, 3)noyesyesyesn/an/an/ayesn/an/an/an/an/an/an/an/ayesn/ayesyesyesn/ayes
locking_clause (n/a, 3)noyesyesyesyesyesyesn/an/an/an/ayesn/an/ayesyesn/an/an/ayesyesn/ayes
truncate (n/a, 1)yesyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
create_table (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
alter_table_add_column (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
create_view (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
materialized_view (n/a, 1)noyesn/an/ayesyesn/an/ayesyesyesyesyesyesyesyesyesyesyesyesyesn/ayes
comment_on (n/a, 1)noyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesyesn/ayesyesyesyesyes
create_index (n/a, 3)noyesyesyesyesyesyesyesn/an/an/an/ayesn/an/an/ayesyesn/ayesyesyesyes
create_temporary_table (n/a, 1)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesn/ayesyes
transactions (n/a, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
savepoint (n/a, 1)yesyesyesyesyesyesyesyesn/an/an/ayesn/ayesn/an/ayesn/an/ayesn/ayesyes
grant_revoke (n/a, 1)yesyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesyesyesn/ayesyesyesyes
explain (n/a, 1)noyesyesyesn/ayesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
show_statement (n/a, 1)noyesyesyesn/an/an/an/ayesyesyesyesn/an/ayesyesyesyesyesyesn/an/an/a
procedural_block (n/a, 3)non/ayesyesyesyesyesn/an/ayesyesyesyesn/an/an/an/an/an/an/an/ayesyes
prepared_statements (n/a, 1)noyesyesyesn/an/ayesn/an/an/an/an/an/ayesyesyesyesn/an/ayesn/an/an/a
quantified_comparison (E061-07, 1)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
like_escape (E061-05, 1)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
typed_temporal_literal (F051-03, 1)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
datetime_value_function (F051-06, 1)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
cast_expression (F201, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
case_expression (F261, 3)yesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyesyes
cursor (E121, 1)yesyesyesyesyesyesyesn/an/an/an/ayesn/ayesn/an/an/an/an/ayesn/ayesyes
reindex (n/a, 1)noyesn/an/an/an/an/ayesn/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
cluster_table (n/a, 1)noyesn/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
discard (n/a, 1)noyesn/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
security_label (n/a, 1)noyesn/an/ayesn/ayesn/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
import_foreign_schema (n/a, 1)noyesn/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
create_operator (n/a, 1)noyesn/an/an/ayesn/an/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
create_rule (n/a, 1)noyesn/an/ayesn/an/an/an/an/an/an/an/an/an/an/an/an/an/ayesn/an/an/a
cache_table (n/a, 1)non/an/an/an/an/an/an/an/ayesyesn/an/an/an/an/an/an/an/an/an/an/an/a
alter_set_options (n/a, 2)noyesyesyesyesyesyesn/ayesyesyesyesyesyesyesyesn/ayesyesyesyesyesyes
index_rebuild (n/a, 1)non/an/an/ayesyesyesn/an/an/an/an/an/an/an/an/an/ayesn/an/an/an/ayes
database_options (n/a, 1)noyesyesyesyesyesn/an/ayesyesyesyesn/ayesn/ayesn/ayesyesyesn/ayesn/a
bulk_load (n/a, 2)noyesyesyesyesn/an/an/ayesyesyesyesyesyesn/an/ayesn/an/ayesn/an/ayes
materialized_view_log (n/a, 1)non/an/an/an/ayesn/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/an/a
database_link (n/a, 1)noyesyesyesyesyesyesn/an/an/an/ayesyesyesyesn/an/an/ayesyesn/ayesyes
optimize_table (n/a, 1)non/ayesyesn/ayesyesyesyesyesyesn/an/ayesn/an/an/ayesn/an/an/an/ayes
commit_synonym (n/a, 1)noyesn/an/an/an/an/ayesn/an/an/an/an/ayesn/an/an/an/an/ayesn/an/an/a
sqlstate (E171, 1)-----------------------
host_language_binding (E182, 1)-----------------------

ANSI purity (base grammar) ​

No purity violations.