Temporarily disable error checks for missing selectivity

functions, in order to work around oversight in 6.5 release: rtree
index functions haven't got any.  Mea culpa ...
This commit is contained in:
Tom Lane 1999-06-19 00:44:44 +00:00
parent 0591bbd558
commit d30c4b0562
1 changed files with 44 additions and 19 deletions

View File

@ -12,7 +12,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.29 1999/05/31 19:32:47 tgl Exp $
* $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.30 1999/06/19 00:44:44 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -414,17 +414,29 @@ btreesel(Oid operatorObjectId,
* don't want to miss the benefits of a good selectivity estimate.)
*/
if (!oprrest)
{
#if 1
/*
* XXX temporary fix for 6.5: rtree operators are missing their
* selectivity estimators, so return a default estimate instead.
* Ugh.
*/
result = (float64) palloc(sizeof(float64data));
*result = 0.5;
#else
elog(ERROR,
"Operator %u must have a restriction selectivity estimator to be used in a btree index",
"Operator %u must have a restriction selectivity estimator to be used in an index",
operatorObjectId);
result = (float64) fmgr(oprrest,
(char *) operatorObjectId,
(char *) indrelid,
(char *) (int) attributeNumber,
(char *) constValue,
(char *) constFlag,
NULL);
#endif
}
else
result = (float64) fmgr(oprrest,
(char *) operatorObjectId,
(char *) indrelid,
(char *) (int) attributeNumber,
(char *) constValue,
(char *) constFlag,
NULL);
}
if (!PointerIsValid(result))
@ -473,18 +485,31 @@ btreenpage(Oid operatorObjectId,
* don't want to miss the benefits of a good selectivity estimate.)
*/
if (!oprrest)
{
#if 1
/*
* XXX temporary fix for 6.5: rtree operators are missing their
* selectivity estimators, so return a default estimate instead.
* Ugh.
*/
tempData = 0.5;
temp = &tempData;
#else
elog(ERROR,
"Operator %u must have a restriction selectivity estimator to be used in a btree index",
"Operator %u must have a restriction selectivity estimator to be used in an index",
operatorObjectId);
temp = (float64) fmgr(oprrest,
(char *) operatorObjectId,
(char *) indrelid,
(char *) (int) attributeNumber,
(char *) constValue,
(char *) constFlag,
NULL);
#endif
}
else
temp = (float64) fmgr(oprrest,
(char *) operatorObjectId,
(char *) indrelid,
(char *) (int) attributeNumber,
(char *) constValue,
(char *) constFlag,
NULL);
}
atp = SearchSysCacheTuple(RELOID,
ObjectIdGetDatum(indexrelid),
0, 0, 0);