Multiple multithreaded insert

From: Арсен Арутюнян <arutar(at)bk(dot)ru>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Multiple multithreaded insert
Date: 2016-10-14 13:12:34
Message-ID: 1476450753.144575536@f126.i.mail.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Hi, everyone!
I have a table:
create table testpr(id serial,priority integer,unique(priority) DEFERRABLE, primary key(id));
and a trigger which, when added to this table, automatically sets priority as the maximum value +1
CREATE OR REPLACE FUNCTION PriorityCheck() RETURNS trigger AS $$
BEGIN
    NEW.priority := (SELECT coalesce(max(priority),0)+1 from testpr);
    RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER InsertTrigger BEFORE INSERT on testpr for EACH ROW
EXECUTE PROCEDURE PriorityCheck();
Will the priority be serial, when there is multithreaded addition of values to the table?
Which is:
Thread 1  insert into testpr(priority) values (1), (1), (1), (1), (1), (1), (1);
Thread 2  insert into testpr(priority) values (2), (2), (2), (2), (2), (2), (2);
The result (priority):
Thread 1: (1) (2) (3) (4) (5) (6) (7)
Thread 2: (8) (9) (10) (11) (12) (13) (14)
-- Arsen Arutyunyan

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Albe Laurenz 2016-10-14 14:27:56 Re: journaled FS and and WAL
Previous Message Kevin Grittner 2016-10-14 12:54:42 Re: SERIALIZABLE and INSERTs with multiple VALUES