diff options
Diffstat (limited to 'src/backend/optimizer/path/indxpath.c')
-rw-r--r-- | src/backend/optimizer/path/indxpath.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index f35372ebbef..35c57434830 100644 --- a/src/backend/optimizer/path/indxpath.c +++ b/src/backend/optimizer/path/indxpath.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.212.2.3 2007/07/31 19:53:49 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/path/indxpath.c,v 1.212.2.4 2007/11/07 22:37:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2801,6 +2801,7 @@ prefix_quals(Node *leftop, Oid opclass, Oid datatype; Oid oproid; Expr *expr; + FmgrInfo ltproc; Const *greaterstr; Assert(pstatus != Pattern_Prefix_None); @@ -2897,13 +2898,14 @@ prefix_quals(Node *leftop, Oid opclass, * "x < greaterstr". *------- */ - greaterstr = make_greater_string(prefix_const); + oproid = get_opclass_member(opclass, InvalidOid, + BTLessStrategyNumber); + if (oproid == InvalidOid) + elog(ERROR, "no < operator for opclass %u", opclass); + fmgr_info(get_opcode(oproid), <proc); + greaterstr = make_greater_string(prefix_const, <proc); if (greaterstr) { - oproid = get_opclass_member(opclass, InvalidOid, - BTLessStrategyNumber); - if (oproid == InvalidOid) - elog(ERROR, "no < operator for opclass %u", opclass); expr = make_opclause(oproid, BOOLOID, false, (Expr *) leftop, (Expr *) greaterstr); result = lappend(result, |