From 5487cbdd290ce9f5c557a368215c0fe289d67c56 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Fri, 22 Dec 2023 15:14:56 +0100 Subject: [PATCH] [jOOQ/jOOQ#15989] AbstractJoin.toString() should render SQL with tables declared, not referenced --- .../main/java/org/jooq/impl/AbstractQueryPart.java | 14 ++++++++++---- jOOQ/src/main/java/org/jooq/impl/JoinTable.java | 9 +++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java b/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java index f7ce25dea0..def68af7d8 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractQueryPart.java @@ -38,6 +38,7 @@ package org.jooq.impl; +import static org.jooq.conf.ParamType.INLINED; import static org.jooq.impl.Tools.CONFIG; import java.io.IOException; @@ -53,6 +54,7 @@ import org.jooq.DSLContext; // ... import org.jooq.QueryPart; import org.jooq.QueryPartInternal; +import org.jooq.RenderContext; import org.jooq.exception.DataAccessException; import org.jooq.exception.SQLDialectNotSupportedException; import org.jooq.tools.JooqLogger; @@ -185,11 +187,15 @@ abstract class AbstractQueryPart implements QueryPartInternal { @Override public String toString() { - try { - // [#8355] Subtypes may have null configuration - Configuration configuration = Tools.configuration(configuration()); - return create(configuration.deriveSettings(s -> s.withRenderFormatted(true))).renderInlined(this); + // [#8355] Subtypes may have null configuration + Configuration configuration = Tools.configuration(configuration()); + return toString0(create(configuration.deriveSettings(s -> s.withRenderFormatted(true))).renderContext().paramType(INLINED)); + } + + String toString0(RenderContext ctx) { + try { + return ctx.visit(this).render(); } catch (SQLDialectNotSupportedException e) { return "[ ... " + e.getMessage() + " ... ]"; diff --git a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java index 0343218328..61a12a3651 100755 --- a/jOOQ/src/main/java/org/jooq/impl/JoinTable.java +++ b/jOOQ/src/main/java/org/jooq/impl/JoinTable.java @@ -131,6 +131,7 @@ import org.jooq.Operator; // ... import org.jooq.QueryPart; import org.jooq.Record; +import org.jooq.RenderContext; // ... import org.jooq.SQLDialect; import org.jooq.Table; @@ -961,4 +962,12 @@ abstract class JoinTable> extends AbstractJoinTable { + // ------------------------------------------------------------------------- + // XXX: Object API + // ------------------------------------------------------------------------- + + @Override + String toString0(RenderContext ctx) { + return super.toString0(ctx.declareTables(true)); + } }