Re: [HACKERS] OR clause - check code
От | Vadim Mikheev |
---|---|
Тема | Re: [HACKERS] OR clause - check code |
Дата | |
Msg-id | 35C30159.673D85FF@krs.ru обсуждение исходный текст |
Ответ на | OR clause - check code (Bruce Momjian <maillist@candle.pha.pa.us>) |
Ответы |
Re: [HACKERS] OR clause - check code
|
Список | pgsql-hackers |
Bruce Momjian wrote: > > Vadim, would you please review this code, and let me know if it is > correct. I am unsure about the calls to ExecStoreTuple(), ExecQual() > (is proper context used?), and placement of ReleaseBuffer(). Do I need ^^^^^^^^^^^^^^^^^^^^^^ Yes. execScan.c:ExecScan() sets econtext->ecxt_scantuple = slot <-- returned by Seq/Index scan -- before check Scan qual and so econtext->ecxt_scantuple already points to the slot where you store new tuple. It seems that no one change this pointer... But did you try to use multi-index scan in inner plan of Nestloop? It seems that you should add this to ExecIndexReScan(): if (exprCtxt != NULL) node->scan.scanstate->cstate.cs_ExprContext->ecxt_outertuple = exprCtxt->ecxt_outertuple; Also, ExecIndexReScan() evaluates run-time keys for _current_ index scan only - this must be changed and indexstate->iss_IndexPtr must be setted to 0. > to free the tuple buffer if I decide it doesn't meet my ExecQual test? Yes, you have to free buffer. Vadim
В списке pgsql-hackers по дате отправления: