From: Daniel Roth <dan.c.roth@gmail.com>
To: pgsql-sql@postgresql.org
Subject: predicate locking
Date: Sun, 12 Jun 2005 18:39:34 +0800
Message-ID: <71038fca05061203395e5a2613@mail.gmail.com> (raw)
Hi
Tom Lane and the postgres help state, "AFAIK, no commercial database
does predicate locking either" (12.2.2.1. Serializable Isolation
versus True Serializability)
But MSSQL (SQL Server) does predicate locking.
From MSDN
"SERIALIZABLE
Places a range lock on the data set, preventing other users from
updating or inserting rows into the data set until the transaction is
complete. This is the most restrictive of the four isolation levels.
Because concurrency is lower, use this option only when necessary.
This option has the same effect as setting HOLDLOCK on all tables in
all SELECT statements in a transaction
"
So does MSSQL (SQL Server) implement predicate locking?
Regards,
Daniel Roth
MCSD.NET
Tom Lane wrote:
> Florian Weimer <fw@deneb.enyo.de> writes:
> > Is this a bug, or is SQLxx serializability defined in different terms?
>
> Strictly speaking, we do not guarantee serializability because we do not
> do predicate locking. See for example
> http://archives.postgresql.org/pgsql-general/2003-01/msg01581.php
>
> AFAIK, no commercial database does predicate locking either, so we all
> fall short of true serializability. The usual solution if you need the
> sort of behavior you're talking about is to take a non-sharable write
> lock on the table you want to modify, so that only one transaction can
> do the COUNT/INSERT at a time.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: the planner will ignore your desire to choose an index scan if your
> joining column's datatypes do not match
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: dan.c.roth@gmail.com
Subject: Re: predicate locking
In-Reply-To: <71038fca05061203395e5a2613@mail.gmail.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox