Search Postgresql Archives

Re: Read Committed transaction with long query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux