NOT Null constraint on foreign table not working

Поиск
Список
Период
Сортировка
От Rushabh Lathia
Тема NOT Null constraint on foreign table not working
Дата
Msg-id CAGPqQf1qX3W1rS0dB3+L+qh0Rg0TZoE7yBMKHPFExod5x4rorg@mail.gmail.com
обсуждение исходный текст
Ответы Re: NOT Null constraint on foreign table not working  (Rushabh Lathia <rushabh.lathia@gmail.com>)
Re: NOT Null constraint on foreign table not working  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Hello,

Please consider the following test:

create database foo;
\c foo

create table foo_test ( a int );

\c postgres

create extension if not exists postgres_fdw;
create server foo_server foreign data wrapper postgres_fdw options ( dbname  'foo' );
create user mapping for current_user server foo_server;

create foreign table foo_test ( a int not null) server foo_server;

-- insert should return error for because NOT NULL constraint on column a
postgres=# insert into foo_test values ( null );
INSERT 0 1

postgres=# select * from foo_test;
 a 
---
  
(1 row)

-- clean up
drop foreign table foo_test;
drop server foo_server cascade;
\c postgres
drop database foo;


Analysis:

As per the PG documentation it says that foreign table do support the
NOT NULL, NULL and DEFAULT.


But when I tried the NOT NULL constraint, its not working for the foreign tables.
Looking at the code into ExecInsert(), for the foreign table missed to call
ExecConstraints(). I am not sure whether it is intentional that  we not calling
ExecConstraints() in case of foreign server or its missed. 
Do share your thought on this.

I quickly fix the issue by adding ExecConstraints() call for foreign table and
now test behaving as expected. PFA patch for the same.

Regards, 
Rushabh Lathia

Вложения

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

Предыдущее
От: Sameer Kumar
Дата:
Сообщение: using rpmbuild with PostgreSQL 9.2.6 source code
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: [HACKERS] using rpmbuild with PostgreSQL 9.2.6 source code