| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | Gregory Stark <stark(at)enterprisedb(dot)com> | 
| Cc: | "pgsql-patches" <pgsql-patches(at)postgresql(dot)org> | 
| Subject: | Re: updated SORT/LIMIT patch | 
| Date: | 2007-05-05 00:49:41 | 
| Message-ID: | 12756.1178326181@sss.pgh.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-patches | 
Gregory Stark <stark(at)enterprisedb(dot)com> writes:
> "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>> Look at the chgParam signaling.  Since a Sort node itself has no
>> parameters, it historically has only had to re-sort if its input node
>> suffers a parameter change, which it checks in ExecReScanSort.  But now
>> the bound effectively acts like a parameter, and has to force a
>> recomputation.
> Hm, that all makes sense now. But then there's something mysterious going on
> still as the regression test I tried to write for this actually does work:
Yeah, because in this example nodeSort doesn't ask for randomAccess to
the sort result, and so ExecReScanSort is forced to repeat the sort
anyway.
[ greps a bit... ]  It looks like the only way that you could expose the
bug in the current state of the system would be if the sort/limit with
the outer parameter were the inside of a nestloop join in the subplan.
nodeNestloop would set EXEC_FLAG_REWIND, causing nodeSort to set
randomAccess, allowing ExecReScanSort to suppose that it could rewind
the sort.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Bruce Momjian | 2007-05-05 04:09:46 | Re: small patch for guc issues | 
| Previous Message | Gregory Stark | 2007-05-04 18:28:50 | Re: updated SORT/LIMIT patch |