Re: Incorrect (?) escape of the $1

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Incorrect (?) escape of the $1
Дата
Msg-id 18598.1072131384@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Incorrect (?) escape of the $1  (andrew@pillette.com)
Список pgsql-novice
andrew@pillette.com writes:
> Is there any magic sequence of quotes or backslashes that will get the following (simplified version) to do the
obviousthing? 
> CREATE FUNCTION doesnt_work(integer) RETURNS date LANGUAGE SQL AS
> 'SELECT (date ''epoch'' + interval '' $1 day'')::date ' STRICT IMMUTABLE;

> No variable interpolation is performed; the interval 1 day is always used.

You could probably make it work via string concatenation (||)
if you were absolutely intent on it, but far easier is to use the
number-times-interval operator:

CREATE FUNCTION does_work(integer) RETURNS date LANGUAGE SQL AS
'SELECT (date ''epoch'' + $1 * interval ''1 day'')::date'
STRICT IMMUTABLE;

            regards, tom lane

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: pl/pgSQL sequence question
Следующее
От: Tom Lane
Дата:
Сообщение: Re: INDEX and NULL