Обсуждение: BUG #11094: Does not report error

Поиск
Список
Период
Сортировка

BUG #11094: Does not report error

От
henart@sofisticat.com.br
Дата:
The following bug has been logged on the website:

Bug reference:      11094
Logged by:          Henart
Email address:      henart@sofisticat.com.br
PostgreSQL version: 9.3.4
Operating system:   CentOS 6.5
Description:

drop type if exists tp_testes cascade;
create type tp_testes as ( tipo integer);
create or replace function fnc_testes() returns tp_testes as
$$
declare
t tp_testes;
x integer;
begin
    t.tipo = 1;
    x = t.valor ;
    return t;
end;
$$
language plpgsql;


the above script does not report error when compiling the function, but
"t.valor" does not exists in type.
if i use

t.valor = 1;

error occurs when compiling the function. in earlier versions (such as 8.4),
SQL STATE 42703 error occurs.

Tks

Re: BUG #11094: Does not report error

От
Tom Lane
Дата:
henart@sofisticat.com.br writes:
> drop type if exists tp_testes cascade;
> create type tp_testes as ( tipo integer);
> create or replace function fnc_testes() returns tp_testes as
> $$
> declare
> t tp_testes;
> x integer;
> begin
>     t.tipo = 1;
>     x = t.valor ;
>     return t;
> end;
> $$
> language plpgsql;

> the above script does not report error when compiling the function, but
> "t.valor" does not exists in type.

It's not expected to give an error; expressions are only syntax-checked
not analyzed for semantic validity.

            regards, tom lane