diff options
author | Bruce Momjian <bruce@momjian.us> | 2006-07-02 02:23:23 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2006-07-02 02:23:23 +0000 |
commit | 277807bd9eba1645d8dfc9252fa29220c4a83751 (patch) | |
tree | fb3dca975d8371bd42e9e58d0b841db3fd6c4654 /src/backend/commands/cluster.c | |
parent | 5d5c1416bf03efcf13cfd3b8f68a0bba199d70af (diff) | |
download | postgresql-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.c | 29 |
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 |