Reference
All SDF Lint Rules, usage, and configuration
Exit Codes
By default, SDF exits with the following status codes
- 0 if no linter violations were found
- 0 if linter completes successfully with any number of linter warnings
- 64 if the linter fails for syntax reasons in any file
In CI/CD scenarios you may want to have the linter exit with a non-zero code if the linter finds any violations.
For this, SDF supports the -w error
flag which turns any lint warning into an error.
In sdf yml, you configure this as follows::
Capitalization Keywords
SDF107
Inconsistent capitalization of keywords
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
capitalization-keywords | SDF107 | L010 | ✅ |
Example: sdf lint -w capitalization-keywords=upper
Configuration:
Anti-pattern
Referencing keywords in inconsistent capitalization. All keywords should be either uppercase or lowercase, not both. Keywords are dialect-specific.
Best-practice
Capitalization Literals
SDF108
SDF109
Inconsistent capitalization of boolean
/null
literal
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
capitalization-literals | SDF108, SDF109 | L040 | ✅ |
Example: sdf lint -w capitalization-literals=upper
Configuration:
Anti-pattern
Referencing literals in inconsistent capitalization. All references should be either uppercase or lowercase, not both.
Best-practice
Capitalization Types
SDF110
Inconsistent capitalization of datatypes.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
capitalization-types | SDF110 | L063 | ✅ |
Example: sdf lint -w capitalization-types=upper
Configuration:
Anti-pattern
Referencing datatypes in inconsistent capitalization. All references should be either uppercase or lowercase, not both.
Best-practice
Capitalization Functions
SDF106
Inconsistent capitalization of function names
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
capitalization-functions | SDF106 | L030 | ✅ |
Example: sdf lint -w capitalization-functions=upper
Configuration:
Anti-pattern
Referencing functions in inconsistent capitalization. All references should be either uppercase or lowercase, not both.
Best-practice
Convention Blocked Words
SDF124
Specify a list of names to block from being identifiers.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
convention-blocked-words | SDF124 | L062 | ❌ |
Examples:
- Blocking a single word:
sdf lint -w convention-blocked-words=department
- Blocking multiple words:
sdf lint -w convention-blocked-words=word1,word2,...,wordn
Configuration:
References Keywords
SDF125
Keywords should not be used as identifiers
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
references-keywords | SDF125 | L029 | ❌ |
Example: sdf lint -w references-keywords
Configuration:
Anti-pattern Using built-in keywords or functions as identifiers. sss
Best-practice
References Special Chars
SDF117
Do not use special characters in identifiers
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
references-special-chars | SDF117 | L057 | ❌ |
Example:
- Disallows
$
character:sdf lint -w references-special-chars=$
- Disallows
$
and.
characters:sdf lint -w references-special-chars=$.
Configuration:
Anti-pattern
Using special characters within identifiers when creating or aliasing objects.
Best-practice
References Quoting
SDF118
Unnecessary quoted identifier
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
references-quoting | SDF118 | L059 | ❌ |
Example: sdf lint -w references-quoting
Configuration:
Anti-pattern Using quotes when naming a valid identifier, that is not a reserved keyword.
Best-practice Use unquoted identifiers where possible.
References Qualification
SDF116
Columns reference should specify source table or view in queries with more than one source.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
references-qualification | SDF116 | L027 | ❌ |
Example: sdf lint -w references-qualification
Configuration:
Anti-pattern
Not specifying the source table or view when referencing columns in queries involving more than one source, thus creating ambiguity.
Best-practice
Ambiguous Column References
SDF105
Inconsistent column references in GROUP BY/ORDER BY clauses of both ordinal and non-ordinal
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
ambiguous-column-references | SDF105 | L054 | ❌ |
Example: sdf lint -w ambiguous-column-references
Configuration:
Anti-pattern
Using both explicit and implicit column references in the GROUP BY
or ORDER BY
clause. Reference should be consistent.
Best-practice
Use unquoted identifiers where possible.
Structure Else Null
SDF119
Redundant ELSE NULL
in a case when statement
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-else-null | SDF119 | L035 | ❌ |
Example: sdf lint -w structure-else-null
Configuration:
Anti-pattern
Stating ELSE NULL
within a CASE WHEN
statement.
Best-practice
Structure Simple Case
SDF120
CASE statement can be simplified
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-simple-case | SDF120 | L043 | ❌ |
Example: sdf lint -w structure-simple-case
Configuration:
Anti-pattern
The following CASE
statement are unnecessary and can be simplified:
Best-practice
Use simpler SQL syntax:
Structure Unused Cte
SDF121
Query defines a CTE (common-table expression) but does not use it
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-unused-cte | SDF121 | L045 | ❌ |
Example: sdf lint -w structure-unused-cte
Configuration:
Anti-pattern
Defining CTEs that are not being used in the query (e.g., sub_2
in the example below).
Best-practice
Structure Nested Case
SDF122
Nested CASE statement in ELSE clause could be flattened.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-nested-case | SDF122 | L058 | ❌ |
Example: sdf lint -w structure-nested-case
Configuration:
Anti-pattern
Unnecessarily nesting CASE
statements.
Best-practice
Structure Distinct
SDF123
DISTINCT used with parentheses
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-distinct | SDF123 | L015 | ❌ |
Example: sdf lint -w structure-distinct
Configuration:
Anti-pattern
Using DISTINCT
with parentheses. In the example below, all columns are affected by the DISTINCT
but can mistaken to think only column a
is.
Best-practice
Structure Subquery
SDF113
Join/From clauses should not contain subqueries. Use CTEs instead
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-subquery | SDF113 | L042 | ❌ |
Example: sdf lint -w structure-subquery=join
Configuration:
Anti-pattern
Selecting from a subquery instead of defining the subquery in a CTE.
Best-practice
Structure Join Condition Order
SDF114
Join conditions column references should follow tables reference order
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure_join_condition_order | SDF114 | ST09 | ❌ |
Example: sdf lint -w structure_join_condition_order
Configuration:
Anti-pattern
Referencing columns in join ON
clause statement in a different order than
the tables are referenced in the JOIN
clause
Best-practice
Structure Column Order
SDF115
Select wildcards then simple targets before calculations and aggregates.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
structure-column-order | SDF115 | L034 | ❌ |
Example: sdf lint -w structure-column-order
Configuration:
Anti-pattern
Wildcard listed after single targets
Best-practice
Convention Terminator
SDF111
Statements should not end with a semi-colon. Multi-statements must be separated with a semi-colon but the final statement should NOT end with one.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
convention-terminator | SDF111 | L052 | ✅ |
Example: sdf lint -w convention-terminator
Configuration:
Anti-pattern
Ending the last statement with a semi-colon
Best-practice
Convention Comma
SDF104
Avoid trailing commas in lists.
Configuration | SDF Error | SQLFluff Alias | Auto-fix |
---|---|---|---|
convention-comma | SDF104 | N/A | ✅ |
Configuration:
Anti-pattern
Best-practice