Re: BUG #14330: can not select into `composite data types` in plpgsql - Mailing list pgsql-bugs

From Pavel Stehule
Subject Re: BUG #14330: can not select into `composite data types` in plpgsql
Date
Msg-id CAFj8pRBOUNfTJ9h91sb4q8PPrHm4rS4WS3+B3813tfZRjVs-Tg@mail.gmail.com
Whole thread Raw
In response to 回复:Re: BUG #14330: can not select into `composite data types` in plpgsql  (自己 <zoulx1982@163.com>)
List pgsql-bugs
Hi

2016-09-21 10:08 GMT+02:00 =E8=87=AA=E5=B7=B1 <zoulx1982@163.com>:

> > It is not bug - although I understand so this behave is not unfriendly.
> The pattern composite var :=3D composite value is not supported due possi=
ble
> ambiguous
> > assignment internally in PLpgSQL implementation.
>
> Thank you for your reply.
> It seems work well for the pattern "composite var :=3D composite value" i=
n
> plpgsql body, but not in declare sestion(default value).
> Besides this, i want to know if i want to implement this pattern, which
> part is difficult?
>

the result of SQL query is result set. when you use composite type, then
result will be nested compose type. But you don't have simply access to
original query, and you don't know if you should or should not do unnesting=
.

Regards

Pavel Stehule


>
>
> 2016-09-21 15:12:33=EF=BC=8C"Pavel Stehule" <pavel.stehule@gmail.com>
>
> Hi
>
> 2016-09-21 5:51 GMT+02:00 <zoulx1982@163.com>:
>
>> The following bug has been logged on the website:
>>
>> Bug reference:      14330
>> Logged by:          lx zou
>> Email address:      zoulx1982@163.com
>> PostgreSQL version: 9.5.1
>> Operating system:   win7  6.1.7601
>> Description:
>>
>> Hi,
>>     when i use composite type in plpgsql, i found it does't work when i
>> select a composite type column into a composite type variable.
>>     But it can work well when i use another style like this:
>>     select (y).a,(y).b into tmp from t....
>> following is a full example. Thanks.
>>
>> create type mytype(a int, b text);
>> create table mytab(x int, y mytype);
>> insert into mytab values(1, (1, 'abcd'));
>> do $$
>> declare
>>         tmp mytype;
>> begin
>>         --ERROR:  invalid input syntax for integer: "(1,asddd)"
>>         --CONTEXT:  PL/pgSQL function inline_code_block line 6 at SQL
>> statement
>>         select y into strict tmp from mytab;
>>         raise notice '%,%', (tmp).a, (tmp).b;
>> end;
>> $$;
>>
>
> It is not bug - although I understand so this behave is not unfriendly.
> The pattern composite var :=3D composite value is not supported due possi=
ble
> ambiguous assignment internally in PLpgSQL implementation.
>
> Regards
>
> Pavel Stehule
>
>
>>
>> It is no
>>
>> --
>> Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgsql-bugs
>>
>
>
>
>
>

pgsql-bugs by date:

Previous
From: Devrim Gündüz
Date:
Subject: Re: pgdg94 conflicts with RHEL 6.8
Next
From: Lou Picciano
Date:
Subject: Re: BUG #14329: libpq doesn't send complete client certificate chain on first SSL connection