From be3372dfa8392f447a02d4866c96111d4d90c8a1 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Sun, 29 May 2016 07:37:44 +0200 Subject: [PATCH] [#5311] Add DSL.constraint() to create an unnamed (system named) constraint --- .../java/org/jooq/impl/ConstraintImpl.java | 19 ++++++++++++++----- jOOQ/src/main/java/org/jooq/impl/DSL.java | 8 ++++++++ 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ConstraintImpl.java b/jOOQ/src/main/java/org/jooq/impl/ConstraintImpl.java index 671c8beb49..021964b6ea 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ConstraintImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ConstraintImpl.java @@ -84,6 +84,7 @@ import org.jooq.Context; import org.jooq.Field; import org.jooq.Name; import org.jooq.Table; +import org.jooq.exception.DataAccessException; /** * @author Lukas Eder @@ -139,6 +140,10 @@ implements private Action onUpdate; private Condition check; + ConstraintImpl() { + this(null); + } + ConstraintImpl(Name name) { this.name = name; } @@ -151,16 +156,20 @@ implements @Override public final void accept(Context ctx) { if (ctx.data(DATA_CONSTRAINT_REFERENCE) != null) { + if (name == null) + throw new DataAccessException("Cannot ALTER or DROP CONSTRAINT without name"); + ctx.visit(name); } else { boolean qualify = ctx.qualify(); - ctx.keyword("constraint") - .sql(' ') - .visit(name) - .formatIndentStart() - .formatSeparator(); + if (name != null) + ctx.keyword("constraint") + .sql(' ') + .visit(name) + .formatIndentStart() + .formatSeparator(); if (unique != null) { ctx.keyword("unique") diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index 66b6239c51..212eb78e65 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -4780,6 +4780,14 @@ public class DSL { // XXX DDL Clauses // ------------------------------------------------------------------------- + /** + * Create an unnamed (system named) CONSTRAINT specification. + */ + @Support + public static ConstraintTypeStep constraint() { + return new ConstraintImpl(); + } + /** * Create a CONSTRAINT specification. */