From c0f49a4cf2987eaaa5b2363ec07c0df6032a1048 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 24 Mar 2025 15:47:10 +0100 Subject: [PATCH] [jOOQ/jOOQ#18202] Do this fix *only* for UDTPathField User input fields may be unqualified. --- jOOQ/src/main/java/org/jooq/impl/Excluded.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Excluded.java b/jOOQ/src/main/java/org/jooq/impl/Excluded.java index c8b51a2ed6..24d066cc74 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Excluded.java +++ b/jOOQ/src/main/java/org/jooq/impl/Excluded.java @@ -124,12 +124,14 @@ implements // [#18202] Don't render the EXCLUDED name here in case it needs to be enclosed // in parentheses, e.g. in a UDTPathField Table t = (Table) ctx.data(SimpleDataKey.DATA_DML_TARGET_TABLE); - ctx.scopeRegister(t, false, - ctx.data(ExtendedDataKey.DATA_INSERT_ON_DUPLICATE_KEY_UPDATE) != null - ? table(name("t")) - : table(N_EXCLUDED)) - .visit(field) - .scopeRegister(t, false, null); + Table e = ctx.data(ExtendedDataKey.DATA_INSERT_ON_DUPLICATE_KEY_UPDATE) != null + ? table(name("t")) + : table(N_EXCLUDED); + + if (field instanceof UDTPathField) + ctx.scopeRegister(t, false, e).visit(field).scopeRegister(t, false, null); + else + ctx.visit(e).sql('.').qualify(false, c -> c.visit(field)); break; } }