Skip to content

Commit f2f7e50

Browse files
committed
Rename SetSingleFuncCall() to InitMaterializedSRF()
Per discussion, the existing routine name able to initialize a SRF function with materialize mode is unpopular, so rename it. Equally, the flags of this function are renamed, as of: - SRF_SINGLE_USE_EXPECTED -> MAT_SRF_USE_EXPECTED_DESC - SRF_SINGLE_BLESS -> MAT_SRF_BLESS The previous function and flags introduced in 9e98583 are kept around for compatibility purposes, so as any extension code already compiled with v15 continues to work as-is. The declarations introduced here for compatibility will be removed from HEAD in a follow-up commit. The new names have been suggested by Andres Freund and Melanie Plageman. Discussion: https://postgr.es/m/20221013194820.ciktb2sbbpw7cljm@awork3.anarazel.de Backpatch-through: 15
1 parent ef325ee commit f2f7e50

File tree

35 files changed

+71
-57
lines changed

35 files changed

+71
-57
lines changed

contrib/amcheck/verify_heapam.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ verify_heapam(PG_FUNCTION_ARGS)
278278
ctx.attnum = -1;
279279

280280
/* Construct the tuplestore and tuple descriptor */
281-
SetSingleFuncCall(fcinfo, 0);
281+
InitMaterializedSRF(fcinfo, 0);
282282
ctx.tupdesc = rsinfo->setDesc;
283283
ctx.tupstore = rsinfo->setResult;
284284

contrib/dblink/dblink.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1934,7 +1934,7 @@ dblink_get_notify(PG_FUNCTION_ARGS)
19341934
else
19351935
conn = pconn->conn;
19361936

1937-
SetSingleFuncCall(fcinfo, 0);
1937+
InitMaterializedSRF(fcinfo, 0);
19381938

19391939
PQconsumeInput(conn);
19401940
while ((notify = PQnotifies(conn)) != NULL)

contrib/pageinspect/brinfuncs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ brin_page_items(PG_FUNCTION_ARGS)
147147
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
148148
errmsg("must be superuser to use raw page functions")));
149149

150-
SetSingleFuncCall(fcinfo, 0);
150+
InitMaterializedSRF(fcinfo, 0);
151151

152152
indexRel = index_open(indexRelid, AccessShareLock);
153153

contrib/pageinspect/gistfuncs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ gist_page_items_bytea(PG_FUNCTION_ARGS)
129129
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
130130
errmsg("must be superuser to use raw page functions")));
131131

132-
SetSingleFuncCall(fcinfo, 0);
132+
InitMaterializedSRF(fcinfo, 0);
133133

134134
page = get_page_from_raw(raw_page);
135135

@@ -213,7 +213,7 @@ gist_page_items(PG_FUNCTION_ARGS)
213213
(errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
214214
errmsg("must be superuser to use raw page functions")));
215215

216-
SetSingleFuncCall(fcinfo, 0);
216+
InitMaterializedSRF(fcinfo, 0);
217217

218218
/* Open the relation */
219219
indexRel = index_open(indexRelid, AccessShareLock);

contrib/pg_stat_statements/pg_stat_statements.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1555,7 +1555,7 @@ pg_stat_statements_internal(FunctionCallInfo fcinfo,
15551555
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
15561556
errmsg("pg_stat_statements must be loaded via shared_preload_libraries")));
15571557

1558-
SetSingleFuncCall(fcinfo, 0);
1558+
InitMaterializedSRF(fcinfo, 0);
15591559

