aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/copy.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-10-11 11:45:52 +0900
committerMichael Paquier <michael@paquier.xyz>2022-10-11 11:45:52 +0900
commit9fcdf2c787ac6da330165ea3cd50ec5155943a2b (patch)
tree6e376c7b1258238403feb61da7fc90815d803258 /src/backend/commands/copy.c
parent0e87dfe46443286e630e9bcbc0c39a39c2c2cbb2 (diff)
downloadpostgresql-9fcdf2c787ac6da330165ea3cd50ec5155943a2b.tar.gz
postgresql-9fcdf2c787ac6da330165ea3cd50ec5155943a2b.zip
Add support for COPY TO callback functions
This is useful as a way for extensions to process COPY TO rows in the way they see fit (say auditing, analytics, backend, etc.) without the need to invoke an external process running as the OS user running the backend through PROGRAM that requires superuser rights. COPY FROM already provides a similar callback for logical replication. For COPY TO, the callback is triggered when we are ready to send a row in CopySendEndOfRow(), which is the same code path as when sending a row to a frontend or a pipe/file. A small test module, test_copy_callbacks, is added to provide some coverage for this facility. Author: Bilva Sanaba, Nathan Bossart Discussion: https://postgr.es/m/253C21D1-FCEB-41D9-A2AF-E6517015B7D7@amazon.com
Diffstat (limited to 'src/backend/commands/copy.c')
-rw-r--r--src/backend/commands/copy.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 49924e476af..db4c9dbc231 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -310,7 +310,7 @@ DoCopy(ParseState *pstate, const CopyStmt *stmt,
cstate = BeginCopyTo(pstate, rel, query, relid,
stmt->filename, stmt->is_program,
- stmt->attlist, stmt->options);
+ NULL, stmt->attlist, stmt->options);
*processed = DoCopyTo(cstate); /* copy from database to file */
EndCopyTo(cstate);
}