Object
org.apache.spark.sql.connector.catalog.constraints.Check
All Implemented Interfaces:
Constraint

@Evolving public class Check extends Object
A CHECK constraint.

A CHECK constraint defines a condition each row in a table must satisfy. Connectors can define such constraints either in SQL (Spark SQL dialect) or using a predicate if the condition can be expressed using a supported expression. A CHECK constraint can reference one or more columns. Such constraint is considered violated if its condition evaluates to FALSE, but not NULL. The search condition must be deterministic and cannot contain subqueries and certain functions like aggregates or UDFs.

Spark supports enforced and not enforced CHECK constraints, allowing connectors to control whether data modifications that violate the constraint must fail. Each constraint is either valid (the existing data is guaranteed to satisfy the constraint), invalid (some records violate the constraint), or unvalidated (the validity is unknown). If the validity is unknown, Spark will check Constraint.rely() to see whether the constraint is believed to be true and can be used for query optimization.

Since:
4.1.0
  • Method Details

    • predicateSql

      public String predicateSql()
      Returns the SQL representation of the search condition (Spark SQL dialect).
    • predicate

      public Predicate predicate()
      Returns the search condition.
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • name

      public String name()
      Description copied from interface: Constraint
      Returns the name of this constraint.
      Specified by:
      name in interface Constraint
    • enforced

      public boolean enforced()
      Description copied from interface: Constraint
      Indicates whether this constraint is actively enforced. If enforced, data modifications that violate the constraint fail with a constraint violation error.
      Specified by:
      enforced in interface Constraint
    • validationStatus

      public Constraint.ValidationStatus validationStatus()
      Description copied from interface: Constraint
      Indicates whether the existing data in the table satisfies this constraint. The constraint can be valid (the data is guaranteed to satisfy the constraint), invalid (some records violate the constraint), or unvalidated (the validity is unknown). The validation status is usually managed by the system and can't be modified by the user.
      Specified by:
      validationStatus in interface Constraint
    • rely

      public boolean rely()
      Description copied from interface: Constraint
      Indicates whether this constraint is assumed to hold true if the validity is unknown. Unlike the validation status, this flag is usually provided by the user as a hint to the system.
      Specified by:
      rely in interface Constraint
    • toDDL

      public String toDDL()
      Description copied from interface: Constraint
      Returns the definition of this constraint in the DDL format.
      Specified by:
      toDDL in interface Constraint
    • toDescription

      public String toDescription()
      Description copied from interface: Constraint
      Returns the constraint description for DESCRIBE TABLE output, excluding the constraint name (shown separately).
      Specified by:
      toDescription in interface Constraint
    • toString

      public String toString()
      Overrides:
      toString in class Object