[jOOQ/jOOQ#9661] Support parsing MySQL's unnamed constraint syntax
This commit is contained in:
parent
83fb81f927
commit
a471e023d1
@ -3194,11 +3194,9 @@ final class ParserImpl implements Parser {
|
||||
|
||||
columnLoop:
|
||||
do {
|
||||
ConstraintTypeStep constraint = null;
|
||||
int position = ctx.position();
|
||||
|
||||
if (parseKeywordIf(ctx, "CONSTRAINT"))
|
||||
constraint = constraint(parseIdentifier(ctx));
|
||||
ConstraintTypeStep constraint = parseConstraintNameSpecification(ctx);
|
||||
|
||||
if (parsePrimaryKeyClusteredNonClusteredKeywordIf(ctx)) {
|
||||
if (primary)
|
||||
@ -3605,9 +3603,7 @@ final class ParserImpl implements Parser {
|
||||
}
|
||||
}
|
||||
|
||||
ConstraintTypeStep inlineConstraint = null;
|
||||
if (parseKeywordIf(ctx, "CONSTRAINT"))
|
||||
inlineConstraint = constraint(parseIdentifier(ctx));
|
||||
ConstraintTypeStep inlineConstraint = parseConstraintNameSpecification(ctx);
|
||||
|
||||
if (!unique) {
|
||||
if (!primary && parsePrimaryKeyClusteredNonClusteredKeywordIf(ctx)) {
|
||||
@ -4069,11 +4065,7 @@ final class ParserImpl implements Parser {
|
||||
}
|
||||
|
||||
private static final void parseAlterTableAddFieldsOrConstraints(ParserContext ctx, List<FieldOrConstraint> list) {
|
||||
ConstraintTypeStep constraint = null;
|
||||
|
||||
if (parseKeywordIf(ctx, "CONSTRAINT"))
|
||||
if (!peekKeyword(ctx, "PRIMARY KEY", "UNIQUE", "FOREIGN KEY", "CHECK"))
|
||||
constraint = constraint(parseIdentifier(ctx));
|
||||
ConstraintTypeStep constraint = parseConstraintNameSpecification(ctx);
|
||||
|
||||
if (parsePrimaryKeyClusteredNonClusteredKeywordIf(ctx))
|
||||
list.add(parsePrimaryKeySpecification(ctx, constraint));
|
||||
@ -4089,6 +4081,13 @@ final class ParserImpl implements Parser {
|
||||
parseAlterTableAddField(ctx, list);
|
||||
}
|
||||
|
||||
private static final ConstraintTypeStep parseConstraintNameSpecification(ParserContext ctx) {
|
||||
if (parseKeywordIf(ctx, "CONSTRAINT") && !peekKeyword(ctx, "PRIMARY KEY", "UNIQUE", "FOREIGN KEY", "CHECK"))
|
||||
return constraint(parseIdentifier(ctx));
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static final Field<?> parseAlterTableAddField(ParserContext ctx, List<FieldOrConstraint> list) {
|
||||
|
||||
// The below code is taken from CREATE TABLE, with minor modifications as
|
||||
|
||||
Loading…
Reference in New Issue
Block a user