Npgsql with PostgreSQL: Can't see uncommitted changes with UNCOMMITTED READ

npgsql, postgresql

Solution

PostgreSQL does not support uncommitted reads.

You will never be able to see changes from other transactions that are not committed.

Problem

I'm using Npsql with PostgreSQL. I want to see uncommitted changes of one transaction in a different one. This is how I create my connection and transaction: ``` // create connection m_Connection = new NpgsqlConnection(connectionString); m_Connection.Open(); //create transaction m_Transaction = m_Connection.BeginTransaction(IsolationLevel.ReadUncommitted); ``` In one thread I insert a row like so: ``` NpgsqlCommand command = CreateCommand("INSERT INTO TABLEA ....", parameters, commandTimeout) command.ExecuteNonQuery(); ``` and process something else without committing or rolling back the transaction. In a different thread I read a row like so: ``` NpgsqlCommand command = CreateCommand("SELECT COUNT(*) FROM TABLEA", parameters, commandTimeout); command.ExecuteScalar(); ``` but somehow I don't see the results of the first INSERT. I don't see the results of the insert in pgAdmin either (even after running SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED). What am I doing wrong? Any help will be appreciated.

Original source