2011/3/9 Vlad Arkhipov <arhi...@dc.baikal.ru>: > 09.03.2011 18:54, Nicolas Barbier: >> >> 2011/3/9 Vlad Arkhipov<arhi...@dc.baikal.ru>: >> >> >>> >>> Let there are two transactions that were created with read commited >>> isolation level. In the first one we're executing a SELECT query: >>> SELECT * FROM t UNION ALL SELECT * FROM t; >>> >>> In the second transaction we're modifying the same table: >>> INSERT INTO t DEFAULT VALUES; >>> COMMIT; >>> >>> Is it possible that the last UNION part in the first query will retrieve >>> not >>> the same rows as the first one? >>> >> >> No, because statements never see changes made by other transactions >> while they are in flight. >> >> > > Is it also true if a statement contains subqueries or function calls? For > instance, > > CREATE FUNCTION f() RETURNS NUMERIC AS $$ > BEGIN > RETURN (SELECT SUM(a) FROM t); > END; > $$ LANGUAGE 'plpgsql'; > > SELECT a, f() FROM t; > > or > > SELECT a, (SELECT SUM(a) FROM t) FROM t;
yes, it is same Regards Pavel Stehule > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers > -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers