Read Uncommitted isolation
Read Uncommitted is a transaction isolation level that permits reading another transaction's uncommitted changes, although an implementation may provide stronger isolation.
PostgreSQL 18 accepts the level name but implements Read Committed behavior. Permitting an anomaly does not require an engine to expose it. [1]
SQLite allows cross-connection dirty reads only when the connections share a page and schema cache and the reader enables PRAGMA read_uncommitted. Setting the pragma on a private-cache connection is insufficient. Seeing one's own earlier changes on the same connection is a different behavior. [2] [3]
SQLite's option omits table read-lock acquisition; it does not remove write-lock or sqlite_schema-lock requirements. Shared-cache mode is discouraged by SQLite and is not a general recommendation for improving concurrency. [4]
The companion analysis includes a four-case SQLite visibility example with a writer rollback. It distinguishes the requested setting from an actual dirty read; it does not measure crash durability or certify all statement types. [5]
Relations
Citations
- PostgreSQL 18: Transaction Isolation, Table 13.1 and section 13.2.1.
- SQLite: Isolation Between Database Connections.
- SQLite: PRAGMA read_uncommitted.
- Hesela: Read Uncommitted depends on the engine and connection setup.
Sources & caveats
- Primary-documentation synthesis accessed 2026-11-13. PostgreSQL 18 behavior is documentation-based; the linked SQLite example is separately identified by its recorded runtime version.
- The SQL minimum is described through PostgreSQL's documentation, not an independent inspection of the ISO standard. [1]