Checks that SQL parses in the given dialect and, optionally, applies stricter syntax rules, semantic lint warnings, and schema-aware checks.
Arguments
- sql
A single character string with one or more SQL statements (separated by
;).- dialect
Dialect used for parsing.
- ...
Additional validation options:
strict_syntax— reject non-canonical syntax the parser would accept for compatibility (e.g. trailing commas beforeFROM); defaultFALSE.semantic— report query-quality warnings (W001–W004, e.g.SELECT *mixed with explicit columns); defaultFALSE.schema— a schema specification (seeas_polyglot_schema()); enables unknown-table/column, type and reference checks.error— ifTRUE, raise apolyglot_validation_errorinstead of returning an invalid result; defaultFALSE.
Value
A polyglot_validation object: a list with valid (logical) and
errors (data frame with columns severity, code, message, line,
column).
Examples
sql_validate("SELECT a FROM t")
#> <polyglot_validation> valid (generic)
sql_validate("SELECT FROM WHERE")
#> <polyglot_validation> invalid (generic)
#> [E003] Expected table name or subquery, got Where at 1:18
v <- sql_validate("SELECT a, FROM t", strict_syntax = TRUE)
v$valid
#> [1] FALSE