← All recipes
Moderne licensed

Replace = NULL and <> NULL with IS NULL and IS NOT NULL

Recipe IDorg.openrewrite.sql.antipattern.ReplaceNullComparisonWithIsNull
Artifactorg.openrewrite.recipe:rewrite-sql

Under 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.

Single recipeProprietary

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.ReplaceNullComparisonWithIsNull

If the recipe isn’t available locally, install it with:

mod config recipes jar install org.openrewrite.recipe:rewrite-sql:2.14.1

Data 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