15601560
/*
15611561
* Check we have the expected number of output arguments. Aside from

contrib/pg_walinspect/pg_walinspect.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ GetWALRecordsInfo(FunctionCallInfo fcinfo, XLogRecPtr start_lsn,
333333
Datum values[PG_GET_WAL_RECORDS_INFO_COLS];
334334
bool nulls[PG_GET_WAL_RECORDS_INFO_COLS];
335335

336-
SetSingleFuncCall(fcinfo, 0);
336+
InitMaterializedSRF(fcinfo, 0);
337337

338338
xlogreader = InitXLogReaderState(start_lsn);
339339

@@ -554,7 +554,7 @@ GetWalStats(FunctionCallInfo fcinfo, XLogRecPtr start_lsn,
554554
Datum values[PG_GET_WAL_STATS_COLS];
555555
bool nulls[PG_GET_WAL_STATS_COLS];
556556

557-
SetSingleFuncCall(fcinfo, 0);
557+
InitMaterializedSRF(fcinfo, 0);
558558

559559
xlogreader = InitXLogReaderState(start_lsn);
560560

contrib/pgrowlocks/pgrowlocks.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ pgrowlocks(PG_FUNCTION_ARGS)
7575
AclResult aclresult;
7676
char **values;
7777

78-
SetSingleFuncCall(fcinfo, 0);
78+
InitMaterializedSRF(fcinfo, 0);
7979

8080
/* Access the table */
8181
relrv = makeRangeVarFromNameList(textToQualifiedNameList(relname));

contrib/postgres_fdw/connection.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1668,7 +1668,7 @@ postgres_fdw_get_connections(PG_FUNCTION_ARGS)
16681668
HASH_SEQ_STATUS scan;
16691669
ConnCacheEntry *entry;
16701670

1671-
SetSingleFuncCall(fcinfo, 0);
1671+
InitMaterializedSRF(fcinfo, 0);
16721672

16731673
/* If cache doesn't exist, we return no records */
16741674
if (!ConnectionHash)

contrib/xml2/xpath.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ xpath_table(PG_FUNCTION_ARGS)
511511
PgXmlErrorContext *xmlerrcxt;
512512
volatile xmlDocPtr doctree = NULL;
513513

514-
SetSingleFuncCall(fcinfo, SRF_SINGLE_USE_EXPECTED);
514+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC);
515515

516516
/* must have at least one output column (for the pkey) */
517517
if (rsinfo->setDesc->natts < 1)

src/backend/access/transam/rmgr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ pg_get_wal_resource_managers(PG_FUNCTION_ARGS)
145145
Datum values[PG_GET_RESOURCE_MANAGERS_COLS];
146146
bool nulls[PG_GET_RESOURCE_MANAGERS_COLS] = {0};
147147

148-
SetSingleFuncCall(fcinfo, 0);
148+
InitMaterializedSRF(fcinfo, 0);
149149

150150
for (int rmid = 0; rmid <= RM_MAX_ID; rmid++)
151151
{

src/backend/access/transam/xlogprefetcher.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ pg_stat_get_recovery_prefetch(PG_FUNCTION_ARGS)
833833
Datum values[PG_STAT_GET_RECOVERY_PREFETCH_COLS];
834834
bool nulls[PG_STAT_GET_RECOVERY_PREFETCH_COLS];
835835

836-
SetSingleFuncCall(fcinfo, 0);
836+
InitMaterializedSRF(fcinfo, 0);
837837

838838
for (int i = 0; i < PG_STAT_GET_RECOVERY_PREFETCH_COLS; ++i)
839839
nulls[i] = false;

src/backend/commands/event_trigger.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1305,7 +1305,7 @@ pg_event_trigger_dropped_objects(PG_FUNCTION_ARGS)
13051305
"pg_event_trigger_dropped_objects()")));
13061306

13071307
/* Build tuplestore to hold the result rows */
1308-
SetSingleFuncCall(fcinfo, 0);
1308+
InitMaterializedSRF(fcinfo, 0);
13091309

13101310
slist_foreach(iter, &(currentEventTriggerState->SQLDropList))
13111311
{
@@ -1835,7 +1835,7 @@ pg_event_trigger_ddl_commands(PG_FUNCTION_ARGS)
18351835
"pg_event_trigger_ddl_commands()")));
18361836

18371837
/* Build tuplestore to hold the result rows */
1838-
SetSingleFuncCall(fcinfo, 0);
1838+
InitMaterializedSRF(fcinfo, 0);
18391839

