From: | Stephan Szabo <sszabo(at)megazone23(dot)bigpanda(dot)com> |
---|---|
To: | Juan Jose Comellas <juanjo(at)comellas(dot)com(dot)ar> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Server error and deadlocks |
Date: | 2003-01-14 18:11:17 |
Message-ID: | 20030114100724.L71711-100000@megazone23.bigpanda.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Tue, 14 Jan 2003, Juan Jose Comellas wrote:
> Does anybody know if there is a plan to improve the foreign key support in
> PostgreSQL?
Umm, define plan. Seriously, I've been looking at it, but I've only got
a couple of hours a week in general, so it's not going terribly
well/quickly.
> While working with PostgreSQL 7.2.1 (Debian Linux/testing) we found out that
> when a row is inserted in a table that has columns that are foreign keys,
> Postgres normally locks the rows corresponding to the foreign keys (in their
> original tables) both for reading and for writing. This is strange, because
> it seems to me that it should allow reading from these rows (at least Oracle
> 8i does this) from other transactions. According to Postgres' logs, a SELECT
> FOR UPDATE is executed on each of the foreign keys referenced in an INSERT,
> UPDATE. Isn't this a little bit excessive?
Yes, but there isn't a weaker lock that exists at the SQL statement level
currently that gives enough strength to actual guarantee the constraint.
Actually, getting the lock strength down is fairly easy with doing a
dirty read and some stuff with that so that you can say insert pointing
to the same row from concurrent transactions, it's dealing with the
created and existing deadlock conditions that's hard.
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2003-01-14 18:19:03 | Re: problem with unixtime conversion |
Previous Message | Juan Jose Comellas | 2003-01-14 18:04:40 | Re: Server error and deadlocks |