BUG #13584: Upsert. The sequence value is increased.

From: av(dot)kostromin(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #13584: Upsert. The sequence value is increased.
Date: 2015-08-22 18:25:10
Message-ID: 20150822182510.12014.27817@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: 13584
Logged by: jedi
Email address: av(dot)kostromin(at)gmail(dot)com
PostgreSQL version: 9.5alpha2
Operating system: Windows 7
Description:

Hello, I have the following bug.
I have created the following sequence:
CREATE SEQUENCE public.t_tags_ident_id_seq
INCREMENT 1
MINVALUE 1
MAXVALUE 9223372036854775807
START 41
CACHE 1;
ALTER TABLE public.t_tags_ident_id_seq
OWNER TO postgres;

and table:

CREATE TABLE public.t_tags_ident
(
id smallint NOT NULL DEFAULT nextval('t_tags_ident_id_seq'::regclass),
tag_name character varying(100) NOT NULL,
comment text,
reserve character varying(250) DEFAULT NULL::character varying,
CONSTRAINT t_tags_ident_pk PRIMARY KEY (tag_name)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.t_tags_ident
OWNER TO postgres;

When I execute the query

INSERT INTO t_tags_ident (tag_name, "comment")
VALUES ('tag1','comment1'), ('tag2','comment2'), ('tag3','comment3'),
('tag4','comment4')
ON CONFLICT (tag_name)
DO UPDATE SET "comment" = EXCLUDED.comment
RETURNING id
there is the following problem. The sequence value is increased by the
quantity of updated (conflict) rows, i.e. when I insert the new row its id
is equal to the quantity of updated rows + 1. Is it OK for upsert?

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Fabien COELHO 2015-08-22 19:30:52 Re: BUG #12379: pgbench should hint to pgbench -i
Previous Message Heikki Linnakangas 2015-08-22 13:28:56 Re: BUG #12379: pgbench should hint to pgbench -i