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 по дате отправления:

Предыдущее
От: Bruno Ricardo Sacco
Дата:
Сообщение: Pl/pgSQL Question.
Следующее
От: Joe Conway
Дата:
Сообщение: Re: SELECT in a function != SELECT ?