Re: Overloaded && operator from intarray module prevents index usage. - Mailing list pgsql-general

From Thomas Kellerer
Subject Re: Overloaded && operator from intarray module prevents index usage.
Date
Msg-id 95eb0be2-6020-3197-ecdb-8850f691ffa5@gmx.net
Whole thread Raw
In response to Re: Overloaded && operator from intarray module prevents index usage.  (Andrew Gierth <andrew@tao11.riddles.org.uk>)
List pgsql-general
Andrew Gierth schrieb am 28.02.2019 um 10:29:
> [intarray woes]
> 
>  Thomas> Is this expected behaviour? Is this caused by the Postgres core
>  Thomas> (e.g. the optimizer to taking the opclass into account) or is
>  Thomas> it a "problem" in the way the intarray module defines its
>  Thomas> operators?
> 
> It's basically a conflict between intarray (which is historically older)
> and the built-in array indexing support.
> 
> The reason it happens is that the operator resolution logic matches an
> (integer[] && integer[]) operator in preference to (anyarray && anyarray)
> regardless of their relative position on the search_path. This
> resolution happens before anything is known about any indexes that might
> be applicable. Then later, at planning time, an index is chosen based on
> the operator, not the reverse.

That makes sense, thanks. 



pgsql-general by date:

Previous
From: Andrew Gierth
Date:
Subject: Re: Overloaded && operator from intarray module prevents index usage.
Next
From: Morris de Oryx
Date:
Subject: Re: crosstab function