mirror of
https://github.com/postgres/postgres.git
synced 2025-11-29 23:43:17 +03:00
Allow SQL-language functions to return the output of an INSERT/UPDATE/DELETE
RETURNING clause, not just a SELECT as formerly. A side effect of this patch is that when a set-returning SQL function is used in a FROM clause, performance is improved because the output is collected into a tuplestore within the function, rather than using the less efficient value-per-call mechanism.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$PostgreSQL: pgsql/src/backend/utils/fmgr/README,v 1.15 2008/10/29 00:00:38 tgl Exp $
|
||||
$PostgreSQL: pgsql/src/backend/utils/fmgr/README,v 1.16 2008/10/31 19:37:56 tgl Exp $
|
||||
|
||||
Function Manager
|
||||
================
|
||||
@@ -434,7 +434,9 @@ and returns null. isDone is not used and should be left at ExprSingleResult.
|
||||
|
||||
The Tuplestore must be created with randomAccess = true if
|
||||
SFRM_Materialize_Random is set in allowedModes, but it can (and preferably
|
||||
should) be created with randomAccess = false if not.
|
||||
should) be created with randomAccess = false if not. Callers that can support
|
||||
both ValuePerCall and Materialize mode will set SFRM_Materialize_Preferred,
|
||||
or not, depending on which mode they prefer.
|
||||
|
||||
If available, the expected tuple descriptor is passed in ReturnSetInfo;
|
||||
in other contexts the expectedDesc field will be NULL. The function need
|
||||
|
||||
Reference in New Issue
Block a user