Package-level declarations
Types
Reports SQLDelight model-bound INSERT statements.
Reports adjacent top-level statements that are not separated by a blank line.
Reports configured words that should not appear in SQL source.
Reports multiline CASE expressions whose branch keywords do not start their own line.
Reports major clause keywords that do not start their own line.
Reports GROUP BY and ORDER BY clauses that mix ordinal and named references.
Reports mixed != and <> not-equal operators in the same file.
Reports ORDER BY clauses that mix explicit and implicit sort directions.
Reports repeated predicates on the same column that use different named parameters.
Reports single-table SELECT lists that mix qualified and unqualified references.
Reports set operations whose adjacent SELECT lists return different column counts.
Reports multiline CREATE TABLE constraints that do not start their own line.
Reports multiline WITH clauses whose CTE definitions do not start their own line.
Reports common SQL data type names that are not uppercase.
Reports join clauses that omit ON or USING instead of declaring CROSS JOIN.
Reports bare conditioned joins that should be written as INNER JOIN.
Reports UNION operators that do not explicitly specify ALL or DISTINCT.
Reports files that do not end with a newline.
Reports common SQL function names that are not uppercase.
Reports multiline GROUP BY clauses that do not put every grouping expression on its own line.
Reports SQLDelight grouped statements that mix read and write statements.
Reports SQLDelight grouped statement blocks that contain too many statements.
Reports SQLDelight imports that are not sorted by standard package groups.
Reports multiline INSERT column and VALUES lists that do not use one item per line.
Reports top-level JOIN clauses that do not start their own line in multiline statements.
Reports common SQL keywords that are not uppercase.
Reports CRLF and CR line endings.
Reports SQL literal tokens that are not uppercase.
Reports SQLDelight mapped type names that do not look like Kotlin type names.
Reports runs with more than one consecutive blank line.
Reports CASE expressions nested deeper than the configured limit.
Reports statements with too many JOIN clauses.
Reports non-blank lines that exceed the maximum line length.
Reports SELECT statements nested deeper than the configured subquery block depth.
Reports blank lines between a SQLDelight query label and its statement body.
Reports adjacent repeated semicolon tokens.
Reports DELETE statements without a top-level WHERE clause.
Reports SELECT DISTINCT(...) syntax.
Reports destructive DROP TABLE statements in SQLDelight migration files.
Reports duplicate SQLDelight imports.
Reports duplicate SQLDelight query or grouped statement labels in one file.
Reports redundant ELSE NULL branches in CASE expressions.
Reports top-level FROM and JOIN subqueries that should be written as CTEs.
Reports comma-separated FROM sources that should be written as explicit joins.
Reports blank lines before the first SQLDelight declaration or statement.
Reports comma tokens that lead a line in multiline SQL.
Reports whitespace before the first SQLDelight declaration or statement.
Reports LIKE patterns that start with a wildcard.
Reports NOT IN subqueries that do not exclude NULL values.
Reports OFFSET pagination, which should usually be replaced with keyset pagination.
Reports ordinal references in GROUP BY and ORDER BY clauses.
Reports repeated semicolon tokens with only whitespace between them.
Reports RIGHT JOIN clauses so queries can be written as LEFT JOIN.
Reports SELECT DISTINCT statements that also contain GROUP BY.
Reports SELECT * in CREATE VIEW definitions.
Reports result-column wildcards in SELECT lists.
Reports trailing commas at the end of SELECT clauses.
Reports table aliases that repeat the table name they alias.
Reports SELECT result aliases that repeat the source column name.
Reports spaces or tabs after dot tokens in qualified names.
Reports spaces or tabs after opening parenthesis tokens.
Reports spaces or tabs before closing parenthesis tokens.
Reports spaces or tabs before comma tokens.
Reports spaces or tabs before dot tokens in qualified names.
Reports spaces or tabs between common SQL function names and their opening parenthesis.
Reports spaces or tabs before semicolon tokens.
Reports quoted identifiers that contain characters outside portable SQL names.
Reports tab characters in leading indentation.
Reports blank lines after the last SQLDelight declaration or statement.
Reports trailing spaces and tabs.
Reports explicit transaction statements in SQLDelight migration files.
Reports qualified column references whose qualifier is not visible in FROM.
Reports redundant statement-level parentheses around top-level SELECT statements.
Reports common table expressions that are not referenced by the main query.
Reports JOIN sources that are not referenced by later qualified column reads.
Reports UPDATE statements without a top-level WHERE clause.
Reports wildcard SQLDelight imports.
Reports comparison and binary operators that lead a line in multiline SQL.
Reports multiline ORDER BY clauses that do not put every ordering expression on its own line.
Reports named SQLDelight parameters that are not lower camel case.
Reports simple column predicates whose SQLDelight parameter names do not match the column name.
Reports simple inclusive range predicates that can be written with BETWEEN.
Reports IFNULL and NVL calls that can be written as COALESCE.
Reports row-counting calls that use COUNT(1) or COUNT(0) instead of COUNT(*).
Reports COUNT comparisons that are only checking for existence.
Reports INSERT statements that rely on table column order.
Reports anonymous SQLDelight parameters that should use named parameters.
Reports CASE expressions that map a predicate directly to boolean literals.
Reports query labels whose leading verb does not match the labeled statement.
Reports SQLDelight query labels that are not lower camel case.
Reports repeated visible result names that should be disambiguated with aliases.
Reports SELECT result column aliases that omit the AS keyword.
Reports ORDER BY items with explicit direction but no explicit NULL ordering.
Reports parameterized LIKE predicates that do not declare an ESCAPE clause.
Reports top-level SELECT statements that use LIMIT or OFFSET without ORDER BY.
Reports predicates that mix same-level AND and OR without explicit grouping.
Reports executable SQLDelight statements in .sq files that are not introduced by a query label.
Reports computed SELECT targets that do not have a result column alias.
Reports table aliases that omit the AS keyword.
Reports FROM and JOIN subqueries that do not declare a table alias.
Reports common function-wrapped WHERE predicates that are hard to use with indexes.
Reports result column aliases that are not snake case.
Reports multiline SELECT list commas that are not trailing the previous target.
Reports SELECT modifiers that are split onto another line.
Reports multiline SELECT lists that do not put every target on its own line.
Reports set operators that are not placed at the start of their own line.
Reports SQL lines whose indentation does not match their source structure.
Reports block comments whose opening marker is not followed by a space.
Reports missing or repeated spaces after comma tokens on the same line.
Reports line comments whose -- marker is not followed by a space.
Reports common binary arithmetic and concatenation operators without one space on both sides.
Reports comparison operators without exactly one space on both sides.
Reports block comments whose closing marker is not preceded by a space.
Reports SQL statements that are not terminated by a semicolon.
Reports duplicate SELECT result column aliases within the same SELECT list.
Reports duplicate table aliases within the same SQL statement.
Reports equality comparisons to NULL that should use IS NULL or IS NOT NULL.
Reports CREATE VIEW names that are not snake case.
Reports multiline WHERE predicates whose same-level boolean operators do not start their own line.