Functions with text parameters

Поиск
Список
Период
Сортировка
От Stoffel van Aswegen
Тема Functions with text parameters
Дата
Msg-id 9D8BB61A24FCD0118E83080036CE9603925CFB@NTSERVER01
обсуждение исходный текст
Список pgsql-novice
I have trouble creating a function that takes text parameters.

I have a table (T1) with one field (code varchar(10)).
I want to create a function as follows:

CREATE FUNCTION test (varchar(10))
RETURNS int
AS 'SELECT COUNT(*) FROM T1 WHERE CODE=\'$1\''
LANGUAGE 'SQL'

pqsl complained about a "parsing error before (" - I assume it's the first (
of (10).

So it tried: "CREATE FUNCTION test (text)...."
psql accepted the function definition and it runs, but if the value of code
is 'abc' and I run "SELECT test('abc')", the function returns 0 (indicating
that no rows were found).

I did not try defining 'code' as 'text' (in table T1).

1.    Why does the function not return the correct result? Is it because
the types of the parameter and the field are different?
2.    How can I create the function by specifying the parameter as
varchar(10)? Should I create a user defined type that is equivalent to
varchar(10) and use that type in the function and table definitions?
3.    What is the implication of using the 'text' type instead of
'varchar' in tables?

Stoffel van Aswegen
stoffelva@bigfoot.com

Three days without programming and life becomes meaningless.


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

Предыдущее
От: Thomas Good
Дата:
Сообщение: Re: trigger to run external script
Следующее
От: Bo Dahlstrom
Дата:
Сообщение: Problem with initdb