From: | Amit Langote <amitlangote09(at)gmail(dot)com> |
---|---|
To: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: table partition and column default |
Date: | 2019-12-25 04:56:15 |
Message-ID: | CA+HiwqFo+oQ9QqHo1hXYE_gvFo59EE_Tcu2ZK6cw4r4HqMUWhw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Fujii-san,
On Wed, Dec 25, 2019 at 12:19 PM Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
>
> Hi,
>
> As the document explains, column defaults can be specified separately for
> each partition. But I found that INSERT via the partitioned table ignores
> that default. Is this expected behavior or bug?
>
> CREATE TABLE test (i INT, j INT) PARTITION BY RANGE (i);
> CREATE TABLE test1 PARTITION OF test (j DEFAULT 99) FOR VALUES FROM (1) TO (10);
> INSERT INTO test VALUES (1, DEFAULT);
> INSERT INTO test1 VALUES (2, DEFAULT);
> SELECT * FROM test;
> i | j
> ---+--------
> 1 | (null)
> 2 | 99
> (2 rows)
>
> In the above example, INSERT accessing directly to the partition uses
> the default, but INSERT via the partitioned table not.
This is as of now expected.
IIRC, there was some discussion about implementing a feature whereby
partition's default will used for an attribute if it's null even after
considering the parent table's default, that is, when no default value
is defined in the parent. The details are at toward the end of this
thread:
Thanks,
Amit
From | Date | Subject | |
---|---|---|---|
Next Message | Mahendra Singh | 2019-12-25 05:02:07 | Re: relpages of btree indexes are not truncating even after deleting all the tuples from table and doing vacuum |
Previous Message | Mahendra Singh | 2019-12-25 04:37:58 | Re: Assert failure due to "drop schema pg_temp_3 cascade" for temporary tables and \d+ is not showing any info after drooping temp table schema |