From: | "Qingqing Zhou" <zhouqq(at)cs(dot)toronto(dot)edu> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Do we force dependency? |
Date: | 2005-06-06 03:38:20 |
Message-ID: | d80gjj$1td1$1@news.hub.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes
>
> That should be impossible because drop/create take out locks at the
> table level. Can you provide a reproducible test case?
>
To reproduce it:
Concurrently execute the following sql script serveral times:
("without oids","tablespace testsp" should be optional)
---
drop table T_ST;
drop table T_IT;
drop table T_DS;
drop table T_WR;
CREATE TABLE T_WR (
col1 int not NULL,
primary key(col1))
without oids tablespace testsp
;
CREATE TABLE T_DS (
col1 int not NULL,
col2 int not NULL,
primary key(col1, col2),
foreign key (col1) references T_WR(col1))
without oids tablespace testsp
;
CREATE TABLE T_IT (
col1 int not NULL,
primary key(col1))
without oids tablespace testsp
;
CREATE TABLE T_ST (
col1 int not null,
col2 int not null,
other_cols char (50) NULL ,
primary key(col1, col2),
foreign key(col1) references T_WR(col1),
foreign key(col2) references T_IT(col1))
without oids tablespace testsp
;
---
Actually I reproduced it at least 3 times on Pg8.0.1.
> If you can't make it happen easily by hand, one possible way to proceed
> is to run one or both sessions under gdb and set breakpoints at key
> places like recursiveDeletion(). If there is a timing issue it should
> be possible to expose it by delaying a process at the right places in
> this way.
>
Ok, I will do this and try to locate the exact place.
Regards,
Qingqing
From | Date | Subject | |
---|---|---|---|
Next Message | Neil Conway | 2005-06-06 03:57:12 | Re: lastval() |
Previous Message | Abhijit Menon-Sen | 2005-06-06 03:35:58 | Re: lastval() |