Package-level declarations

Types

Link copied to clipboard

Reports SQLDelight model-bound INSERT statements.

Link copied to clipboard

Reports adjacent top-level statements that are not separated by a blank line.

Link copied to clipboard

Reports configured words that should not appear in SQL source.

Link copied to clipboard

Reports multiline CASE expressions whose branch keywords do not start their own line.

Link copied to clipboard

Reports major clause keywords that do not start their own line.

Link copied to clipboard

Reports GROUP BY and ORDER BY clauses that mix ordinal and named references.

Link copied to clipboard

Reports mixed != and <> not-equal operators in the same file.

Link copied to clipboard

Reports ORDER BY clauses that mix explicit and implicit sort directions.

Link copied to clipboard

Reports repeated predicates on the same column that use different named parameters.

Link copied to clipboard

Reports single-table SELECT lists that mix qualified and unqualified references.

Link copied to clipboard

Reports set operations whose adjacent SELECT lists return different column counts.

Link copied to clipboard

Reports multiline CREATE TABLE constraints that do not start their own line.

Link copied to clipboard

Reports multiline WITH clauses whose CTE definitions do not start their own line.

Link copied to clipboard

Reports common SQL data type names that are not uppercase.

Link copied to clipboard

Reports join clauses that omit ON or USING instead of declaring CROSS JOIN.

Link copied to clipboard

Reports bare conditioned joins that should be written as INNER JOIN.

Link copied to clipboard

Reports UNION operators that do not explicitly specify ALL or DISTINCT.

Link copied to clipboard

Reports files that do not end with a newline.

Link copied to clipboard

Reports common SQL function names that are not uppercase.

Link copied to clipboard

Reports multiline GROUP BY clauses that do not put every grouping expression on its own line.

Link copied to clipboard

Reports SQLDelight grouped statements that mix read and write statements.

Link copied to clipboard

Reports SQLDelight grouped statement blocks that contain too many statements.

Link copied to clipboard

Reports SQLDelight imports that are not sorted by standard package groups.

Link copied to clipboard

Reports multiline INSERT column and VALUES lists that do not use one item per line.

Link copied to clipboard

Reports top-level JOIN clauses that do not start their own line in multiline statements.

Link copied to clipboard

Reports common SQL keywords that are not uppercase.

Link copied to clipboard

Reports CRLF and CR line endings.

Link copied to clipboard

Reports SQL literal tokens that are not uppercase.

Link copied to clipboard

Reports SQLDelight mapped type names that do not look like Kotlin type names.

Link copied to clipboard

Reports runs with more than one consecutive blank line.

Link copied to clipboard

Reports CASE expressions nested deeper than the configured limit.

Link copied to clipboard

Reports statements with too many JOIN clauses.

Link copied to clipboard

Reports non-blank lines that exceed the maximum line length.

Link copied to clipboard

Reports SELECT statements nested deeper than the configured subquery block depth.

Link copied to clipboard

Reports blank lines between a SQLDelight query label and its statement body.

Link copied to clipboard

Reports adjacent repeated semicolon tokens.

Link copied to clipboard

Reports DELETE statements guarded by an obvious always-true predicate.

Link copied to clipboard

Reports DELETE statements without a top-level WHERE clause.

Link copied to clipboard

Reports SELECT DISTINCT(...) syntax.

Link copied to clipboard

Reports destructive DROP COLUMN operations in SQLDelight migration files.

Link copied to clipboard

Reports destructive DROP TABLE statements in SQLDelight migration files.

Link copied to clipboard

Reports duplicate SQLDelight imports.

Link copied to clipboard

Reports duplicate SQLDelight query or grouped statement labels in one file.

Link copied to clipboard

Reports redundant ELSE NULL branches in CASE expressions.

Link copied to clipboard

Reports top-level FROM and JOIN subqueries that should be written as CTEs.

Link copied to clipboard

Reports comma-separated FROM sources that should be written as explicit joins.

Link copied to clipboard

Reports blank lines before the first SQLDelight declaration or statement.

Link copied to clipboard

Reports comma tokens that lead a line in multiline SQL.

Link copied to clipboard

Reports whitespace before the first SQLDelight declaration or statement.

Link copied to clipboard

Reports LIKE patterns that start with a wildcard.

Link copied to clipboard

Reports NOT IN subqueries that do not exclude NULL values.

Link copied to clipboard

Reports OFFSET pagination, which should usually be replaced with keyset pagination.

Link copied to clipboard

Reports ordinal references in GROUP BY and ORDER BY clauses.

Link copied to clipboard

Reports repeated semicolon tokens with only whitespace between them.

Link copied to clipboard

Reports column rename operations in SQLDelight migration files.

Link copied to clipboard

Reports table rename operations in SQLDelight migration files.

Link copied to clipboard

Reports RIGHT JOIN clauses so queries can be written as LEFT JOIN.

Link copied to clipboard

Reports SELECT DISTINCT statements that also contain GROUP BY.

Link copied to clipboard

Reports SELECT * in CREATE VIEW definitions.

Link copied to clipboard

Reports result-column wildcards in SELECT lists.

Link copied to clipboard

Reports trailing commas at the end of SELECT clauses.

Link copied to clipboard

Reports table aliases that repeat the table name they alias.

Link copied to clipboard

