↑↓ select↵ open⌫ change scopeOpen full search

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

Wiki / Versions

ROWS and COST specification for functions

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.

Procedural Languages

Description

CPU costs and the number of expected rows can now be specified for procedural functions to give better hints to the planner

Selected version: PostgreSQL 18

Yes

20191817161514131211109.69.59.49.39.29.19.08.48.38.28.18.07.4
UnknownUnknownYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesYesNoNoUnknownUnknown

Compare versions

Original documentation links

Recorded legacy identifiers: 14

Complete source facts and provenance

yaml · center · 1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd

{
  "Key": "rows-and-cost-specification-for-functions",
  "SourceKind": "yaml",
  "SourceDatabase": "center",
  "SourceTable": "featurematrix.yaml",
  "SourceKey": "ROWS and COST specification for functions",
  "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
  "Name": "ROWS and COST specification for functions",
  "NameLocale": "en",
  "GroupKey": "procedural-languages",
  "GroupName": "Procedural Languages",
  "GroupLocale": "en",
  "Ordinal": 17,
  "GroupOrder": 19,
  "Facts": {
    "feature": {
      "description": "CPU costs and the number of expected rows can now be specified for procedural functions to give better hints to the planner",
      "name": "ROWS and COST specification for functions",
      "versions": {
        "8.3": "Yes"
      }
    },
    "group": "Procedural Languages",
    "versions": {
      "max": 18,
      "min": 8.1
    }
  },
  "Cells": [
    {
      "Version": "10",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "11",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "12",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "13",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "14",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "15",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "16",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "17",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "18",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "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": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "8.4",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.0",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.1",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.2",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.3",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.4",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.5",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "9.6",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "8.3",
      "Supported": true,
      "Original": "Yes"
    }
  ],
  "Texts": [
    {
      "Locale": "en",
      "Title": "ROWS and COST specification for functions",
      "BodyHTML": "\u003cp\u003eCPU costs and the number of expected rows can now be specified for procedural functions to give better hints to the planner\u003c/p\u003e\n",
      "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
      "ContentHash": "052b6fcbc945707f4039136563a4fc25f085ef3a1a830f090cf046bc80f12f44",
      "Payload": {
        "description": "CPU costs and the number of expected rows can now be specified for procedural functions to give better hints to the planner",
        "name": "ROWS and COST specification for functions",
        "versions": {
          "8.3": "Yes"
        }
      }
    },
    {
      "Locale": "zh-Hans",
      "Title": "函数的 ROWS 和 COST 规范",
      "BodyHTML": "\u003cp\u003e现在可以为过程函数指定 CPU 代价和预期行数,以向规划器提供更好的提示\u003c/p\u003e\n",
      "SourceHash": "071091951021357a5f492adb04caed6febf4d315ac2626ca027a48dd8ec01d50",
      "ContentHash": "9e24eeb16cae71e1c47840d6a3143bf89e9ecae6d0161499577807ef1fc58b93",
      "Payload": {
        "description": "现在可以为过程函数指定 CPU 代价和预期行数,以向规划器提供更好的提示",
        "name": "函数的 ROWS 和 COST 规范"
      }
    }
  ],
  "GroupTitles": {
    "en": "Procedural Languages",
    "zh-Hans": "过程语言"
  },
  "LegacyIDs": [
    "14"
  ]
}

Complete source data JSON