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.
We can definitely add tests to “ src/test/regress/sql/gin.sql” to test this. Do you agree?
Also what do you mean by “ ginqueryarrayextract needs to be told about this too”?