Replace = NULL and <> NULL with IS NULL and IS NOT NULL
Recipe ID
org.openrewrite.sql.antipattern.ReplaceNullComparisonWithIsNullArtifact
org.openrewrite.recipe:rewrite-sqlUnder three-valued logic a comparison with NULL evaluates to UNKNOWN rather than true, so col = NULL and col <> NULL match no rows. Rewrite them to the intended col IS NULL and col IS NOT NULL, changing only the compared operator so the rest of the statement is left untouched.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.sql.antipattern.ReplaceNullComparisonWithIsNullIf the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-sql:2.14.1Data tables
Structured output this recipe can produce.
- SQL anti-patternsSQL statements matching performance anti-pattern rules.
org.openrewrite.sql.table.SqlAntiPatterns - Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats