Postgresql9.6 type cache invalidation issue - different behave ofpsql and pg regress

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Postgresql9.6 type cache invalidation issue - different behave ofpsql and pg regress
Дата
Msg-id CAFj8pRDTsukmqJBda_cB1R1N1TUdxJPD4kohsHKK4hXAY=-2XQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: Postgresql9.6 type cache invalidation issue - different behave of psql and pg regress  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hi

I searching a reason why result of plpgsql_check's regress tests are different when its executed from regress tests or interactive.

This is simple test

drop table testtable;

create table testtable(a int, b int);

create or replace function test()
returns int as $$
declare r testtable;
begin
  select * into r from testtable;
  return r.a;
end;
$$ language plpgsql;

alter table testtable drop column b;
select * from plpgsql_check_function('test()');

this test should to return 0 rows, and it is working when I run it as test. But when I execute it in psql I got

┌───────────────────────────────────────────────────────────────────────┐
│                        plpgsql_check_function                         │
╞═══════════════════════════════════════════════════════════════════════╡
│ warning:00000:4:SQL statement:too few attributes for target variables │
│ Detail: There are more target variables than output columns in query. │
│ Hint: Check target variables in SELECT INTO statement.                │
└───────────────────────────────────────────────────────────────────────┘
(3 rows)

In interactive mode, the build_row_from_class has unrefreshed metadata. But why this behave I see only in psql and not in my regress tests?

Regards

Pavel




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

Предыдущее
От: Amit Langote
Дата:
Сообщение: Re: Should we add GUCs to allow partition pruning to be disabled?
Следующее
От: Tatsuo Ishii
Дата:
Сообщение: Re: Built-in connection pooling