This commit is contained in:
Lukas Eder 2019-12-11 16:14:08 +01:00
parent 6d000bd55b
commit effc7a09d8
6 changed files with 58 additions and 10 deletions

View File

@ -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<R extends Record> 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());

View File

@ -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<R extends Record> extends AbstractNamed implements Check<R
}
@Override
public final Constraint constraint() {
return DSL.constraint(getName()).check(condition);
public final boolean enforced() {
return enforced;
}
private final Constraint enforced(ConstraintEnforcementStep key) {
return key;
}
@Override
public final boolean enforced() {
return enforced;
public final Constraint constraint() {
return enforced(DSL.constraint(getName()).check(condition));
}
@Override

View File

@ -655,6 +655,19 @@ package org.jooq.impl;

View File

@ -3703,9 +3703,16 @@ final class ParserImpl implements Parser {
private static final Constraint parseConstraintEnforcementIf(ParserContext ctx, ConstraintEnforcementStep e) {
if ((parseKeywordIf(ctx, "ENABLE") || parseKeywordIf(ctx, "ENFORCED")) && ctx.requireProEdition())
return e.enforced();
;
else if ((parseKeywordIf(ctx, "DISABLE") || parseKeywordIf(ctx, "NOT ENFORCED")) && ctx.requireProEdition())
return e.notEnforced();
;
else return e;
}

View File

@ -46,7 +46,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.jooq.Constraint;
import org.jooq.ConstraintEnforcementStep;
import org.jooq.DSLContext;
import org.jooq.Field;
import org.jooq.ForeignKey;
@ -194,7 +194,7 @@ final class ReferenceImpl<R extends Record, O extends Record> extends AbstractKe
}
@Override
public Constraint constraint() {
final ConstraintEnforcementStep constraint0() {
return DSL.constraint(getName())
.foreignKey(getFieldsArray())
.references(key.getTable(), key.getFieldsArray());

View File

@ -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<R extends Record> extends AbstractKey<R> implements Un
}
@Override
public Constraint constraint() {
final ConstraintEnforcementStep constraint0() {
if (isPrimary())
return DSL.constraint(getName()).primaryKey(getFieldsArray());
else