Thread: Weird behaviour of = ANY ( SUBQUERY ) ?
Version - 8.5devel. Why this doesn't work: # SELECT 1 = ANY( ( SELECT '{1,2}'::int4[]) ); ERROR: operator does not exist: integer = integer[] LINE 1: SELECT 1 = ANY( ( SELECT '{1,2}'::int4[]) ); ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. direct usage of array of course works: # select 1 = any ( '{1,2}'::int4[] ); ?column? ---------- t (1 row) depesz -- Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/ jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007
hubert depesz lubaczewski <depesz@depesz.com> writes: > Why this doesn't work: > # SELECT 1 = ANY( ( SELECT '{1,2}'::int4[]) ); > ERROR: operator does not exist: integer = integer[] > LINE 1: SELECT 1 = ANY( ( SELECT '{1,2}'::int4[]) ); > ^ Why would you expect it to work? The datatypes aren't compatible. > direct usage of array of course works: > # select 1 = any ( '{1,2}'::int4[] ); ANY with a sub-SELECT and ANY without one are two completely different things. regards, tom lane