↑↓ select↵ open⌫ change scopeOpen full search

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

Wiki / Versions

Hash aggregation can use disk

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.

Performance

Description

The query planner can now consider using hash aggregation if it expects the aggregate to exceed working memory.

This can be controlled by two configuration parameters:

Selected version: PostgreSQL 18

Yes

20191817161514131211109.69.59.49.39.29.19.08.48.38.28.18.07.4
UnknownUnknownYesYesYesYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoUnknownUnknown

Compare versions

Original documentation links

Recorded legacy identifiers: 336

Complete source facts and provenance

yaml · center · 1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd

{
  "Key": "hash-aggregation-can-use-disk",
  "SourceKind": "yaml",
  "SourceDatabase": "center",
  "SourceTable": "featurematrix.yaml",
  "SourceKey": "Hash aggregation can use disk",
  "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
  "Name": "Hash aggregation can use disk",
  "NameLocale": "en",
  "GroupKey": "performance",
  "GroupName": "Performance",
  "GroupLocale": "en",
  "Ordinal": 15,
  "GroupOrder": 5,
  "Facts": {
    "feature": {
      "description": "The query planner can now consider using hash aggregation if it expects the aggregate to exceed working memory.\r\n\r\nThis can be controlled by two configuration parameters:\r\n\r\n- [enable_hashagg](https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG)\r\n- [hash_mem_multiplier](https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER)",
      "name": "Hash aggregation can use disk",
      "versions": {
        "13": "Yes"
      }
    },
    "group": "Performance",
    "versions": {
      "max": 18,
      "min": 8.1
    }
  },
  "Cells": [
    {
      "Version": "10",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "11",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "12",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "13",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "13",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "14",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "13",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "15",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "13",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "16",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "13",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "17",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "13",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "18",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "13",
      "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": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.2",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.3",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.4",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.5",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.6",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    }
  ],
  "Texts": [
    {
      "Locale": "en",
      "Title": "Hash aggregation can use disk",
      "BodyHTML": "\u003cp\u003eThe query planner can now consider using hash aggregation if it expects the aggregate to exceed working memory.\u003c/p\u003e\n\u003cp\u003eThis can be controlled by two configuration parameters:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG\" rel=\"nofollow\"\u003eenable_hashagg\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER\" rel=\"nofollow\"\u003ehash_mem_multiplier\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
      "ContentHash": "daee27a85c91e13352a611004ab513f7c1ab8f89e46fd6b7686f2315abb67381",
      "Payload": {
        "description": "The query planner can now consider using hash aggregation if it expects the aggregate to exceed working memory.\r\n\r\nThis can be controlled by two configuration parameters:\r\n\r\n- [enable_hashagg](https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG)\r\n- [hash_mem_multiplier](https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER)",
        "name": "Hash aggregation can use disk",
        "versions": {
          "13": "Yes"
        }
      }
    },
    {
      "Locale": "zh-Hans",
      "Title": "基于磁盘的哈希聚合",
      "BodyHTML": "\u003cp\u003e查询规划器现在可以在预计聚合将超过工作内存时考虑使用哈希聚合。\u003c/p\u003e\n\u003cp\u003e这可以通过两个配置参数进行控制:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG\" rel=\"nofollow\"\u003eenable_hashagg\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER\" rel=\"nofollow\"\u003ehash_mem_multiplier\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n",
      "SourceHash": "071091951021357a5f492adb04caed6febf4d315ac2626ca027a48dd8ec01d50",
      "ContentHash": "2b062274d4f01772909acc01d25bcc16c2c9670bb7a46117832d9a3f0c1d4ac3",
      "Payload": {
        "description": "查询规划器现在可以在预计聚合将超过工作内存时考虑使用哈希聚合。\n\n这可以通过两个配置参数进行控制:\n\n- [enable_hashagg](https://www.postgresql.org/docs/13/runtime-config-query.html#GUC-ENABLE-HASHAGG)\n- [hash_mem_multiplier](https://www.postgresql.org/docs/13/runtime-config-resource.html#GUC-HASH-MEM-MULTIPLIER)",
        "name": "基于磁盘的哈希聚合"
      }
    }
  ],
  "GroupTitles": {
    "en": "Performance",
    "zh-Hans": "性能"
  },
  "LegacyIDs": [
    "336"
  ]
}

Complete source data JSON