aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/copy.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2002-05-21 22:59:01 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2002-05-21 22:59:01 +0000
commit6c6f395a8aca8a9525d62cbf46fbafd130bdb9e5 (patch)
tree3441e3fff093efdb62b2ef19cac4371fe248c241 /src/backend/commands/copy.c
parent26fcd25c57cd56cd42f1cec73ede1198d1ca941b (diff)
downloadpostgresql-6c6f395a8aca8a9525d62cbf46fbafd130bdb9e5.tar.gz
postgresql-6c6f395a8aca8a9525d62cbf46fbafd130bdb9e5.zip
Since COPY fires triggers, it seems like a good idea for it to use
a frozen (copied) snapshot too. Move execMain's snapshot copying code out into a subroutine in case we find other places that need it.
Diffstat (limited to 'src/backend/commands/copy.c')
-rw-r--r--src/backend/commands/copy.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c
index 83ca5b32c54..16c23d320ee 100644
--- a/src/backend/commands/copy.c
+++ b/src/backend/commands/copy.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.155 2002/05/21 22:05:54 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.156 2002/05/21 22:59:00 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -447,6 +447,7 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp,
bool *isvarlena;
int16 fld_size;
char *string;
+ Snapshot mySnapshot;
if (oids && !rel->rd_rel->relhasoids)
elog(ERROR, "COPY: table %s does not have OIDs",
@@ -494,7 +495,9 @@ CopyTo(Relation rel, bool binary, bool oids, FILE *fp,
CopySendData(&tmp, sizeof(int32), fp);
}
- scandesc = heap_beginscan(rel, QuerySnapshot, 0, NULL);
+ mySnapshot = CopyQuerySnapshot();
+
+ scandesc = heap_beginscan(rel, mySnapshot, 0, NULL);
while ((tuple = heap_getnext(scandesc, ForwardScanDirection)) != NULL)
{