From: | Alex <zhihui(dot)fan1213(at)gmail(dot)com> |
---|---|
To: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | when the IndexScan reset to the next ScanKey for in operator |
Date: | 2019-08-21 12:58:47 |
Message-ID: | CAKU4AWoUnnZE5oz71+pPu=xSHQBeDM649NKMuOxfhATWAzx22g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
given the following example:
postgres=# create table t2 as select generate_series(1, 100000) as a,
generate_series(1, 100000) as b;
SELECT 100000
postgres=# create index t2_idx on t2(a);
CREATE INDEX
postgres=# set enable_seqscan = 0;
SET
postgres=# select * from t2 where a in (1, 100000);
a | b
--------+--------
1 | 1
100000 | 100000
(2 rows)
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?
thanks
From | Date | Subject | |
---|---|---|---|
Next Message | Asif Rehman | 2019-08-21 13:47:04 | WIP/PoC for parallel backup |
Previous Message | Dagfinn Ilmari Mannsåker | 2019-08-21 12:32:57 | Re: "ago" times on buildfarm status page |