18401840
foreach(lc, currentEventTriggerState->commandList)
18411841
{

src/backend/commands/extension.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1941,7 +1941,7 @@ pg_available_extensions(PG_FUNCTION_ARGS)
19411941
struct dirent *de;
19421942

19431943
/* Build tuplestore to hold the result rows */
1944-
SetSingleFuncCall(fcinfo, 0);
1944+
InitMaterializedSRF(fcinfo, 0);
19451945

19461946
location = get_extension_control_directory();
19471947
dir = AllocateDir(location);
@@ -2021,7 +2021,7 @@ pg_available_extension_versions(PG_FUNCTION_ARGS)
20212021
struct dirent *de;
20222022

20232023
/* Build tuplestore to hold the result rows */
2024-
SetSingleFuncCall(fcinfo, 0);
2024+
InitMaterializedSRF(fcinfo, 0);
20252025

20262026
location = get_extension_control_directory();
20272027
dir = AllocateDir(location);
@@ -2278,7 +2278,7 @@ pg_extension_update_paths(PG_FUNCTION_ARGS)
22782278
check_valid_extension_name(NameStr(*extname));
22792279

22802280
/* Build tuplestore to hold the result rows */
2281-
SetSingleFuncCall(fcinfo, 0);
2281+
InitMaterializedSRF(fcinfo, 0);
22822282

22832283
/* Read the extension's control file */
22842284
control = read_extension_control_file(NameStr(*extname));

src/backend/commands/prepare.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -672,7 +672,7 @@ pg_prepared_statement(PG_FUNCTION_ARGS)
672672
* We put all the tuples into a tuplestore in one scan of the hashtable.
673673
* This avoids any issue of the hashtable possibly changing between calls.
674674
*/
675-
SetSingleFuncCall(fcinfo, 0);
675+
InitMaterializedSRF(fcinfo, 0);
676676

677677
/* hash table might be uninitialized */
678678
if (prepared_queries)

src/backend/foreign/foreign.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ pg_options_to_table(PG_FUNCTION_ARGS)
516516
rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
517517

518518
/* prepare the result set */
519-
SetSingleFuncCall(fcinfo, SRF_SINGLE_USE_EXPECTED);
519+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC);
520520

521521
foreach(cell, options)
522522
{

src/backend/replication/logical/launcher.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ pg_stat_get_subscription(PG_FUNCTION_ARGS)
930930
int i;
931931
ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
932932

933-
SetSingleFuncCall(fcinfo, 0);
933+
InitMaterializedSRF(fcinfo, 0);
934934

935935
/* Make sure we get consistent view of the workers. */
936936
LWLockAcquire(LogicalRepWorkerLock, LW_SHARED);

src/backend/replication/logical/logicalfuncs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ pg_logical_slot_get_changes_guts(FunctionCallInfo fcinfo, bool confirm, bool bin
189189
}
190190
}
191191

192-
SetSingleFuncCall(fcinfo, 0);
192+
InitMaterializedSRF(fcinfo, 0);
193193
p->tupstore = rsinfo->setResult;
194194
p->tupdesc = rsinfo->setDesc;
195195

src/backend/replication/logical/origin.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1487,7 +1487,7 @@ pg_show_replication_origin_status(PG_FUNCTION_ARGS)
14871487
/* we want to return 0 rows if slot is set to zero */
14881488
replorigin_check_prerequisites(false, true);
14891489

1490-
SetSingleFuncCall(fcinfo, 0);
1490+
InitMaterializedSRF(fcinfo, 0);
14911491

14921492
/* prevent slots from being concurrently dropped */
14931493
LWLockAcquire(ReplicationOriginLock, LW_SHARED);

src/backend/replication/slotfuncs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ pg_get_replication_slots(PG_FUNCTION_ARGS)
242242
* name, which shouldn't contain anything particularly sensitive.
243243
*/
244244

245-
SetSingleFuncCall(fcinfo, 0);
245+
InitMaterializedSRF(fcinfo, 0);
246246

247247
currlsn = GetXLogWriteRecPtr();
248248

src/backend/replication/walsender.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3476,7 +3476,7 @@ pg_stat_get_wal_senders(PG_FUNCTION_ARGS)
34763476
int num_standbys;
34773477
int i;
34783478

3479-
SetSingleFuncCall(fcinfo, 0);
3479+
InitMaterializedSRF(fcinfo, 0);
34803480

