[jOOQ/jOOQ#16405] Parser doesn't support GROUPING SETS with <ordinary
grouping set> specification
This commit is contained in:
parent
f7fe2b866a
commit
d7c0fac926
@ -1986,7 +1986,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
|
||||
}
|
||||
else if (parseKeywordIf("GROUPING SETS")) {
|
||||
parse('(');
|
||||
List<List<Field<?>>> fieldSets = parseList(',', c -> parseFieldsOrEmptyParenthesised());
|
||||
List<List<Field<?>>> fieldSets = parseList(',', c -> parseFieldsOrEmptyOptionallyParenthesised(false));
|
||||
parse(')');
|
||||
result.addGroupBy(groupingSets(fieldSets.toArray((Collection[]) EMPTY_COLLECTION)));
|
||||
}
|
||||
@ -4198,16 +4198,6 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -7968,6 +7958,17 @@ final class DefaultParseContext extends AbstractScope implements ParseContext {
|
||||
}
|
||||
}
|
||||
|
||||
private final List<Field<?>> parseFieldsOrEmptyOptionallyParenthesised(boolean allowUnparenthesisedLists) {
|
||||
if (peek('('))
|
||||
return parseFieldsOrEmptyParenthesised();
|
||||
else if (peekEndOfStatement())
|
||||
return emptyList();
|
||||
else if (allowUnparenthesisedLists)
|
||||
return parseList(',', c -> c.parseField());
|
||||
else
|
||||
return asList(parseField());
|
||||
}
|
||||
|
||||
private final SelectField<?> parseSelectField() {
|
||||
return (SelectField<?>) parseFieldOrRow();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user