BUG #13675: Problem statement “INSERT ON CONFLICT WHERE"

From: nmgjinan(at)126(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #13675: Problem statement “INSERT ON CONFLICT WHERE"
Date: 2015-10-13 01:42:09
Message-ID: 20151013014209.2784.48073@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 13675
Logged by: nmgjinan
Email address: nmgjinan(at)126(dot)com
PostgreSQL version: 9.5beta1
Operating system: CentOS release 5.6 32bit
Description:

Hi,I'm testing pg9.5 beta1, encounter a problem, detailed description:

postgres=# create table distributors(did int primary key,dname
varchar,is_active boolean);
CREATE TABLE
postgres=# insert into distributors values(1,'hyl',false),(2,'aaa',true);
INSERT 0 2
postgres=# select * from distributors ;
did | dname | is_active
-----+-------+-----------
1 | hyl | f
2 | aaa | t
(2 rows)

postgres=# insert into distributors values (2,'bbb')
postgres-# on conflict (did) where is_active do update set
dname=EXCLUDED.dname;
INSERT 0 1
postgres=# select * from distributors ;
did | dname | is_active
-----+-------+-----------
1 | hyl | f
2 | bbb | t
(2 rows)

postgres=# insert into distributors values (1,'hgdb')
postgres-# on conflict (did) where is_active do update set
dname=EXCLUDED.dname;
INSERT 0 1
postgres=# select * from distributors ;
did | dname | is_active
-----+-------+-----------
2 | bbb | t
1 | hgdb | f
(2 rows)

postgres=#

Why, when the where condition is true or false, the fields are change?

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andres Freund 2015-10-13 01:47:29 Re: BUG #13675: Problem statement “INSERT ON CONFLICT WHERE"
Previous Message Tom Lane 2015-10-13 00:07:37 Re: Re: [BUGS] BUG #13611: test_postmaster_connection failed (Windows, listen_addresses = '0.0.0.0' or '::')