diff options
| author | Robert Haas <rhaas@postgresql.org> | 2011-01-20 22:44:10 -0500 |
|---|---|---|
| committer | Robert Haas <rhaas@postgresql.org> | 2011-01-20 22:48:29 -0500 |
| commit | 39b5e5f3370258cae843e8cc83eccd59ddb532dd (patch) | |
| tree | 54a4bcee6167e5051a32bd634e9da668ca760c8a /src/include | |
| parent | ba3afc88d2b81fc609cda8504ee7b54c54b379d7 (diff) | |
Make ALTER TABLE revalidate uniqueness and exclusion constraints.
Failure to do so can lead to constraint violations. This was broken by
commit 1ddc2703a936d03953657f43345460b9242bbed1 on 2010-02-07, so
back-patch to 9.0.
Noah Misch. Regression test by me.
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/catalog/index.h | 5 | ||||
| -rw-r--r-- | src/include/commands/cluster.h | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/include/catalog/index.h b/src/include/catalog/index.h index 6b5f3c43c8b..18f17037b7b 100644 --- a/src/include/catalog/index.h +++ b/src/include/catalog/index.h @@ -71,7 +71,10 @@ extern double IndexBuildHeapScan(Relation heapRelation, extern void validate_index(Oid heapId, Oid indexId, Snapshot snapshot); extern void reindex_index(Oid indexId, bool skip_constraint_checks); -extern bool reindex_relation(Oid relid, bool toast_too, bool heap_rebuilt); + +#define REINDEX_CHECK_CONSTRAINTS 0x1 +#define REINDEX_SUPPRESS_INDEX_USE 0x2 +extern bool reindex_relation(Oid relid, bool toast_too, int flags); extern bool ReindexIsProcessingHeap(Oid heapOid); extern bool ReindexIsProcessingIndex(Oid indexOid); diff --git a/src/include/commands/cluster.h b/src/include/commands/cluster.h index ed3853af24c..a5aeb1aa103 100644 --- a/src/include/commands/cluster.h +++ b/src/include/commands/cluster.h @@ -28,6 +28,7 @@ extern Oid make_new_heap(Oid OIDOldHeap, Oid NewTableSpace); extern void finish_heap_swap(Oid OIDOldHeap, Oid OIDNewHeap, bool is_system_catalog, bool swap_toast_by_content, + bool check_constraints, TransactionId frozenXid); #endif /* CLUSTER_H */ |
