SELECT in a function != SELECT ?
От | Ian Morgan |
---|---|
Тема | SELECT in a function != SELECT ? |
Дата | |
Msg-id | Pine.LNX.4.44.0204250101300.26231-100000@light.webcon.net обсуждение исходный текст |
Ответ на | Pl/pgSQL Question. (Bruno Ricardo Sacco <bsacco@hypernet.com.py>) |
Список | pgsql-sql |
While trying to formulate an answer to another user's query on this list, I came a across what I think is strange behaviour in an SQL funsction: The 3rd column of my 'contacts' table is 'first_name'. A regular select will allow me to find this: SELECT a.attname FROM pg_class c, pg_attribute a WHERE c.relname = 'contacts' and a.attnum = 3 and a.attrelid=c.oid; attname ------------first_name (1 row) But when turned into a function: CREATE FUNCTION get_colname (name,smallint) RETURNS name AS ' SELECT a.attname FROM pg_class c, pg_attribute a WHERE c.relname = ''$1'' and a.attnum= $2 and a.attrelid=c.oid ' LANGUAGE SQL; SELECT get_colname('contacts',3); get_colname ------------- (1 row) The result is empty!? Even more strange: SELECT 'x'||get_colname('contacts',3)||'x' as foo; foo ----- (1 row) Should I not be seeing "xx" as the result here!? What's going on? Anyone wknow why the above function get_colname isn't doing what I expect? Regards, Ian Morgan -- -------------------------------------------------------------------Ian E. Morgan Vice President & C.O.O. Webcon,Inc.imorgan@webcon.net PGP: #2DA40D07 www.webcon.net * Customized Linux network solutions foryour business * -------------------------------------------------------------------
В списке pgsql-sql по дате отправления: