Re: An out-of-date comment in nodeIndexonlyscan.c
От | David Rowley |
---|---|
Тема | Re: An out-of-date comment in nodeIndexonlyscan.c |
Дата | |
Msg-id | CAApHDvog5unm6LQ-68B4gyhYF-Gf+6-87fns1zTFvwbrFv0wwg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: An out-of-date comment in nodeIndexonlyscan.c (Thomas Munro <thomas.munro@gmail.com>) |
Ответы |
Re: An out-of-date comment in nodeIndexonlyscan.c
|
Список | pgsql-hackers |
On Mon, 14 Jun 2021 at 00:02, Thomas Munro <thomas.munro@gmail.com> wrote: > Here's a highly experimental patch I came up with that seems to > produce the right results in simple cases, without (yet) involving the > planner. + /* Find all equality quals. */ + for (int i = 0; i < n_scan_keys; ++i) + { + if (scan_keys[i].sk_strategy == BTEqualStrategyNumber) + attnos[nattnos++] = scan_keys[i].sk_attno; + } + + /* Are all attributes covered? */ + /* XXX is this check enough or do we need to work harder? */ + qsort(attnos, nattnos, sizeof(AttrNumber), compare_int16); + nattnos = qunique(attnos, nattnos, sizeof(AttrNumber), compare_int16); + if (nattnos == index->rd_index->indnkeyatts) I think a more optimal and nicer way of doing that would be setting bits in a Bitmapset then checking bms_num_members is equal to n_scan_keys. David
В списке pgsql-hackers по дате отправления: