diff --git a/src/backend/access/gist/gist.c b/src/backend/access/gist/gist.c index edebfcbebe..78a41dbb8f 100644 --- a/src/backend/access/gist/gist.c +++ b/src/backend/access/gist/gist.c @@ -6,7 +6,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.50 2000/01/19 23:54:46 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/gist/gist.c,v 1.51 2000/03/01 05:39:20 inoue Exp $ * *------------------------------------------------------------------------- */ @@ -284,12 +284,13 @@ gistbuild(Relation heap, { Oid hrelid = RelationGetRelid(heap); Oid irelid = RelationGetRelid(index); + bool inplace = IsReindexProcessing(); heap_close(heap, NoLock); index_close(index); - UpdateStats(hrelid, nh, true); - UpdateStats(irelid, ni, false); - if (oldPred != NULL) + UpdateStats(hrelid, nh, inplace); + UpdateStats(irelid, ni, inplace); + if (oldPred != NULL && !inplace) { if (ni == nh) pred = NULL; diff --git a/src/backend/access/hash/hash.c b/src/backend/access/hash/hash.c index a35cd86845..d116aa1a49 100644 --- a/src/backend/access/hash/hash.c +++ b/src/backend/access/hash/hash.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.35 2000/01/26 05:55:55 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/hash/hash.c,v 1.36 2000/03/01 05:39:22 inoue Exp $ * * NOTES * This file contains only the public interface routines. @@ -242,12 +242,13 @@ hashbuild(Relation heap, { Oid hrelid = RelationGetRelid(heap); Oid irelid = RelationGetRelid(index); + bool inplace = IsReindexProcessing(); heap_close(heap, NoLock); index_close(index); - UpdateStats(hrelid, nhtups, true); - UpdateStats(irelid, nitups, false); - if (oldPred != NULL) + UpdateStats(hrelid, nhtups, inplace); + UpdateStats(irelid, nitups, inplace); + if (oldPred != NULL && !inplace) { if (nitups == nhtups) pred = NULL; diff --git a/src/backend/access/rtree/rtree.c b/src/backend/access/rtree/rtree.c index 53c9d7946b..34cf0b6c93 100644 --- a/src/backend/access/rtree/rtree.c +++ b/src/backend/access/rtree/rtree.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.43 2000/01/26 05:56:00 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/rtree/Attic/rtree.c,v 1.44 2000/03/01 05:39:23 inoue Exp $ * *------------------------------------------------------------------------- */ @@ -261,12 +261,13 @@ rtbuild(Relation heap, { Oid hrelid = RelationGetRelid(heap); Oid irelid = RelationGetRelid(index); + bool inplace = IsReindexProcessing(); heap_close(heap, NoLock); index_close(index); - UpdateStats(hrelid, nh, true); - UpdateStats(irelid, ni, false); - if (oldPred != NULL) + UpdateStats(hrelid, nh, inplace); + UpdateStats(irelid, ni, inplace); + if (oldPred != NULL && !inplace) { if (ni == nh) pred = NULL; diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index 5bfc332f0d..2a4cd3e6c5 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.106 2000/02/25 02:58:47 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/catalog/index.c,v 1.107 2000/03/01 05:39:24 inoue Exp $ * * * INTERFACE ROUTINES @@ -2057,7 +2057,6 @@ reindex_index(Oid indexId, bool force) Oid heapId, procId, accessMethodId; Node *oldPred = NULL; PredInfo *predInfo; - List *cnfPred = NULL; AttrNumber *attributeNumberA; FuncIndexInfo fInfo, *funcInfo = NULL; int i, numberOfAttributes; @@ -2096,8 +2095,8 @@ reindex_index(Oid indexId, bool force) pfree(predString); } predInfo = (PredInfo *) palloc(sizeof(PredInfo)); - predInfo->pred = (Node *) cnfPred; - predInfo->oldPred = oldPred; + predInfo->pred = (Node *) oldPred; + predInfo->oldPred = NULL; /* Assign Index keys to attributes array */ attributeNumberA = (AttrNumber *) palloc(numberOfAttributes * sizeof(AttrNumber)); @@ -2247,5 +2246,5 @@ reindex_relation(Oid relid, bool force) setRelhasindexInplace(relid, true, false); } SetReindexProcessing(old); - return true; + return reindexed; }