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
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"
]
}