Re: when the IndexScan reset to the next ScanKey for in operator
| От | Kyotaro Horiguchi |
|---|---|
| Тема | Re: when the IndexScan reset to the next ScanKey for in operator |
| Дата | |
| Msg-id | 20190822.181346.22906291.horikyota.ntt@gmail.com обсуждение |
| Ответ на | when the IndexScan reset to the next ScanKey for in operator (Alex <zhihui.fan1213@gmail.com>) |
| Список | pgsql-hackers |
Hi, At Wed, 21 Aug 2019 20:58:47 +0800, Alex <zhihui.fan1213@gmail.com> wrote in <CAKU4AWoUnnZE5oz71+pPu=xSHQBeDM649NKMuOxfhATWAzx22g@mail.gmail.com> > postgres=# select * from t2 where a in (1, 100000); ... > I can see the plan stores the "1 and 100000" information in > IndexScan->indexqual, which is an SCALARARRAYOPEXPR expression. ... > suppose the executor should scan 1 first, If all the tuples for 1 has > been scanned, then **it should be reset to 100000** and scan again. > however I can't find out the code for that. looks index_rescan is not for > this. am I miss something? Perhaps _bt_advance_array_keys() and btgettuple() would be what you are seeking for. > /* ... otherwise see if we have more array keys to deal with */ > } while (so->numArrayKeys && _bt_advance_array_keys(scan, dir)); regards. -- Kyotaro Horiguchi NTT Open Source Software Center
В списке pgsql-hackers по дате отправления: