aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands/cluster.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2006-07-02 02:23:23 +0000
committerBruce Momjian <bruce@momjian.us>2006-07-02 02:23:23 +0000
commit277807bd9eba1645d8dfc9252fa29220c4a83751 (patch)
treefb3dca975d8371bd42e9e58d0b841db3fd6c4654 /src/backend/commands/cluster.c
parent5d5c1416bf03efcf13cfd3b8f68a0bba199d70af (diff)
downloadpostgresql-277807bd9eba1645d8dfc9252fa29220c4a83751.tar.gz
postgresql-277807bd9eba1645d8dfc9252fa29220c4a83751.zip
Add FILLFACTOR to CREATE INDEX.
ITAGAKI Takahiro
Diffstat (limited to 'src/backend/commands/cluster.c')
-rw-r--r--src/backend/commands/cluster.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c
index 381b6ed5962..08b76e96d5f 100644
--- a/src/backend/commands/cluster.c
+++ b/src/backend/commands/cluster.c
@@ -11,7 +11,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.147 2006/05/02 22:25:10 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/commands/cluster.c,v 1.148 2006/07/02 02:23:19 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -566,6 +566,8 @@ make_new_heap(Oid OIDOldHeap, const char *NewName, Oid NewTableSpace)
tupdesc;
Oid OIDNewHeap;
Relation OldHeap;
+ HeapTuple tuple;
+ ArrayType *options;
OldHeap = heap_open(OIDOldHeap, AccessExclusiveLock);
OldHeapDesc = RelationGetDescr(OldHeap);
@@ -576,6 +578,26 @@ make_new_heap(Oid OIDOldHeap, const char *NewName, Oid NewTableSpace)
*/
tupdesc = CreateTupleDescCopyConstr(OldHeapDesc);
+ /*
+ * Use options of the old heap for new heap.
+ */
+ tuple = SearchSysCache(RELOID,
+ ObjectIdGetDatum(OIDOldHeap),
+ 0, 0, 0);
+ if (tuple)
+ {
+ Datum datum;
+ bool isNull;
+ datum = SysCacheGetAttr(RELOID, tuple,
+ Anum_pg_class_reloptions, &isNull);
+ options = isNull ? NULL : DatumGetArrayTypeP(datum);
+ }
+ else
+ {
+ /* should not happen */
+ options = NULL;
+ }
+
OIDNewHeap = heap_create_with_catalog(NewName,
RelationGetNamespace(OldHeap),
NewTableSpace,
@@ -587,7 +609,10 @@ make_new_heap(Oid OIDOldHeap, const char *NewName, Oid NewTableSpace)
true,
0,
ONCOMMIT_NOOP,
- allowSystemTableMods);
+ allowSystemTableMods,
+ options);
+
+ ReleaseSysCache(tuple);
/*
* Advance command counter so that the newly-created relation's catalog