Re: how to auto GRANT custom ACL on a new table?

From: Richard Huxton <dev(at)archonet(dot)com>
To: Maciej Sieczka <tutey(at)o2(dot)pl>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: how to auto GRANT custom ACL on a new table?
Date: 2008-02-26 19:19:15
Message-ID: 47C46633.2010206@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Maciej Sieczka wrote:
>
> I'd like to prevent concurrent editing of a table. For example PostGIS
> tables, which are going to be stored in the database too: once a user
> starts editing the table in QGIS [1], it should be locked (for writing
> at least), until he turns the edit mode off and commits changes. Only
> then another user should be able edit the table too.
>
> Currently QGIS doesn't do this locking I guess - I have noticed that
> multiple users can edit the same PostGIS table simultanously (ie.
> add/delete/modify points/lines/polygons in a PostGIS table at the same
> time) which can lead to overlapping and corrupted features. Thinking of
> it now, maybe it is a defect in QGIS it allows that? In PG experts
> opinion, could/should a PostGIS editing software lock table for writing
> to prevent concurent editing?

The application should either:
1. Take an advisory lock (see the functions/admin functions chapter) so
that it can use another table to indicate which parts of the GIS are in use.
2. Check to see if the data changed while the user was editing but
before committing (known as "optimistic locking"). Then give the user
the option to overwrite/rollback.

A last resort would be locking rows or the whole table, since a user
might click "edit" then go to lunch.

Certainly doing nothing isn't much use if you have multiple users editing.

--
Richard Huxton
Archonet Ltd

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Hart 2008-02-26 19:40:25 utf8 issue
Previous Message Maciej Sieczka 2008-02-26 18:48:18 Re: how to auto GRANT custom ACL on a new table?