Re: BUG #18705: Segmentation fault when create brin index on user-defined type.

Поиск
Список
Период
Сортировка
От Tomas Vondra
Тема Re: BUG #18705: Segmentation fault when create brin index on user-defined type.
Дата
Msg-id e47f0a40-f778-4165-90fb-3fa1be786234@vondra.me
обсуждение исходный текст
Ответ на Re: BUG #18705: Segmentation fault when create brin index on user-defined type.  (Tender Wang <tndrwang@gmail.com>)
Ответы Re: BUG #18705: Segmentation fault when create brin index on user-defined type.
Список pgsql-bugs

On 11/15/24 07:17, Tender Wang wrote:
> 
> 
> Tomas Vondra <tomas@vondra.me <mailto:tomas@vondra.me>> 于2024年11月14日
> 周四 21:48写道:
> 
>     On 11/14/24 03:40, PG Bug reporting form wrote:
>     > ...
>     >
>     > CREATE OPERATOR CLASS sva_special_ops FOR TYPE text using brin AS
>     OPERATOR 1
>     > <#,
>     > OPERATOR 2 <=#, OPERATOR 3 >=#, OPERATOR 4 >#, function 1
>     > si_same(text,text);
>     > CREATE INDEX idx_special1 ON t_sva using brin(sva sva_special_ops);
>     >
> 
>     I think this is a bit confused about CREATE OPERATOR CLASS. For BRIN
>     indexes this expects these 4 functions:
> 
>     Support Function 1      internal function brin_minmax_opcinfo()
>     Support Function 2      internal function brin_minmax_add_value()
>     Support Function 3      internal function brin_minmax_consistent()
>     Support Function 4      internal function brin_minmax_union()
> 
>     No wonder it crashes if CREATE OPERATOR CLASS passes si_same() instead
>     of brin_minmax_opcinfo.
> 
> 
> Can we report errors not crash if users pass an unexpected function?
> 

I think it might be improved to do some checks, yes. The CREATE OPERATOR
CLASS should be able to signatures of the functions - it's AM-specific,
and there's a limit how much can be checked. For example these functions
have "internal" arguments, which can be an arbitrary pointer.

That being said, I'm not aware of anyone working on such checks. Might
be a nice first patch, though.


regards

-- 
Tomas Vondra




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