Hi all, I am using version 8.2.4 of the source and compiled it with both OPTIMIZER_DEBUG and EXEC_EVALDEBUG enabled to take a look at how quals are evaluated by the executor.
However, when I issue a query like SELECT name FROM city WHERE population < 100000 LIMIT 10; I get the following debug output from postgres: After canonicalize_qual() {OPEXPR :opno 97 :opfuncid 66 :opresulttype 16 :opretset false :args ( {VAR :varno 1 :varattno 4 :vartype 23 :vartypmod -1 :varlevelsup 0 :varnoold 1 :varoattno 4 } {CONST :consttype 23 :constlen 4 :constbyval true :constisnull false :constvalue 4 [ -96 -122 1 0 ] } ) } RELOPTINFO (1): rows=1018 width=88 baserestrictinfo: city.population < 100000 path list: SeqScan(1) rows=1018 cost=0.00..66.16 cheapest startup path: SeqScan(1) rows=1018 cost=0.00..66.16 cheapest total path: SeqScan(1) rows=1018 cost=0.00..66.16 WARNING: could not dump unrecognized node type: 404 ExecQual: qual is ( { } ) WARNING: could not dump unrecognized node type: 404 ExecQual: qual is ( { } ) ... and many more of this WARNINGs. What happens to the OpExpr on its way from canonicalize_qual() to ExecQual() that makes _outNode() stumble over it when it is encountered in ExecQual()? Regards, Peter ---------------------------(end of broadcast)--------------------------- TIP 4: Have you searched our list archives? http://archives.postgresql.org