Re: [GENERAL] Concurrency-safe Replacing a Set of Rows (Without SERIALIZABLE) - Mailing list pgsql-general

From Gavin Wahl
Subject Re: [GENERAL] Concurrency-safe Replacing a Set of Rows (Without SERIALIZABLE)
Date
Msg-id CAAAf5g9HLMvk4zfrLZjWkkeCD15MvL4cEMr-SjLqtvrTTb__ZA@mail.gmail.com
Whole thread Raw
In response to Re: [GENERAL] Concurrency-safe Replacing a Set of Rows (Without SERIALIZABLE)  ("David G. Johnston" <david.g.johnston@gmail.com>)
Responses Re: [GENERAL] Concurrency-safe Replacing a Set of Rows (Without SERIALIZABLE)  ("David G. Johnston" <david.g.johnston@gmail.com>)
List pgsql-general
> Given this limited example I'd probably choose to model notifications as an
> array on the user table.  Then just "UPDATE user SET notifications =
> array['a','b']::text WHERE user_id = 1;

I'm hesitant to ditch the first normal form just to get around this. Anyway,
there's actually extra data in the table that makes it hard to use an array:

CREATE TABLE notifications (
  user_id INT,
  type CHAR(1),
  threshold INT,
  some_options BOOLEAN,
  PRIMARY KEY (user_id, type)
);


pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: [GENERAL] Concurrency-safe Replacing a Set of Rows (Without SERIALIZABLE)
Next
From: "David G. Johnston"
Date:
Subject: Re: [GENERAL] Concurrency-safe Replacing a Set of Rows (Without SERIALIZABLE)