Re: BUG #14341: insert on conflict (key_column) cann't used with partition table.

From: 德哥 <digoal(at)126(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #14341: insert on conflict (key_column) cann't used with partition table.
Date: 2016-09-28 09:16:09
Message-ID: 58f17eb8.b93b.15770146d7d.Coremail.digoal@126.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

$ git clone https://github.com/postgrespro/pg_pathman
$ cd pg_pathman
$ export PATH=/home/digoal/pgsql9.6rc1/bin:$PATH
$ make USE_PGXS=1
$ make install USE_PGXS=1

$ vi $PGDATA/postgresql.conf
shared_preload_libraries='pg_pathman'

$ pg_ctl restart -m fast

$ psql
postgres=# create extension pg_pathman;
CREATE EXTENSION
$ psql
postgres=# drop table test;
postgres=# create table test(id int primary key, info text, crt_time timestamptz);
CREATE TABLE
postgres=#
postgres=# select create_range_partitions('test'::regclass, 'id', 1, 20000000, 100, false);
create_range_partitions
-------------------------
100
(1 row)
postgres=# select disable_parent('test'::regclass);
disable_parent
----------------

(1 row)

reconnect
postgres=# explain select * from test where id=1;
QUERY PLAN
---------------------------------------------------------------------------------
Append (cost=0.15..2.17 rows=1 width=44)
-> Index Scan using test_1_pkey on test_1 (cost=0.15..2.17 rows=1 width=44)
Index Cond: (id = 1)
(3 rows)
insert into test(id,info,crt_time) values(:id, md5(random()::text), now()) on conflict (id) do update set info=excluded.info,crt_time=excluded.crt_time;

--
公益是一辈子的事,I'm Digoal,Just Do It.

At 2016-09-27 21:04:34, "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>digoal(at)126(dot)com writes:
>> postgres=# \d test
>> Table "postgres.test"
>> Column | Type | Modifiers
>> ----------+-----------------------------+-----------
>> id | integer | not null
>> info | text |
>> crt_time | timestamp without time zone |
>> Indexes:
>> "test_pkey" PRIMARY KEY, btree (id)
>> Number of child tables: 100 (Use \d+ to list them.)
>
>> postgres=# insert into test(id,info,crt_time) values(1, md5(random()::text),
>> now()) on conflict (id) do update set
>> info=excluded.info,crt_time=excluded.crt_time;
>> ERROR: XX000: unexpected failure to find arbiter index
>> LOCATION: ExecCheckIndexConstraints, execIndexing.c:594
>
>Can't reproduce that on the basis of the given information.
>
> regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Devrim Gündüz 2016-09-28 10:31:13 Re: BUG #14342: Please restore pgdg-redhat92-9.2-7.noarch.rpm
Previous Message Zuk, Kacper 2016-09-28 08:56:12 Re: BUG #14329: libpq doesn't send complete client certificate chain on first SSL connection