Fail to search in array, produced by subquery - is it a bug?

Поиск
Список
Период
Сортировка
От Dmitry Fefelov
Тема Fail to search in array, produced by subquery - is it a bug?
Дата
Msg-id 201104271029.03301.fozzy@ac-sw.com
обсуждение исходный текст
Ответы Re: Fail to search in array, produced by subquery - is it a bug?
Список pgsql-hackers
With Postgres 8.4 query like 

SELECT * FROM core.tag_links ctl WHERE (ctl.tag_id = ANY (     SELECT array_agg(ct.id)        FROM core.tags ct
WHERE(LOWER(ct.tag) LIKE LOWER(('search tag')::text || '%') ESCAPE           E'\\')   ));
 

produces error:

ERROR:  operator does not exist: bigint = bigint[]
ROW 3:  WHERE (ctl.tag_id = ANY (                            ^
HINT:  No operator matches the given name and argument type(s). You might need 
to add explicit type casts.

Bith ct.id and ctl.tag_id - of type BIGINT.

Result of 

SELECT array_agg(ct.id)        FROM core.tags ct       WHERE (LOWER(ct.tag) LIKE LOWER(('search tag')::text || '%')
ESCAPE          E'\\');
 
                                                                        array_agg
                                                                                      
 

-----------------------------------------------------------------------------------------------------------------------------{54426,53600,54062,187207,187642,54395,53312,51912,128621,19203,6613,54462}
(1 row)

Should ANY (...)  and ALL (...) work when "..." is a subquery, returning 
single ARRAY field, or maybe  I misunderstood something?

Regards, 
Dmitry


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Daniel Farina
Дата:
Сообщение: Re: "stored procedures" - use cases?
Следующее
От: Andrew Dunstan
Дата:
Сообщение: fixing INT64_FORMAT warnings on Mingw