On 2021-Mar-27, Mark Rofail wrote: > Hello Alvaro, > > Looking at 0001+0003, I see it claims GIN support for <<@ and @>>, but > > actually only the former is implemented fully; the latter is missing a > > strategy number in ginarrayproc.c and pg_amop.dat, and also > > src/test/regress/sql/gin.sql does not test it. I suspect > > ginqueryarrayextract needs to be told about this too. > > GIN/array_ops requires the left operand to be an array, so only @>> can be > used in GIN. > > However, <<@ is defined as @>> commutative counterpart, so > when for example “5 <<@ index” it will be translated to “index @>> index” > thus indirectly using the GIN index.
Ah, that makes sense. Looking at the docs again, I don't see anything that's wrong. I was confused about the lack of a new strategy number, but that's explained by what you say above. > We can definitely add tests to “ src/test/regress/sql/gin.sql” to test > this. Do you agree? Yes, we should do that. > Also what do you mean by “ ginqueryarrayextract needs to be told about this > too”? Well, if it's true that it's translated to the commutator, then I don't think any other code changes are needed. -- Álvaro Herrera 39°49'30"S 73°17'W "En las profundidades de nuestro inconsciente hay una obsesiva necesidad de un universo lógico y coherente. Pero el universo real se halla siempre un paso más allá de la lógica" (Irulan)