34813481
/*
34823482
* Get the currently active synchronous standbys. This could be out of

src/backend/storage/ipc/shmem.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ pg_get_shmem_allocations(PG_FUNCTION_ARGS)
543543
Datum values[PG_GET_SHMEM_SIZES_COLS];
544544
bool nulls[PG_GET_SHMEM_SIZES_COLS];
545545

546-
SetSingleFuncCall(fcinfo, 0);
546+
InitMaterializedSRF(fcinfo, 0);
547547

548548
LWLockAcquire(ShmemIndexLock, LW_SHARED);
549549

src/backend/utils/adt/datetime.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5059,7 +5059,7 @@ pg_timezone_names(PG_FUNCTION_ARGS)
50595059
Interval *resInterval;
50605060
struct pg_itm_in itm_in;
50615061

5062-
SetSingleFuncCall(fcinfo, 0);
5062+
InitMaterializedSRF(fcinfo, 0);
50635063

50645064
/* initialize timezone scanning code */
50655065
tzenum = pg_tzenumerate_start();

src/backend/utils/adt/genfile.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ pg_ls_dir(PG_FUNCTION_ARGS)
491491
include_dot_dirs = PG_GETARG_BOOL(2);
492492
}
493493

494-
SetSingleFuncCall(fcinfo, SRF_SINGLE_USE_EXPECTED);
494+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC);
495495

496496
dirdesc = AllocateDir(location);
497497
if (!dirdesc)
@@ -549,7 +549,7 @@ pg_ls_dir_files(FunctionCallInfo fcinfo, const char *dir, bool missing_ok)
549549
DIR *dirdesc;
550550
struct dirent *de;
551551

552-
SetSingleFuncCall(fcinfo, 0);
552+
InitMaterializedSRF(fcinfo, 0);
553553

554554
/*
555555
* Now walk the directory. Note that we must do this within a single SRF

src/backend/utils/adt/hbafuncs.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ pg_hba_file_rules(PG_FUNCTION_ARGS)
421421
* also more efficient than having to look up our current position in the
422422
* parsed list every time.
423423
*/
424-
SetSingleFuncCall(fcinfo, 0);
424+
InitMaterializedSRF(fcinfo, 0);
425425

426426
/* Fill the tuplestore */
427427
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
@@ -554,7 +554,7 @@ pg_ident_file_mappings(PG_FUNCTION_ARGS)
554554
* also more efficient than having to look up our current position in the
555555
* parsed list every time.
556556
*/
557-
SetSingleFuncCall(fcinfo, 0);
557+
InitMaterializedSRF(fcinfo, 0);
558558

559559
/* Fill the tuplestore */
560560
rsi = (ReturnSetInfo *) fcinfo->resultinfo;

src/backend/utils/adt/jsonfuncs.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1923,7 +1923,7 @@ each_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname, bool as_text)
19231923
funcname)));
19241924

19251925
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
1926-
SetSingleFuncCall(fcinfo, SRF_SINGLE_BLESS);
1926+
InitMaterializedSRF(fcinfo, MAT_SRF_BLESS);
19271927

