[jOOQ/jOOQ#7511] [jOOQ/jOOQ#9662] WIP
This commit is contained in:
parent
6d000bd55b
commit
effc7a09d8
@ -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());
|
||||
|
||||
@ -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
|
||||
|
||||
@ -655,6 +655,19 @@ package org.jooq.impl;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user