Re: NOT Null constraint on foreign table not working

From: Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>
To: PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: Rushabh Lathia <rushabh(dot)lathia(at)enterprisedb(dot)com>, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
Subject: Re: NOT Null constraint on foreign table not working
Date: 2014-01-20 07:56:06
Message-ID: CAGPqQf2i+biuPxcaoabA2h-ykL_49ycj28OhwOec9iGNi+zWpA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Please consider attached patch here as earlier attached wrong patch.

Sorry for the inconvenience.

On Mon, Jan 20, 2014 at 1:21 PM, Rushabh Lathia <rushabh(dot)lathia(at)gmail(dot)com>wrote:

> 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.
>
> http://www.postgresql.org/docs/devel/static/sql-createforeigntable.html
>
> 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
> www.EnterpriseDB.com
>
>

--
Rushabh Lathia

Attachment Content-Type Size
exec_constrints_foreign_table_v2.patch text/x-patch 849 bytes

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Sameer Kumar 2014-01-20 08:37:16 Re: [HACKERS] using rpmbuild with PostgreSQL 9.2.6 source code
Previous Message Pavel Stehule 2014-01-20 07:52:01 Re: using rpmbuild with PostgreSQL 9.2.6 source code