Durumdara wrote: >Two table: >Main >Lookup > >The query is: >select Main.*, Lookup.Name >left join Lookup on (Main.Type_ID = Lookup.ID) hat's not correct SQL, but I think I understand what you mean. >Lookup: >ID Name >1 Value1 >2 Value 2 >3 Value 3 > >Many records is in Main table (for example 1 million). > >What happens in this case (C = connection): > >C1.) begin read committed >C1.) starting this query >C1.) query running >C2.) begin read committed >C2.) update Lookup set Name = "New2" where ID = 2 >C2.) commit >C1.) query running >C1.) query finished > >Is it possible to the first joins (before C2 modifications) are >containing "Value2" on the beginning of the query and "New2" on the >end of the query? >So is it possible to the long query is containing not consistent state >because of C2's changing? For example mixing "Value2" and "New2"? No, this is not possible. See http://www.postgresql.org/docs/current/static/transaction-iso.html#XACT- READ-COMMITTED : When a transaction uses this [read committed] isolation level, a SELECT query (without a FOR UPDATE/SHARE clause) sees only data committed before the query began; it never sees either uncommitted data or changes committed during query execution by concurrent transactions. Yours, Laurenz Albe -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general