Re: What happens If a table changes during a query/procedure execution

Поиск
Список
Период
Сортировка
От Vlad Arkhipov
Тема Re: What happens If a table changes during a query/procedure execution
Дата
Msg-id 4D7760B5.20804@dc.baikal.ru
обсуждение исходный текст
Ответ на Re: What happens If a table changes during a query/procedure execution  (Nicolas Barbier <nicolas.barbier@gmail.com>)
Ответы Re: What happens If a table changes during a query/procedure execution  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-hackers
09.03.2011 18:54, Nicolas Barbier:
> 2011/3/9 Vlad Arkhipov<arhipov@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;



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Fujii Masao
Дата:
Сообщение: Update of replication/README
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: What happens If a table changes during a query/procedure execution