diff options
| author | Simon Riggs | 2012-12-01 12:54:20 +0000 |
|---|---|---|
| committer | Simon Riggs | 2012-12-01 12:54:20 +0000 |
| commit | 8de72b66a2edcf12c812de0a73bd50b6b7d81d62 (patch) | |
| tree | 3cb4fc55c3d70b7b972910cfeb22cbb7c704875a /src/include | |
| parent | 44c03efee3d15a1db3d64bc5a2da91c145a91873 (diff) | |
COPY FREEZE and mark committed on fresh tables.
When a relfilenode is created in this subtransaction or
a committed child transaction and it cannot otherwise
be seen by our own process, mark tuples committed ahead
of transaction commit for all COPY commands in same
transaction. If FREEZE specified on COPY
and pre-conditions met then rows will also be frozen.
Both options designed to avoid revisiting rows after commit,
increasing performance of subsequent commands after
data load and upgrade. pg_restore changes later.
Simon Riggs, review comments from Heikki Linnakangas, Noah Misch and design
input from Tom Lane, Robert Haas and Kevin Grittner
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/access/heapam.h | 2 | ||||
| -rw-r--r-- | src/include/utils/portal.h | 1 | ||||
| -rw-r--r-- | src/include/utils/snapmgr.h | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/src/include/access/heapam.h b/src/include/access/heapam.h index 3be6b3a39f1..92627bfc25c 100644 --- a/src/include/access/heapam.h +++ b/src/include/access/heapam.h @@ -26,6 +26,8 @@ /* "options" flag bits for heap_insert */ #define HEAP_INSERT_SKIP_WAL 0x0001 #define HEAP_INSERT_SKIP_FSM 0x0002 +#define HEAP_INSERT_COMMITTED 0x0004 +#define HEAP_INSERT_FROZEN 0x0008 typedef struct BulkInsertStateData *BulkInsertState; diff --git a/src/include/utils/portal.h b/src/include/utils/portal.h index daafd0e15e3..bfb03b88907 100644 --- a/src/include/utils/portal.h +++ b/src/include/utils/portal.h @@ -220,5 +220,6 @@ extern void PortalDefineQuery(Portal portal, extern Node *PortalListGetPrimaryStmt(List *stmts); extern void PortalCreateHoldStore(Portal portal); extern void PortalHashTableDeleteAll(void); +extern bool ThereAreNoReadyPortals(void); #endif /* PORTAL_H */ diff --git a/src/include/utils/snapmgr.h b/src/include/utils/snapmgr.h index 6b2ef80d067..da47e79eda3 100644 --- a/src/include/utils/snapmgr.h +++ b/src/include/utils/snapmgr.h @@ -48,5 +48,6 @@ extern Datum pg_export_snapshot(PG_FUNCTION_ARGS); extern void ImportSnapshot(const char *idstr); extern bool XactHasExportedSnapshots(void); extern void DeleteAllExportedSnapshotFiles(void); +extern bool ThereAreNoPriorRegisteredSnapshots(void); #endif /* SNAPMGR_H */ |
