From 08acef4a9f3ba5a75859e973aa3d4ea69a4adc73 Mon Sep 17 00:00:00 2001 From: Victor Bronstein Date: Tue, 30 Jan 2018 11:10:05 +0200 Subject: [PATCH] Allow usage of derived table as aliased parameter of TableImpl constructor --- jOOQ/src/main/java/org/jooq/impl/TableImpl.java | 10 ++++++++-- jOOQ/src/main/java/org/jooq/impl/Tools.java | 6 +++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java index d361179ecd..7bf35e7127 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java @@ -153,8 +153,14 @@ public class TableImpl extends AbstractTable { this.fields = new Fields(); - if (aliased != null) - alias = new Alias>(aliased, name); + if (aliased != null) { + Alias> existingAlias = Tools.alias(aliased); + if (existingAlias != null) { + alias = existingAlias; + } else { + alias = new Alias>(aliased, name); + } + } else alias = null; diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index b881e11eed..5d302fb97d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -4198,11 +4198,11 @@ final class Tools { return null; } - static final Alias> alias(Table table) { + static final Alias> alias(Table table) { if (table instanceof TableImpl) - return ((TableImpl) table).alias; + return ((TableImpl) table).alias; else if (table instanceof TableAlias) - return ((TableAlias) table).alias; + return ((TableAlias) table).alias; else return null; }