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