↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Versions

Serializable Snapshot Isolation

Recorded source states and original language descriptions. Missing version evidence stays unknown.

The source snapshot records transitions for PostgreSQL 8.1–18. The historical matrix records independent cells for 7.4–18. Neither records support for PostgreSQL 19 or 20; newer versions remain unknown. These source claims are distinct from runtime measurements.

Transactions and Visibility

Description

This implements true serializable snapshot isolation. Previously, asking for serializable isolation guaranteed only that a single MVCC snapshot would be used for the entire transaction, which allowed certain documented anomalies.

Selected version: PostgreSQL 18

Yes

20191817161514131211109.69.59.49.39.29.19.08.48.38.28.18.07.4
UnknownUnknownYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoNoNoNoUnknownUnknown

Compare versions

Original documentation links

Recorded legacy identifiers: 209

Complete source facts and provenance

yaml · center · 1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd

{
  "Key": "serializable-snapshot-isolation",
  "SourceKind": "yaml",
  "SourceDatabase": "center",
  "SourceTable": "featurematrix.yaml",
  "SourceKey": "Serializable Snapshot Isolation",
  "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
  "Name": "Serializable Snapshot Isolation",
  "NameLocale": "en",
  "GroupKey": "transactions-and-visibility",
  "GroupName": "Transactions and Visibility",
  "GroupLocale": "en",
  "Ordinal": 2,
  "GroupOrder": 15,
  "Facts": {
    "feature": {
      "description": "This implements true serializable snapshot isolation. Previously, asking for serializable isolation guaranteed only that a single MVCC snapshot would be used for the entire transaction, which allowed certain documented anomalies.",
      "name": "Serializable Snapshot Isolation",
      "versions": {
        "9.1": "Yes"
      }
    },
    "group": "Transactions and Visibility",
    "versions": {
      "max": 18,
      "min": 8.1
    }
  },
  "Cells": [
    {
      "Version": "10",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "11",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "12",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "13",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "14",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "15",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "16",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "17",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "18",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "8.1",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "8.2",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "8.3",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "8.4",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.0",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.1",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.2",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.3",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.4",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.5",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.6",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "9.1",
      "Supported": true,
      "Original": "Yes"
    }
  ],
  "Texts": [
    {
      "Locale": "en",
      "Title": "Serializable Snapshot Isolation",
      "BodyHTML": "\u003cp\u003eThis implements true serializable snapshot isolation. Previously, asking for serializable isolation guaranteed only that a single MVCC snapshot would be used for the entire transaction, which allowed certain documented anomalies.\u003c/p\u003e\n",
      "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
      "ContentHash": "6f356c9b5a04a14cce9cde3148bc94b99a7e2e4a5d2c3491dc98587e2cc7915f",
      "Payload": {
        "description": "This implements true serializable snapshot isolation. Previously, asking for serializable isolation guaranteed only that a single MVCC snapshot would be used for the entire transaction, which allowed certain documented anomalies.",
        "name": "Serializable Snapshot Isolation",
        "versions": {
          "9.1": "Yes"
        }
      }
    },
    {
      "Locale": "zh-Hans",
      "Title": "可串行化快照隔离",
      "BodyHTML": "\u003cp\u003e实现了真正的可串行化快照隔离。此前,请求可串行化隔离级别仅保证在整个事务中使用单个 MVCC 快照,这允许某些已知的异常现象发生。\u003c/p\u003e\n",
      "SourceHash": "071091951021357a5f492adb04caed6febf4d315ac2626ca027a48dd8ec01d50",
      "ContentHash": "9cfcb238d226f2dae159652b402b9822d2d84b6bb013783c0f2ca66b5fa595ff",
      "Payload": {
        "description": "实现了真正的可串行化快照隔离。此前,请求可串行化隔离级别仅保证在整个事务中使用单个 MVCC 快照,这允许某些已知的异常现象发生。",
        "name": "可串行化快照隔离"
      }
    }
  ],
  "GroupTitles": {
    "en": "Transactions and Visibility",
    "zh-Hans": "事务与可见性"
  },
  "LegacyIDs": [
    "209"
  ]
}

Complete source data JSON