Reports SELECT result aliases that repeat the source column name.

Link copied to clipboard

Reports spaces or tabs after dot tokens in qualified names.

Link copied to clipboard

Reports spaces or tabs after opening parenthesis tokens.

Link copied to clipboard

Reports spaces or tabs before closing parenthesis tokens.

Link copied to clipboard

Reports spaces or tabs before comma tokens.

Link copied to clipboard

Reports spaces or tabs before dot tokens in qualified names.

Link copied to clipboard

Reports spaces or tabs between common SQL function names and their opening parenthesis.

Link copied to clipboard

Reports spaces or tabs before semicolon tokens.

Link copied to clipboard

Reports quoted identifiers that contain characters outside portable SQL names.

Link copied to clipboard

Reports tab characters in leading indentation.

Link copied to clipboard

Reports blank lines after the last SQLDelight declaration or statement.

Link copied to clipboard

Reports trailing spaces and tabs.

Link copied to clipboard

Reports explicit transaction statements in SQLDelight migration files.

Link copied to clipboard

Reports SQLDelight query SELECTs that can read unbounded result sets.

Link copied to clipboard

Reports qualified column references whose qualifier is not visible in FROM.

Link copied to clipboard

Reports redundant statement-level parentheses around top-level SELECT statements.

Link copied to clipboard

Reports common table expressions that are not referenced by the main query.

Link copied to clipboard

Reports JOIN sources that are not referenced by later qualified column reads.

Link copied to clipboard

Reports UPDATE statements guarded by an obvious always-true predicate.

Link copied to clipboard

Reports UPDATE statements without a top-level WHERE clause.

Link copied to clipboard

Reports wildcard SQLDelight imports.

Link copied to clipboard

Reports comparison and binary operators that lead a line in multiline SQL.

Link copied to clipboard

Reports multiline ORDER BY clauses that do not put every ordering expression on its own line.

Link copied to clipboard

Reports named SQLDelight parameters that are not lower camel case.

Link copied to clipboard

Reports simple column predicates whose SQLDelight parameter names do not match the column name.

Link copied to clipboard

Reports simple inclusive range predicates that can be written with BETWEEN.

Link copied to clipboard

Reports IFNULL and NVL calls that can be written as COALESCE.

Link copied to clipboard

Reports row-counting calls that use COUNT(1) or COUNT(0) instead of COUNT(*).

Link copied to clipboard

Reports COUNT comparisons that are only checking for existence.

Link copied to clipboard

Reports INSERT statements that rely on table column order.

Link copied to clipboard

Reports fully qualified SQLDelight mapped type names that can use imports.

Link copied to clipboard

Reports anonymous SQLDelight parameters that should use named parameters.

Link copied to clipboard

Reports CASE expressions that map a predicate directly to boolean literals.

Link copied to clipboard

Reports query labels whose leading verb does not match the labeled statement.

Link copied to clipboard

Reports SQLDelight query labels that are not lower camel case.

Link copied to clipboard

Reports repeated visible result names that should be disambiguated with aliases.

Link copied to clipboard

Reports SELECT result column aliases that omit the AS keyword.

Link copied to clipboard

Reports ORDER BY items with explicit direction but no explicit NULL ordering.

Link copied to clipboard

Reports parameterized LIKE predicates that do not declare an ESCAPE clause.

Link copied to clipboard

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.

Link copied to clipboard

Reports executable SQLDelight statements in .sq files that are not introduced by a query label.

Link copied to clipboard

Reports computed SELECT targets that do not have a result column alias.

Link copied to clipboard

Reports table aliases that omit the AS keyword.

Link copied to clipboard

Reports FROM and JOIN subqueries that do not declare a table alias.

Link copied to clipboard

Reports common function-wrapped WHERE predicates that are hard to use with indexes.

Link copied to clipboard

Reports result column aliases that are not snake case.

Link copied to clipboard

Reports multiline SELECT list commas that are not trailing the previous target.

Link copied to clipboard

Reports SELECT modifiers that are split onto another line.

Link copied to clipboard

Reports multiline SELECT lists that do not put every target on its own line.

Link copied to clipboard

Reports set operators that are not placed at the start of their own line.

Link copied to clipboard

Reports SQL lines whose indentation does not match their source structure.

Link copied to clipboard

Reports block comments whose opening marker is not followed by a space.

Link copied to clipboard

Reports missing or repeated spaces after comma tokens on the same line.

Link copied to clipboard

Reports line comments whose -- marker is not followed by a space.

Link copied to clipboard

Reports common binary arithmetic and concatenation operators without one space on both sides.

Link copied to clipboard

Reports comparison operators without exactly one space on both sides.

Link copied to clipboard

Reports block comments whose closing marker is not preceded by a space.

Link copied to clipboard

Reports SQL statements that are not terminated by a semicolon.

Link copied to clipboard

Reports duplicate SELECT result column aliases within the same SELECT list.

Link copied to clipboard

Reports duplicate table aliases within the same SQL statement.

Link copied to clipboard

Reports equality comparisons to NULL that should use IS NULL or IS NOT NULL.

Link copied to clipboard

Reports CREATE VIEW names that are not snake case.

Link copied to clipboard

Reports multiline WHERE predicates whose same-level boolean operators do not start their own line.