Re: can function arguments have the type tablename.columnname%TYPE? - Mailing list pgsql-general

From Igor Neyman
Subject Re: can function arguments have the type tablename.columnname%TYPE?
Date
Msg-id F4C27E77F7A33E4CA98C19A9DC6722A205F44D0E@EXCHANGE.corp.perceptron.com
Whole thread Raw
In response to Re: can function arguments have the type tablename.columnname%TYPE?  (Guillaume Lelarge <guillaume@lelarge.info>)
Responses Re: can function arguments have the type tablename.columnname%TYPE?  (Guillaume Lelarge <guillaume@lelarge.info>)
List pgsql-general

> -----Original Message-----
> From: Guillaume Lelarge [mailto:guillaume@lelarge.info]
> Sent: Tuesday, May 11, 2010 11:56 AM
> To: Tom Lane
> Cc: Dino Vliet; pgsql-general@postgresql.org
> Subject: Re: can function arguments have the type
> tablename.columnname%TYPE?
>
> Le 11/05/2010 16:16, Tom Lane a écrit :
> > Guillaume Lelarge <guillaume@lelarge.info> writes:
> >> Le 11/05/2010 10:28, Dino Vliet a écrit :
> >>> I'm writing a plpgsql function in pgadminIII and want to
> know if the arguments can have the following type:
> >>>
> >>> tablename.columnname%TYPE
> >
> >> No, this construct is only available *inside* a PL/pgsql function
> >> body
> >
> > That's incorrect: you can use it in a function declaration too.
> >
>
> Oh sure. With body, I meant the part between the two $$. But
> you're right, I should have said "inside the declare and body
> parts of a PL/pgsql function".
>
> > Not sure what the OP's problem is exactly --- it might be
> specific to
> > pgAdmin.
>
> IIUC, he means doing something like this:
>
> CREATE FUNCTION f1(arg1 table.column%TYPE ...
>
> Which, AFAICT, is not possible. And you can't do that with
> pgAdmin, but you can use the %TYPE in the declare and body
> parts in pgAdmin.
>
>
> --
> Guillaume.
>  http://www.postgresqlfr.org
>  http://dalibo.com
>
> --
> Sent via pgsql-general mailing list
> (pgsql-general@postgresql.org) To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
>

Guillaume,

I'm not sure why are you instisting that:

> CREATE FUNCTION f1(arg1 table.column%TYPE ...
>
> Which, AFAICT, is not possible.

It is definetily possible, i.e:

CREATE OR REPLACE FUNCTION myMaxCycle(i_n_Cell_id GP_CELL.cell_id%TYPE)
RETURNS GP_CYCLE.cycle_date_time%TYPE
AS $$...

Works in my 8.2 PG.

Regards,
Igor Neyman

pgsql-general by date:

Previous
From: Scott Marlowe
Date:
Subject: Re: Server tries to connect without ssl support
Next
From: "Igor Neyman"
Date:
Subject: Re: Weird unique constraint