Isolation of table creation
Hackers,
I discovered interesting issue with PostgreSQL transaction isolation.
When transaction is in repeatable read isolation level, I can't see table
which was created after transaction obtained snapshot. But I can run DML
statements with this table. See example below.
Session 1
# begin transaction isolation level repeatable read;
BEGIN
# \dt
No relations found.
Session 2
# create table tmp (i int not null);
CREATE TABLE
# insert into tmp values (1);
INSERT 0 1
# \dt
No relations found.
# select * from tmp;
i
---
(0 rows)
# insert into tmp values (2);
INSERT 0 1
# select * from tmp;
i
---
2
(1 row)
# commit;
COMMIT
Is it a bug?
------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
On 2015-12-11 11:46:11 +0300, Alexander Korotkov wrote:
I discovered interesting issue with PostgreSQL transaction isolation.
When transaction is in repeatable read isolation level, I can't see table
which was created after transaction obtained snapshot. But I can run DML
statements with this table. See example below.
Is it a bug?
No, that's pretty much expected. Parse analysis, planning use fresh
catalog snapshot, whereas psql's schema queries use the transaction
snapshot.
Andres
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers