[jOOQ/jOOQ#7503] Add support for PostgreSQL functions returning anonymous RECORD types
This commit is contained in:
parent
fb2ea304bb
commit
e86b9f2ef2
@ -84,7 +84,7 @@ public class PostgresRoutineDefinition extends AbstractRoutineDefinition {
|
||||
);
|
||||
|
||||
String dataType = record.get("data_type", String.class);
|
||||
if (dataType != null && !asList("void", "record").contains(dataType)) {
|
||||
if (dataType != null && !asList("void").contains(dataType)) {
|
||||
SchemaDefinition typeSchema = null;
|
||||
|
||||
String schemaName = record.get(ROUTINES.TYPE_UDT_SCHEMA);
|
||||
|
||||
@ -506,6 +506,11 @@ implements
|
||||
// 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();
|
||||
|
||||
// [#7503] Anonymous records have to be fetched from the projection
|
||||
else if (fields.size() == 1 && fields.get(0).getDataType().isRecord())
|
||||
result = create.select(asField()).fetch();
|
||||
|
||||
else
|
||||
result = create.select(fields).from("{0}", asField()).fetch();
|
||||
|
||||
|
||||
@ -163,6 +163,7 @@ public class PostgresDataType {
|
||||
public static final DataType<String> VARBIT = new BuiltInDataType<>(FAMILY, SQLDataType.VARCHAR, "varbit(l)");
|
||||
public static final DataType<String> BIT = new BuiltInDataType<>(FAMILY, SQLDataType.CHAR, "bit(l)");
|
||||
public static final DataType<String> BPCHAR = new BuiltInDataType<>(FAMILY, SQLDataType.CHAR, "bpchar");
|
||||
public static final DataType<Record> RECORD = new BuiltInDataType<>(FAMILY, SQLDataType.RECORD, "record");
|
||||
public static final DataType<Result<Record>> REFCURSOR = new BuiltInDataType<>(FAMILY, SQLDataType.RESULT, "refcursor");
|
||||
public static final DataType<Object> ANY = new BuiltInDataType<>(FAMILY, SQLDataType.OTHER, "any");
|
||||
public static final DataType<UUID> UUID = new BuiltInDataType<>(FAMILY, SQLDataType.UUID, "uuid");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user