From effc7a09d83cdd7ce4c49345e2d1c951027580ea Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 11 Dec 2019 16:14:08 +0100 Subject: [PATCH] [jOOQ/jOOQ#7511] [jOOQ/jOOQ#9662] WIP --- .../main/java/org/jooq/impl/AbstractKey.java | 18 ++++++++++++++++++ .../src/main/java/org/jooq/impl/CheckImpl.java | 18 ++++++++++++++---- jOOQ/src/main/java/org/jooq/impl/Diff.java | 13 +++++++++++++ .../main/java/org/jooq/impl/ParserImpl.java | 11 +++++++++-- .../main/java/org/jooq/impl/ReferenceImpl.java | 4 ++-- .../main/java/org/jooq/impl/UniqueKeyImpl.java | 4 ++-- 6 files changed, 58 insertions(+), 10 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java b/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java index ff9ff0cac4..3a4a515d69 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractKey.java @@ -40,6 +40,8 @@ package org.jooq.impl; import java.util.Arrays; import java.util.List; +import org.jooq.Constraint; +import org.jooq.ConstraintEnforcementStep; import org.jooq.Context; import org.jooq.Key; import org.jooq.Record; @@ -94,6 +96,22 @@ abstract class AbstractKey extends AbstractNamed implements Ke return enforced; } + private final Constraint enforced(ConstraintEnforcementStep key) { + + + + + + return key; + } + + @Override + public final Constraint constraint() { + return enforced(constraint0()); + } + + abstract ConstraintEnforcementStep constraint0(); + @Override public final void accept(Context ctx) { ctx.visit(getUnqualifiedName()); diff --git a/jOOQ/src/main/java/org/jooq/impl/CheckImpl.java b/jOOQ/src/main/java/org/jooq/impl/CheckImpl.java index 5a57e9c66b..a7011a5118 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CheckImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CheckImpl.java @@ -40,6 +40,7 @@ package org.jooq.impl; import org.jooq.Check; import org.jooq.Condition; import org.jooq.Constraint; +import org.jooq.ConstraintEnforcementStep; import org.jooq.Context; import org.jooq.Name; import org.jooq.Record; @@ -82,13 +83,22 @@ final class CheckImpl extends AbstractNamed implements Check extends AbstractKe } @Override - public Constraint constraint() { + final ConstraintEnforcementStep constraint0() { return DSL.constraint(getName()) .foreignKey(getFieldsArray()) .references(key.getTable(), key.getFieldsArray()); diff --git a/jOOQ/src/main/java/org/jooq/impl/UniqueKeyImpl.java b/jOOQ/src/main/java/org/jooq/impl/UniqueKeyImpl.java index 5408268c23..97fd753951 100644 --- a/jOOQ/src/main/java/org/jooq/impl/UniqueKeyImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/UniqueKeyImpl.java @@ -41,7 +41,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import org.jooq.Constraint; +import org.jooq.ConstraintEnforcementStep; import org.jooq.ForeignKey; import org.jooq.Record; import org.jooq.Table; @@ -81,7 +81,7 @@ final class UniqueKeyImpl extends AbstractKey implements Un } @Override - public Constraint constraint() { + final ConstraintEnforcementStep constraint0() { if (isPrimary()) return DSL.constraint(getName()).primaryKey(getFieldsArray()); else