From 45882adcf314cb149ce52dde4e20bc02403f6cf5 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 6 Dec 2022 14:10:25 +0100 Subject: [PATCH] [jOOQ/jOOQ#14373] Parser produces wrong projection data type when parsing doubly nested derived table --- jOOQ/src/main/java/org/jooq/impl/DataTypeProxy.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/DataTypeProxy.java b/jOOQ/src/main/java/org/jooq/impl/DataTypeProxy.java index fc1c78ff48..7c3d6fd01b 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DataTypeProxy.java +++ b/jOOQ/src/main/java/org/jooq/impl/DataTypeProxy.java @@ -120,13 +120,16 @@ final class DataTypeProxy extends AbstractDataType { final void type(AbstractDataType t) { if (t instanceof DataTypeProxy p) { - // [#11856] [#14343] Prevent cycles in DataTypeProxy chains + // [#11856] [#14343] [#14373] Prevent cycles in DataTypeProxy chains IdentityHashMap, AbstractDataType> m = new IdentityHashMap<>(); + m.put(this, this); m.put(p, p); while (p.type() instanceof DataTypeProxy p2) { if (m.put(p2, p2) != null) return; + + p = p2; } }