Re: Help with quotes in plpgsql

From: "Hector Villarreal" <HVillarreal(at)mynewplace(dot)com>
To: "Milen A(dot) Radev" <milen(at)radev(dot)net>, <pgsql-sql(at)postgresql(dot)org>
Subject: Re: Help with quotes in plpgsql
Date: 2006-12-20 00:00:00
Message-ID: 8C5B026B51B6854CBE88121DBF097A866A4982@ehost010-33.exch010.intermedia.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

In case it is a version issue:
This should always work regardless of version:
Just cast the $1 variable as text followed by interval:

create or replace function test(integer) returns setof text as $$

declare

a record;

begin

select into a now() - ($1::text||'days')::interval;

return next a;

return;

end

$$ language 'plpgsql';

-----Original Message-----
From: pgsql-sql-owner(at)postgresql(dot)org [mailto:pgsql-sql-owner(at)postgresql(dot)org] On Behalf Of Milen A. Radev
Sent: Tuesday, December 19, 2006 2:54 PM
To: pgsql-sql(at)postgresql(dot)org
Subject: Re: [SQL] Help with quotes in plpgsql

Richard Ray написа:
> On Tue, 19 Dec 2006, Milen A. Radev wrote:
>
>> Richard Ray ÿÿÿÿÿÿÿÿÿÿÿÿ:
>>> How should this be properly quoted
>>>
>>> create or replace function test(integer) returns setof text as $$
>>> declare
>>> a record;
>>> begin
>>> select into a now() - interval '$1 day';
>>> return next a;
>>> return;
>>> end
>>> $$ language 'plpgsql';
>>>
>>> I'm not having a lot of luck
>>
>>
>> Welcome to psql 8.2.0, the PostgreSQL interactive terminal.
>>
>> Type: \copyright for distribution terms
>> \h for help with SQL commands
>> \? for help with psql commands
>> \g or terminate with semicolon to execute query
>> \q to quit
>>
>> milen=> create or replace function test(integer) returns setof text as $$
>> milen$> declare
>> milen$> a record;
>> milen$> begin
>> milen$> select into a now() - interval '$1 day';
>> milen$> return next a;
>> milen$> return;
>> milen$> end
>> milen$> $$ language 'plpgsql';
>> CREATE FUNCTION
>> milen=>
>>
>>
>>
>> No problems here. What version are you using?
>>
>
> I'm using 8.1.0 but I don't think that's the problem
> I have no problem creating the function but it will only substract 1 day

Sorry about that - I have not understand your problem.

In addition to the solution already proposed you could use "EXECUTE".
See more info here -
http://www.postgresql.org/docs/8.2/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN
.

--
Milen A. Radev

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2006-12-20 00:27:00 Re: Help with quotes in plpgsql
Previous Message Milen A. Radev 2006-12-19 22:54:13 Re: Help with quotes in plpgsql