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

From Tomas Vondra
Subject Re: BUG #18705: Segmentation fault when create brin index on user-defined type.
Date
Msg-id e47f0a40-f778-4165-90fb-3fa1be786234@vondra.me
Whole thread Raw
In response to Re: BUG #18705: Segmentation fault when create brin index on user-defined type.  (Tender Wang <tndrwang@gmail.com>)
Responses Re: BUG #18705: Segmentation fault when create brin index on user-defined type.
List 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 by date:

Previous
From: Etienne LAFARGE
Date:
Subject: Today's Postgres Releases break login roles
Next
From: Tom Lane
Date:
Subject: Re: BUG #18705: Segmentation fault when create brin index on user-defined type.