Class Check
- All Implemented Interfaces:
Constraint
A CHECK constraint defines a condition each row in a table must satisfy. The condition is always
represented as a SQL string (Spark SQL dialect), accessible via predicateSql(), and is
additionally exposed as a predicate via predicate() whenever it can be
expressed using supported expressions. 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
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface org.apache.spark.sql.connector.catalog.constraints.Constraint
Constraint.ValidationStatus -
Method Summary
Modifier and TypeMethodDescriptionbooleanenforced()Indicates whether this constraint is actively enforced.booleaninthashCode()name()Returns the name of this constraint.Returns the search condition as aPredicate, ornullif the condition cannot be expressed using supported predicate expressions.Returns the SQL representation of the search condition (Spark SQL dialect).booleanrely()Indicates whether this constraint is assumed to hold true if the validity is unknown.toDDL()Returns the definition of this constraint in the DDL format.Returns the constraint description for DESCRIBE TABLE output, excluding the constraint name (shown separately).toString()Indicates whether the existing data in the table satisfies this constraint.
-
Method Details
-
predicateSql
Returns the SQL representation of the search condition (Spark SQL dialect).This is the canonical representation of the condition and is always present (never
null). The optionalpredicate()provides a structured form when the condition can be expressed using supportedPredicateexpressions. -
predicate
Returns the search condition as aPredicate, ornullif the condition cannot be expressed using supported predicate expressions. UsepredicateSql()for the canonical SQL representation, which is always present. -
equals
-
hashCode
public int hashCode() -
name
Description copied from interface:ConstraintReturns the name of this constraint.- Specified by:
namein interfaceConstraint
-
enforced
public boolean enforced()Description copied from interface:ConstraintIndicates whether this constraint is actively enforced. If enforced, data modifications that violate the constraint fail with a constraint violation error.- Specified by:
enforcedin interfaceConstraint
-
validationStatus
Description copied from interface:ConstraintIndicates 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:
validationStatusin interfaceConstraint
-
rely
public boolean rely()Description copied from interface:ConstraintIndicates 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:
relyin interfaceConstraint
-
toDDL
Description copied from interface:ConstraintReturns the definition of this constraint in the DDL format.- Specified by:
toDDLin interfaceConstraint
-
toDescription
Description copied from interface:ConstraintReturns the constraint description for DESCRIBE TABLE output, excluding the constraint name (shown separately).- Specified by:
toDescriptionin interfaceConstraint
-
toString
-