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

From 自己
Subject 回复:Re: BUG #14330: can not select into `composite data types` in plpgsql
Date
Msg-id 42e20ab1.c341.1574bc9c25b.Coremail.zoulx1982@163.com
Whole thread Raw
In response to Re: BUG #14330: can not select into `composite data types` in plpgsql  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: BUG #14330: can not select into `composite data types` in plpgsql  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-bugs
> It is not bug - although I understand so this behave is not unfriendly. The pattern composite var := composite value is not supported due possible ambiguous
> assignment internally in PLpgSQL implementation.

Thank you for your reply.
It seems work well for the pattern "composite var := composite value" in 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?


2016-09-21 15:12:33,"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 := composite value is not supported due possible 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: Heikki Linnakangas
Date:
Subject: Re: BUG #14329: libpq doesn't send complete client certificate chain on first SSL connection
Next
From: Marco Nenciarini
Date:
Subject: Re: BUG #14326: Unexpected status after crash during exclusive backup