[jOOQ/jOOQ#12659] Wrong SQL generated for PostgreSQL functions returning

single UDT OUT parameters
This commit is contained in:
Lukas Eder 2021-11-25 10:52:05 +01:00
parent dd9acba28a
commit 4ccf09f344

View File

@ -490,7 +490,14 @@ implements
for (Parameter<?> p : outParameters)
fields.add(DSL.field(DSL.name(p.getName()), p.getDataType()));
Result<?> result = create.select(fields).from("{0}", asField()).fetch();
Result<?> result;
// [#12659] Handle special case of single UDT OUT parameter, which cannot
// be referred to by its name, regrettably
if (fields.size() == 1 && fields.get(0).getDataType().isUDT())
result = create.select(field("row(t.*)", fields.get(0).getDataType())).from("{0} as t", asField()).fetch();
else
result = create.select(fields).from("{0}", asField()).fetch();
int i = 0;