From 4f25c51d033b81c486c8c6908b57124cdf18ec3e Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 8 Dec 2021 14:14:07 +0100 Subject: [PATCH] [jOOQ/jOOQ#12712] Parser mis-interprets KEY columns as MySQL KEY (INDEX) specification if unquoted and of type VARCHAR(n) --- jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 7f76778038..3072aaffc0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -4279,11 +4279,14 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { int p2 = position(); - // [#7348] [#7651] [#9132] Look ahead if the next tokens - // indicate a MySQL index definition - if (parseIf('(') || (parseIdentifierIf() != null - && parseUsingIndexTypeIf() - && parseIf('('))) { + // [#7348] [#7651] [#9132] [#12712] + // Look ahead if the next tokens indicate a MySQL index definition + if (parseIf('(') || ( + parseDataTypeIf(false) == null + && parseIdentifierIf() != null + && parseUsingIndexTypeIf() + && parseIf('(')) + ) { position(p2); indexes.add(parseIndexSpecification(tableName));