[jOOQ/jOOQ#16777] Support BigQuery's QUALIFY .. WINDOW keyword order
This commit is contained in:
parent
3b7fbb8340
commit
1abb2a19fd
@ -375,6 +375,8 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static final Set<SQLDialect> SUPPORT_FULL_WITH_TIES = SQLDialect.supportedBy(CLICKHOUSE, H2, MARIADB, POSTGRES, TRINO);
|
||||
static final Set<SQLDialect> EMULATE_DISTINCT_ON = SQLDialect.supportedBy(DERBY, FIREBIRD, HSQLDB, MARIADB, MYSQL, SQLITE, TRINO);
|
||||
@ -2733,15 +2735,10 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
|
||||
// WINDOW clause
|
||||
// -------------
|
||||
context.start(SELECT_WINDOW);
|
||||
|
||||
if (Tools.isNotEmpty(window) && !NO_SUPPORT_WINDOW_CLAUSE.contains(context.dialect()))
|
||||
context.formatSeparator()
|
||||
.visit(K_WINDOW)
|
||||
.separatorRequired(true)
|
||||
.declareWindows(true, c -> c.visit(window));
|
||||
|
||||
context.end(SELECT_WINDOW);
|
||||
|
||||
acceptWindow(context);
|
||||
|
||||
// QUALIFY clause
|
||||
// -------------
|
||||
@ -2754,6 +2751,11 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
// [#15188] Callers ensure that the two QUALIFY conditions are mutually exclusive
|
||||
.visit(additionalQualify != null ? additionalQualify : getQualify().getWhere());
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// ORDER BY clause for local subselect
|
||||
// -----------------------------------
|
||||
toSQLOrderBy(
|
||||
@ -2829,6 +2831,18 @@ final class SelectQueryImpl<R extends Record> extends AbstractResultQuery<R> imp
|
||||
));
|
||||
}
|
||||
|
||||
private void acceptWindow(Context<?> context) {
|
||||
context.start(SELECT_WINDOW);
|
||||
|
||||
if (Tools.isNotEmpty(window) && !NO_SUPPORT_WINDOW_CLAUSE.contains(context.dialect()))
|
||||
context.formatSeparator()
|
||||
.visit(K_WINDOW)
|
||||
.separatorRequired(true)
|
||||
.declareWindows(true, c -> c.visit(window));
|
||||
|
||||
context.end(SELECT_WINDOW);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user