From 79d9acb56739a3e71018032f5a75c704dcc8d599 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 5 Aug 2024 15:03:31 +0200 Subject: [PATCH] [jOOQ/jOOQ#16946] Apply fix also to OSS edition --- .../java/org/jooq/impl/SelectQueryImpl.java | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java index b6d8a39a33..b4ad0c72c5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectQueryImpl.java @@ -3510,26 +3510,23 @@ final class SelectQueryImpl extends AbstractResultQuery imp } } + actualOrderBy = new QueryPartListView<>(actualOrderBy).map(t1 -> { + Field out = getResolveProjection(ctx, t1.$field()); + return t1.$field() == out ? t1 : t1.$field(out); + }); + // [#2080] DB2, Oracle, and Sybase can deal with column aliases from the SELECT clause + // but in case the aliases have been overridden to emulate OFFSET pagination, the + // overrides must also apply to the ORDER BY clause + if (aliasOverride != null) { + QueryPart o = actualOrderBy; - - - - - - - - - - - - - - - - - - { + ctx.qualify( + !wrapQueryExpressionBodyInDerivedTable && ctx.qualify(), + c1 -> c1.data(DATA_OVERRIDE_ALIASES_IN_ORDER_BY, aliasOverride, c2 -> c2.visit(o)) + ); + } + else { if (NO_SUPPORT_UNION_ORDER_BY_ALIAS.contains(ctx.dialect()) && hasUnions() && isUnionOrderBy) { List n = map(getSelect(), Field::getName);