19281928
tmp_cxt = AllocSetContextCreate(CurrentMemoryContext,
19291929
"jsonb_each temporary cxt",
@@ -2003,7 +2003,7 @@ each_worker(FunctionCallInfo fcinfo, bool as_text)
20032003

20042004
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
20052005

2006-
SetSingleFuncCall(fcinfo, SRF_SINGLE_BLESS);
2006+
InitMaterializedSRF(fcinfo, MAT_SRF_BLESS);
20072007
state->tuple_store = rsi->setResult;
20082008
state->ret_tdesc = rsi->setDesc;
20092009

@@ -2166,8 +2166,7 @@ elements_worker_jsonb(FunctionCallInfo fcinfo, const char *funcname,
21662166

21672167
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
21682168

2169-
SetSingleFuncCall(fcinfo,
2170-
SRF_SINGLE_USE_EXPECTED | SRF_SINGLE_BLESS);
2169+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC | MAT_SRF_BLESS);
21712170

21722171
tmp_cxt = AllocSetContextCreate(CurrentMemoryContext,
21732172
"jsonb_array_elements temporary cxt",
@@ -2245,7 +2244,7 @@ elements_worker(FunctionCallInfo fcinfo, const char *funcname, bool as_text)
22452244
state = palloc0(sizeof(ElementsState));
22462245
sem = palloc0(sizeof(JsonSemAction));
22472246

2248-
SetSingleFuncCall(fcinfo, SRF_SINGLE_USE_EXPECTED | SRF_SINGLE_BLESS);
2247+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC | MAT_SRF_BLESS);
22492248
rsi = (ReturnSetInfo *) fcinfo->resultinfo;
22502249
state->tuple_store = rsi->setResult;
22512250
state->ret_tdesc = rsi->setDesc;

src/backend/utils/adt/mcxtfuncs.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ pg_get_backend_memory_contexts(PG_FUNCTION_ARGS)
121121
{
122122
ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
123123

124-
SetSingleFuncCall(fcinfo, 0);
124+
InitMaterializedSRF(fcinfo, 0);
125125
PutMemoryContextsStatsTupleStore(rsinfo->setResult, rsinfo->setDesc,
126126
TopMemoryContext, NULL, 0);
127127

src/backend/utils/adt/misc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ pg_tablespace_databases(PG_FUNCTION_ARGS)
208208
DIR *dirdesc;
209209
struct dirent *de;
210210

211-
SetSingleFuncCall(fcinfo, SRF_SINGLE_USE_EXPECTED);
211+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC);
212212

213213
if (tablespaceOid == GLOBALTABLESPACE_OID)
214214
{

src/backend/utils/adt/pgstatfuncs.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ pg_stat_get_progress_info(PG_FUNCTION_ARGS)
481481
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
482482
errmsg("invalid command name: \"%s\"", cmd)));
483483

484-
SetSingleFuncCall(fcinfo, 0);
484+
InitMaterializedSRF(fcinfo, 0);
485485

486486
/* 1-based index */
487487
for (curr_backend = 1; curr_backend <= num_backends; curr_backend++)
@@ -545,7 +545,7 @@ pg_stat_get_activity(PG_FUNCTION_ARGS)
545545
int pid = PG_ARGISNULL(0) ? -1 : PG_GETARG_INT32(0);
546546
ReturnSetInfo *rsinfo = (ReturnSetInfo *) fcinfo->resultinfo;
547547

548-
SetSingleFuncCall(fcinfo, 0);
548+
InitMaterializedSRF(fcinfo, 0);
549549

550550
/* 1-based index */
551551
for (curr_backend = 1; curr_backend <= num_backends; curr_backend++)
@@ -1818,7 +1818,7 @@ pg_stat_get_slru(PG_FUNCTION_ARGS)
18181818
int i;
18191819
PgStat_SLRUStats *stats;
18201820

1821-
SetSingleFuncCall(fcinfo, 0);
1821+
InitMaterializedSRF(fcinfo, 0);
18221822

18231823
/* request SLRU stats from the cumulative stats system */
18241824
stats = pgstat_fetch_slru();

src/backend/utils/adt/varlena.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4809,7 +4809,7 @@ text_to_table(PG_FUNCTION_ARGS)
48094809
SplitTextOutputData tstate;
48104810

48114811
tstate.astate = NULL;
4812-
SetSingleFuncCall(fcinfo, SRF_SINGLE_USE_EXPECTED);
4812+
InitMaterializedSRF(fcinfo, MAT_SRF_USE_EXPECTED_DESC);
48134813
tstate.tupstore = rsi->setResult;
48144814
tstate.tupdesc = rsi->setDesc;
48154815

src/backend/utils/fmgr/README

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ If available, the expected tuple descriptor is passed in ReturnSetInfo;
305305
in other contexts the expectedDesc field will be NULL. The function need
306306
not pay attention to expectedDesc, but it may be useful in special cases.
307307

308-
SetSingleFuncCall() is a helper function able to setup the function's
308+
InitMaterializedSRF() is a helper function able to setup the function's
309309
ReturnSetInfo for a single call, filling in the Tuplestore and the
310310
TupleDesc with the proper configuration for Materialize mode.
311311

0 commit comments

Comments
 (0)