Revert thinko introduced into prefix_selectivity() by my recent patch:
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 17 Mar 2008 17:13:54 +0000 (17:13 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 17 Mar 2008 17:13:54 +0000 (17:13 +0000)
make_greater_string needs the < procedure not the >= one.  Spotted by
Peter.

src/backend/utils/adt/selfuncs.c

index 96d8d8143d3faaa7c733de2f56d40b725853a952..071737ed352b083a2db818336ee88ab40133436d 100644 (file)
@@ -4531,17 +4531,17 @@ prefix_selectivity(VariableStatData *vardata,
         *      "x < greaterstr".
         *-------
         */
+       cmpopr = get_opfamily_member(opfamily, vartype, vartype,
+                                                                BTLessStrategyNumber);
+       if (cmpopr == InvalidOid)
+               elog(ERROR, "no < operator for opfamily %u", opfamily);
+       fmgr_info(get_opcode(cmpopr), &opproc);
+
        greaterstrcon = make_greater_string(prefixcon, &opproc);
        if (greaterstrcon)
        {
                Selectivity topsel;
 
-               cmpopr = get_opfamily_member(opfamily, vartype, vartype,
-                                                                        BTLessStrategyNumber);
-               if (cmpopr == InvalidOid)
-                       elog(ERROR, "no < operator for opfamily %u", opfamily);
-               fmgr_info(get_opcode(cmpopr), &opproc);
-
                topsel = ineq_histogram_selectivity(vardata, &opproc, false,
                                                                                        greaterstrcon->constvalue,
                                                                                        greaterstrcon->consttype);