diff --git a/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/constraints/BaseConstraint.java b/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/constraints/BaseConstraint.java index f93d716a27842..186d2b5dedade 100644 --- a/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/constraints/BaseConstraint.java +++ b/sql/catalyst/src/main/java/org/apache/spark/sql/connector/catalog/constraints/BaseConstraint.java @@ -65,24 +65,17 @@ public boolean rely() { public String toDDL() { // The validation status is not included in the DDL output as it's not part of // the Spark SQL syntax for constraints. + return "CONSTRAINT " + name + " " + toDescription(); + } + + public String toDescription() { return String.format( - "CONSTRAINT %s %s %s %s", - name, + "%s %s %s", definition(), enforced ? "ENFORCED" : "NOT ENFORCED", rely ? "RELY" : "NORELY"); } - public String toDescription() { - StringJoiner joiner = new StringJoiner(" "); - joiner.add(definition()); - joiner.add(enforced ? "ENFORCED" : "NOT ENFORCED"); - if (rely) { - joiner.add("RELY"); - } - return joiner.toString(); - } - @Override public String toString() { return toDDL(); diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/v2/DescribeTableSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/v2/DescribeTableSuite.scala index 1bd6df5cf928a..c3f055cc33224 100644 --- a/sql/core/src/test/scala/org/apache/spark/sql/execution/command/v2/DescribeTableSuite.scala +++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/command/v2/DescribeTableSuite.scala @@ -360,21 +360,20 @@ class DescribeTableSuite extends command.DescribeTableSuiteBase |$defaultUsing """.stripMargin) - // Skipped showing NORELY since it is the default value. + // ENFORCED/NOT ENFORCED and RELY/NORELY are always emitted to match SHOW CREATE TABLE. var expectedConstraintsDdl = Array( "# Constraints,,", - "pk_table_pk,PRIMARY KEY (id) NOT ENFORCED,", + "pk_table_pk,PRIMARY KEY (id) NOT ENFORCED NORELY,", s"fk_a,FOREIGN KEY (a) REFERENCES $fkTable (id) NOT ENFORCED RELY,", - "uk_b,UNIQUE (b) NOT ENFORCED,", - "uk_a_c,UNIQUE (a, c) NOT ENFORCED,", - "c1,CHECK (c IS NOT NULL) ENFORCED,", - "c2,CHECK (id > 0) ENFORCED," + "uk_b,UNIQUE (b) NOT ENFORCED NORELY,", + "uk_a_c,UNIQUE (a, c) NOT ENFORCED NORELY,", + "c1,CHECK (c IS NOT NULL) ENFORCED NORELY,", + "c2,CHECK (id > 0) ENFORCED NORELY," ) var descDdL = sql(s"DESCRIBE EXTENDED $tbl").collect().map(_.mkString(",")) .dropWhile(_ != "# Constraints,,") assert(descDdL === expectedConstraintsDdl) - // Show non-default value for RELY. sql(s"ALTER TABLE $tbl ADD CONSTRAINT c3 CHECK (b IS NOT NULL) RELY") descDdL = sql(s"DESCRIBE EXTENDED $tbl").collect().map(_.mkString(",")) .dropWhile(_ != "# Constraints,,") @@ -386,7 +385,7 @@ class DescribeTableSuite extends command.DescribeTableSuiteBase descDdL = sql(s"DESCRIBE EXTENDED $tbl").collect().map(_.mkString(",")) .dropWhile(_ != "# Constraints,,") assert(descDdL === expectedConstraintsDdl - .filter(_ != "c1,CHECK (c IS NOT NULL) ENFORCED,")) + .filter(_ != "c1,CHECK (c IS NOT NULL) ENFORCED NORELY,")) } } }