There is a generic definition for any array added as part of https://commitfest.postgresql.org/10/708/ (it may be the reason for the duplicate error). I am not sure what your change is but I would review the above just in case. There is also a defect with a misleading error that is still being triggered for UUID arrays.
Enrique On Mon, Jul 17, 2017 at 4:25 PM Mark Rofail <markm.rof...@gmail.com> wrote: > On Wed, Jul 12, 2017 at 12:53 AM, Alvaro Herrera <alvhe...@2ndquadrant.com > > wrote: >> >> We have one opclass for each type combination -- int4 to int2, int4 to >> int4, int4 to int8, etc. You just need to add the new strategy to all >> the opclasses. > > > I tried this approach by manually declaring the operator multiple of > times in pg_amop.h (src/include/catalog/pg_amop.h) > > so instead of the polymorphic declaration > DATA(insert ( 2745 2277 2283 5 s 6108 2742 0 )); /* anyarray @>> > anyelem */ > > multiple declarations were used, for example for int4[] : > DATA(insert ( 2745 1007 20 5 s 6108 2742 0 )); /* int4[] @>> int8 */ > DATA(insert ( 2745 1007 23 5 s 6108 2742 0 )); /* int4[] @>> int4 */ > DATA(insert ( 2745 1007 21 5 s 6108 2742 0 )); /* int4[] @>> int2 */ > DATA(insert ( 2745 1007 1700 5 s 6108 2742 0 ));/* int4[] @>> numeric */ > > However, make check produced: > could not create unique index "pg_amop_opr_fam_index" > Key (amopopr, amoppurpose, amopfamily)=(6108, s, 2745) is duplicated. > > Am I implementing this the wrong way or do we need to look for another > approach? > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers >