{
  "$schema": "https://docs.sqlparser.com/capabilities/v1/schema/dialect.schema.json",
  "dialect": "odbc",
  "display_name": "ODBC",
  "aliases": [],
  "product": "General SQL Parser",
  "edition": "java",
  "version": "4.1.9",
  "measured_at": "2026-08-03T03:25:59.446114891Z",
  "provenance": {
    "kind": "measured",
    "artifact_sha256": "9bf7ca575030",
    "corpus_commit": "8bce26814",
    "corpus_files": 22,
    "methodology_url": "https://docs.sqlparser.com/reference/sql-syntax/#methodology"
  },
  "parse_coverage": {
    "kind": "measured",
    "note": "Pass rates are over GSP's documented-example corpus for this dialect, not a percentage of the entire SQL dialect.",
    "constructs": {"passed": 19, "total": 22},
    "statements": {"passed": 61, "total": 68},
    "statement_classes": {
      "select": {"constructs": {"passed": 14, "total": 15}, "statements": {"passed": 41, "total": 42}},
      "dml": {"constructs": {"passed": 7, "total": 8}, "statements": {"passed": 15, "total": 16}},
      "stored_procedures": {"constructs": {"passed": 0, "total": 0}, "statements": {"passed": 0, "total": 0}}
    }
  },
  "keywords": {
    "kind": "measured",
    "measured_at": "2026-07-29T23:46:37Z",
    "total": 469,
    "allowed_as_identifier": 429,
    "context_specific": 2,
    "blocked": 38,
    "details_url": "https://docs.sqlparser.com/reference/sql-syntax/odbc/keyword-compatibility/"
  },
  "docs_url": "https://docs.sqlparser.com/reference/sql-syntax/odbc/",
  "constructs": [
    {"name": "ESCAPE PROCEDURE CALL", "category": "CALL", "passed": 2, "total": 4, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/procedure-calls"},
    {"name": "ESCAPE PROCEDURE CALL RETURN", "category": "CALL", "passed": 0, "total": 3, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/procedure-call-escape-sequence"},
    {"name": "CREATE TABLE", "category": "CREATE", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-minimum-grammar"},
    {"name": "DELETE", "category": "DELETE", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-minimum-grammar"},
    {"name": "PARAMETER MARKERS", "category": "DML", "passed": 4, "total": 4, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/parameter-markers"},
    {"name": "DROP TABLE", "category": "DROP", "passed": 1, "total": 1, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-minimum-grammar"},
    {"name": "INSERT", "category": "INSERT", "passed": 3, "total": 3, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-minimum-grammar"},
    {"name": "ESCAPE CONVERT FUNCTION", "category": "SELECT", "passed": 2, "total": 4, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/explicit-data-type-conversion-function"},
    {"name": "ESCAPE DATE LITERAL", "category": "SELECT", "passed": 3, "total": 3, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/date-time-and-timestamp-literals"},
    {"name": "ESCAPE INTERVAL LITERAL", "category": "SELECT", "passed": 4, "total": 4, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/interval-literals"},
    {"name": "ESCAPE LIKE PREDICATE", "category": "SELECT", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/like-predicate-escape-character"},
    {"name": "ESCAPE NUMERIC FUNCTIONS", "category": "SELECT", "passed": 5, "total": 5, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/numeric-functions"},
    {"name": "ESCAPE OUTER JOIN", "category": "SELECT", "passed": 3, "total": 3, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/outer-joins"},
    {"name": "ESCAPE OUTER JOIN NESTED", "category": "SELECT", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/outer-join-escape-sequence"},
    {"name": "ESCAPE SCALAR FUNCTION", "category": "SELECT", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/scalar-function-calls"},
    {"name": "ESCAPE STRING FUNCTIONS", "category": "SELECT", "passed": 5, "total": 5, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/string-functions"},
    {"name": "ESCAPE TIME LITERAL", "category": "SELECT", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/date-time-and-timestamp-literals"},
    {"name": "ESCAPE TIMEDATE FUNCTIONS", "category": "SELECT", "passed": 5, "total": 5, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/time-date-and-interval-functions"},
    {"name": "ESCAPE TIMESTAMP LITERAL", "category": "SELECT", "passed": 2, "total": 2, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/date-time-and-timestamp-literals"},
    {"name": "SELECT", "category": "SELECT", "passed": 4, "total": 4, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-minimum-grammar"},
    {"name": "SELECT_GROUP_BY", "category": "SELECT", "passed": 3, "total": 3, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/syntax/sqlgetinfo-function"},
    {"name": "UPDATE", "category": "UPDATE", "passed": 3, "total": 3, "source": "https://learn.microsoft.com/en-us/sql/odbc/reference/appendixes/sql-minimum-grammar"}
  ]
}
