Re: Optimizing nbtree ScalarArrayOp execution, allowing multi-column ordered scans, skip scan
От | Peter Geoghegan |
---|---|
Тема | Re: Optimizing nbtree ScalarArrayOp execution, allowing multi-column ordered scans, skip scan |
Дата | |
Msg-id | CAH2-Wz=BH6SnWAM3b70sJ-CsxTcFR_VxHxDzNag=1N4eWs3K5w@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Optimizing nbtree ScalarArrayOp execution, allowing multi-column ordered scans, skip scan (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Optimizing nbtree ScalarArrayOp execution, allowing multi-column ordered scans, skip scan
|
Список | pgsql-hackers |
On Sun, Apr 7, 2024 at 9:25 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: > Perhaps this'd help: > > - Assert(xform[j].ikey == array->scan_key); > + Assert(array && xform[j].ikey == array->scan_key); > > If that doesn't silence it, I'd be prepared to just dismiss the > warning. The assertions in question are arguably redundant. There are very similar assertions just a little earlier on, as we initially set up the array stuff (right before _bt_compare_scankey_args is called). I'll just remove the "Assert(xform[j].ikey == array->scan_key)" assertion that Coverity doesn't like, in addition to the "Assert(!array || array->scan_key == i)" assertion, on the grounds that they're redundant. > Some work in the comment to explain why we must have an array here > wouldn't be out of place either, perhaps. There is a comment block about this right above the assertion in question: /* * Both scan keys might have arrays, in which case we'll * arbitrarily pass only one of the arrays. That won't * matter, since _bt_compare_scankey_args is aware that two * SEARCHARRAY scan keys mean that _bt_preprocess_array_keys * failed to eliminate redundant arrays through array merging. * _bt_compare_scankey_args just returns false when it sees * this; it won't even try to examine either array. */ Do you think it needs more work? -- Peter Geoghegan
В списке pgsql-hackers по дате отправления: