Re: create type with %type or %rowtype

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: create type with %type or %rowtype
Дата
Msg-id 4eaaea2a-5dd4-a865-6d27-d4988d739ccf@aklaver.com
обсуждение исходный текст
Ответ на Re: create type with %type or %rowtype  (Paul Förster <paul.foerster@gmail.com>)
Список pgsql-general
On 11/18/20 10:04 PM, Paul Förster wrote:
> Hi,
> 
>> On 18. Nov, 2020, at 22:08, Post Gresql <postgresql@taljaren.se> wrote:
>>
>> I might be stupid, but where in the document for create function does it say that the return type can be a table?
>>
>>  From the doc for version 13 https://www.postgresql.org/docs/13/sql-createfunction.html
>>
>> "rettype
>> The return data type (optionally schema-qualified). The return type can be a base, composite, or domain type, or can
referencethe type of a table column."
 
> 
> right in the syntax:
> 
> CREATE [ OR REPLACE ] FUNCTION
>      name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr
>   ] [, ...] ] )
>      [ RETURNS rettype
>        | RETURNS TABLE ( column_name column_type [, ...] ) ]
> 
> "RETURNS TABLE(...)" is probably what you're looking for?

That is a variation on the theme. The OP was looking for declaring a 
table%ROWTYPE in RETURNS rettype. You can do that by using the table 
composite type. Since RETURNS TABLE is essentially an alias for RETURNS 
SETOF you can use it to return a set of the table composite type. Though 
in RETURNS TABLE you can also 'create' your own table that has nothing 
to do with an existing table composite type.

> 
> Cheers,
> Paul
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com



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

Предыдущее
От: Asya Nevra Buyuksoy
Дата:
Сообщение: Upgrade 9.4 to 12 on windows system
Следующее
От: Andreas Kretschmer
Дата:
Сообщение: Re: Upgrade 9.4 to 12 on windows system