Re: Review: B-Tree emulation for GIN

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: Review: B-Tree emulation for GIN
Дата
Msg-id 49AEAE32.3010408@enterprisedb.com
обсуждение исходный текст
Ответ на Re: Review: B-Tree emulation for GIN  (Teodor Sigaev <teodor@sigaev.ru>)
Ответы Re: Review: B-Tree emulation for GIN
Список pgsql-hackers
The GIN_EXTRACT_VALUE macro returns a pointer to a static 'entries' 
variable. That doesn't seem safe. Is it really never possible to have to  two GIN searches in a plan, both calling and
usingthe value returned 
 
by extractValue simultaneously? In any case that seems like a pretty 
weak assumption.

You might want to declare extra_data as just "void *", instead of an 
array of pointers. The data type implementation might want to store 
something there that's not per-key, but applies to the whole query. I 
see that you're passing it to comparePartial, but that seems to be just 
future-proofing. What kind of a data type are you envisioning that would 
make use of it? It seems that you could pass the same information in the 
partial key Datum itself that extractQuery returns. You're currently 
using it as a way to avoid some palloc's in gin_tsquery_consistent(). 
That seems like a pretty dirty hack. I doubt there's any meaningful 
performance advantage from that, but if there is, I think you could use 
a statically allocated array instead.

--   Heikki Linnakangas  EnterpriseDB   http://www.enterprisedb.com


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: SYNONYMs revisited
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Updates of SE-PostgreSQL 8.4devel patches (r1668)