↑↓ select↵ open⌫ change scopeOpen full search

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

Wiki / SQLSTATE

42P20 — Windowing error

42P20 (windowing_error) Window definitions constrain both calls and frame boundaries.

English manual coverage begins with PostgreSQL 8.1. Source history and runtime observations have their own recorded version boundaries.

Reading PG 18·Select a recorded version

aliases
Unknown
class name
Syntax Error or Access Rule Violation
condition name
windowing_error
lang
en
sqlstate
42P20

Definition PG 18

42P20 — Windowing error

At a glance {#at-a-glance}

42P20 (windowing_error) Window definitions constrain both calls and frame boundaries.

Meaning {#meaning}

The fixed core uses 42P20 for window-function placement or nesting errors and for invalid window-definition structure. Parser grammar rejects impossible frame start/end combinations; parse analysis rejects a window function in a clause that cannot contain it or another window function; named-window transformation rejects conflicting inheritance. A legal frame can still be empty for a particular row, so an empty result is not by itself a 42P20 signal.

Diagnosis {#diagnosis}

Classify the primary message before changing SQL. A frame message points to UNBOUNDED direction or start/end ordering; RANGE with an offset requires exactly one ORDER BY column and GROUPS requires an ORDER BY clause. A placement message names a clause such as WHERE, GROUP BY, JOIN, RETURNING, or a window definition, while the nested-call message means a window expression appears inside another window expression. Named-window messages distinguish duplicate definitions, attempts to override copied PARTITION BY or ORDER BY, and copying a window that already has a frame; OVER foo and OVER (foo) therefore have different inheritance behavior. The executor separately reports negative ROWS or GROUPS frame offsets as SQLSTATE 22013 (invalid_preceding_or_following_size), and null offsets as 22004; those are not 42P20.

Response {#response}

Move a nested calculation to an outer query level, or move the window expression out of the named clause identified by the message. Repair only the relevant frame grammar, add the required ordering for RANGE/GROUPS, and define one named window without conflicting overrides. Do not change a valid frame merely because it produces no rows for one current row. If this ERROR occurs inside an explicit transaction, issue ROLLBACK or ROLLBACK TO a savepoint created before the statement before retrying; autocommit can submit the corrected query after the failed statement returns to idle.

Messages {#messages}

Representative fixed-source messages include:

  • ERROR message: window function calls cannot be nested
  • ERROR message: frame start cannot be UNBOUNDED FOLLOWING
  • ERROR message: frame starting from following row cannot end with current row
  • ERROR message: frame end cannot be UNBOUNDED PRECEDING
  • ERROR message: frame starting from current row cannot have preceding rows
  • ERROR message: frame starting from following row cannot have preceding rows
  • ERROR message: window functions are not allowed in %s
  • ERROR message: window "%s" is already defined
  • ERROR message: cannot override PARTITION BY clause of window "%s"
  • ERROR message: cannot override ORDER BY clause of window "%s"
  • ERROR message: cannot copy window "%s" because it has a frame clause
  • ERROR message: cannot copy window "%s" because it has a frame clause; HINT: Omit the parentheses in this OVER clause.
  • ERROR message: RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column
  • ERROR message: GROUPS mode requires an ORDER BY clause

Placeholders are filled by the actual object, column, or parameter.

Versions {#versions}

The locked catalogue shows this condition by PostgreSQL 8.4.0; behavior here is fixed to PostgreSQL 18.6 source. Catalogue presence is a range boundary, not proof that every message or feature began in that release.

Related {#related}

Sources {#sources}

Source messages, line anchors, and evidence limits are recorded in authored evidence.

Compare versions

SQLSTATE evidence and recorded runtime versions

claims · identity.class-and-condition
{
  "claim_id": "identity.class-and-condition",
  "limits": "Identity does not enumerate all source branches or client failures.",
  "method": "Read fixed REL_18_6 errcodes.txt and locked facts.",
  "position": 0,
  "runtime": [],
  "sources": [
    "src.errcodes.42P20.18.6"
  ],
  "statement": "42P20 is the windowing_error condition in Class 42."
}
claims · mechanism.selected-source-path
{
  "claim_id": "mechanism.selected-source-path",
  "limits": "Representative confirmed core paths only; not exhaustive historical or extension coverage. A legal frame can still evaluate to no rows for a particular row.",
  "method": "Read complete fixed-source contexts around the selected report groups and the frame-offset executor guard.",
  "position": 1,
  "runtime": [],
  "sources": [
    "src.call.42P20.17809e6b7f525d4ed41961ed",
    "src.call.42P20.5670c88a2f3e05b693257e49",
    "src.call.42P20.ed2f8bce483ee7cc9c9ff7e0",
    "src.call.42P20.af44057d6b02e78ceb659ea3",
    "src.call.42P20.05acd1c626dd243023930f4b",
    "src.call.42P20.2b557a2b5c702ff1eeb57eaa",
    "src.call.42P20.fde5045d9190c4d041b74444",
    "src.call.42P20.4d72e034c551705933ff1342",
    "src.call.42P20.0221c1569253594c6c3f8117",
    "src.call.42P20.ae80656ed795057fab150a08",
    "src.call.42P20.51b9fa13c98768648a42bec3",
    "src.call.42P20.879f1f1e1a0b390154b2b059",
    "src.call.42P20.faf4767dd0e2b75c0c2f5763",
    "src.call.42P20.745a6ce52598aa006a4c0b9d",
    "src.context.42P20.nodeWindowAgg"
  ],
  "statement": "Selected fixed 18.6 parser, parse-analysis, named-window, and executor paths reject invalid frame bounds, forbidden window placement or nesting, and illegal window inheritance. The parser also guards RANGE offset and GROUPS structural requirements."
}
claims · boundary.negative-offset-code
{
  "claim_id": "boundary.negative-offset-code",
  "limits": "Boundary only; no natural runtime execution is claimed.",
  "method": "Read nodeWindowAgg.c calculate_frame_offsets and the fixed error-code catalogue.",
  "position": 2,
  "runtime": [],
  "sources": [
    "src.context.42P20.nodeWindowAgg"
  ],
  "statement": "The 18.6 executor assigns negative ROWS or GROUPS frame offsets to 22013 invalid_preceding_or_following_size and NULL frame offsets to 22004 null_value_not_allowed; these boundaries are separate from 42P20."
}
claims · versions.catalogue-boundary
{
  "claim_id": "versions.catalogue-boundary",
  "limits": "First observed release is a lower bound, not precise behavioral introduction.",
  "method": "Read locked catalogue facts and definition snapshot.",
  "position": 3,
  "runtime": [],
  "sources": [
    "src.errcodes.42P20.18.6"
  ],
  "statement": "Locked catalogue snapshots show this condition by PostgreSQL 8.4.0; source behavior here is fixed at PostgreSQL 18.6."
}
messages · message.variant-1
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-1",
  "path": "",
  "position": 0,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-1",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "window function calls cannot be nested",
    "roles": [
      {
        "role": "errmsg",
        "template": "window function calls cannot be nested"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.17809e6b7f525d4ed41961ed"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.17809e6b7f525d4ed41961ed"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "window function calls cannot be nested",
      "position": 0,
      "role": "",
      "template": "window function calls cannot be nested"
    }
  ]
}
messages · message.variant-2
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-2",
  "path": "",
  "position": 1,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-2",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "frame start cannot be UNBOUNDED FOLLOWING",
    "roles": [
      {
        "role": "errmsg",
        "template": "frame start cannot be UNBOUNDED FOLLOWING"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.5670c88a2f3e05b693257e49"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.5670c88a2f3e05b693257e49"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "frame start cannot be UNBOUNDED FOLLOWING",
      "position": 0,
      "role": "",
      "template": "frame start cannot be UNBOUNDED FOLLOWING"
    }
  ]
}
messages · message.variant-3
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-3",
  "path": "",
  "position": 2,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-3",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "frame starting from following row cannot end with current row",
    "roles": [
      {
        "role": "errmsg",
        "template": "frame starting from following row cannot end with current row"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.ed2f8bce483ee7cc9c9ff7e0"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.ed2f8bce483ee7cc9c9ff7e0"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "frame starting from following row cannot end with current row",
      "position": 0,
      "role": "",
      "template": "frame starting from following row cannot end with current row"
    }
  ]
}
messages · message.variant-4
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-4",
  "path": "",
  "position": 3,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-4",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "frame end cannot be UNBOUNDED PRECEDING",
    "roles": [
      {
        "role": "errmsg",
        "template": "frame end cannot be UNBOUNDED PRECEDING"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.af44057d6b02e78ceb659ea3"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.af44057d6b02e78ceb659ea3"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "frame end cannot be UNBOUNDED PRECEDING",
      "position": 0,
      "role": "",
      "template": "frame end cannot be UNBOUNDED PRECEDING"
    }
  ]
}
messages · message.variant-5
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-5",
  "path": "",
  "position": 4,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-5",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "frame starting from current row cannot have preceding rows",
    "roles": [
      {
        "role": "errmsg",
        "template": "frame starting from current row cannot have preceding rows"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.05acd1c626dd243023930f4b"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.05acd1c626dd243023930f4b"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "frame starting from current row cannot have preceding rows",
      "position": 0,
      "role": "",
      "template": "frame starting from current row cannot have preceding rows"
    }
  ]
}
messages · message.variant-6
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-6",
  "path": "",
  "position": 5,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-6",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "frame starting from following row cannot have preceding rows",
    "roles": [
      {
        "role": "errmsg",
        "template": "frame starting from following row cannot have preceding rows"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.2b557a2b5c702ff1eeb57eaa"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.2b557a2b5c702ff1eeb57eaa"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "frame starting from following row cannot have preceding rows",
      "position": 0,
      "role": "",
      "template": "frame starting from following row cannot have preceding rows"
    }
  ]
}
messages · message.variant-7
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-7",
  "path": "",
  "position": 6,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-7",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "window functions are not allowed in %s",
    "roles": [
      {
        "role": "errmsg",
        "template": "window functions are not allowed in %s"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.fde5045d9190c4d041b74444"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.fde5045d9190c4d041b74444"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "window functions are not allowed in",
      "position": 0,
      "role": "",
      "template": "window functions are not allowed in %s"
    }
  ]
}
messages · message.variant-8
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-8",
  "path": "",
  "position": 7,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-8",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "window \"%s\" is already defined",
    "roles": [
      {
        "role": "errmsg",
        "template": "window \"%s\" is already defined"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.4d72e034c551705933ff1342"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.4d72e034c551705933ff1342"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "window \" \" is already defined",
      "position": 0,
      "role": "",
      "template": "window \"%s\" is already defined"
    }
  ]
}
messages · message.variant-9
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-9",
  "path": "",
  "position": 8,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-9",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "cannot override PARTITION BY clause of window \"%s\"",
    "roles": [
      {
        "role": "errmsg",
        "template": "cannot override PARTITION BY clause of window \"%s\""
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.0221c1569253594c6c3f8117"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.0221c1569253594c6c3f8117"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "cannot override PARTITION BY clause of window \" \"",
      "position": 0,
      "role": "",
      "template": "cannot override PARTITION BY clause of window \"%s\""
    }
  ]
}
messages · message.variant-10
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-10",
  "path": "",
  "position": 9,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-10",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "cannot override ORDER BY clause of window \"%s\"",
    "roles": [
      {
        "role": "errmsg",
        "template": "cannot override ORDER BY clause of window \"%s\""
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.ae80656ed795057fab150a08"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.ae80656ed795057fab150a08"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "cannot override ORDER BY clause of window \" \"",
      "position": 0,
      "role": "",
      "template": "cannot override ORDER BY clause of window \"%s\""
    }
  ]
}
messages · message.variant-11
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-11",
  "path": "",
  "position": 10,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-11",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "cannot copy window \"%s\" because it has a frame clause",
    "roles": [
      {
        "role": "errmsg",
        "template": "cannot copy window \"%s\" because it has a frame clause"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.51b9fa13c98768648a42bec3"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.51b9fa13c98768648a42bec3"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "cannot copy window \" \" because it has a frame clause",
      "position": 0,
      "role": "",
      "template": "cannot copy window \"%s\" because it has a frame clause"
    }
  ]
}
messages · message.variant-12
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-12",
  "path": "",
  "position": 11,
  "raw": {
    "detail_templates": [],
    "hint_templates": [
      "Omit the parentheses in this OVER clause."
    ],
    "id": "message.variant-12",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "cannot copy window \"%s\" because it has a frame clause",
    "roles": [
      {
        "role": "errmsg",
        "template": "cannot copy window \"%s\" because it has a frame clause"
      },
      {
        "role": "errhint",
        "template": "Omit the parentheses in this OVER clause."
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.879f1f1e1a0b390154b2b059"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.879f1f1e1a0b390154b2b059"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "cannot copy window \" \" because it has a frame clause",
      "position": 0,
      "role": "",
      "template": "cannot copy window \"%s\" because it has a frame clause"
    },
    {
      "kind": "hint",
      "literal": "Omit the parentheses in this OVER clause.",
      "position": 1,
      "role": "",
      "template": "Omit the parentheses in this OVER clause."
    },
    {
      "kind": "primary",
      "literal": "Omit the parentheses in this OVER clause.",
      "position": 2,
      "role": "errhint",
      "template": "Omit the parentheses in this OVER clause."
    }
  ]
}
messages · message.variant-13
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-13",
  "path": "",
  "position": 12,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-13",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column",
    "roles": [
      {
        "role": "errmsg",
        "template": "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.faf4767dd0e2b75c0c2f5763"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.faf4767dd0e2b75c0c2f5763"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column",
      "position": 0,
      "role": "",
      "template": "RANGE with offset PRECEDING/FOLLOWING requires exactly one ORDER BY column"
    }
  ]
}
messages · message.variant-14
{
  "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
  "message_id": "message.variant-14",
  "path": "",
  "position": 13,
  "raw": {
    "detail_templates": [],
    "hint_templates": [],
    "id": "message.variant-14",
    "limits": "Placeholders remain dynamic source fields; no concrete runtime value is claimed.",
    "primary_template": "GROUPS mode requires an ORDER BY clause",
    "roles": [
      {
        "role": "errmsg",
        "template": "GROUPS mode requires an ORDER BY clause"
      }
    ],
    "severity_source": "ERROR",
    "sources": [
      "src.call.42P20.745a6ce52598aa006a4c0b9d"
    ],
    "sqlstate": "42P20"
  },
  "severity": "ERROR",
  "sources": [
    "src.call.42P20.745a6ce52598aa006a4c0b9d"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "GROUPS mode requires an ORDER BY clause",
      "position": 0,
      "role": "",
      "template": "GROUPS mode requires an ORDER BY clause"
    }
  ]
}
sources · src.errcodes.42P20.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "line 344",
  "path": "src/backend/utils/errcodes.txt",
  "position": 0,
  "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
  "source_id": "src.errcodes.42P20.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt#L344"
}
sources · src.call.42P20.17809e6b7f525d4ed41961ed
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 1155-1157",
  "path": "src/backend/executor/execExpr.c",
  "position": 1,
  "sha256": "9bc3aa2562686b1860005137de9611e56ff6b41eaf9b3eefd9c3f058dc057431",
  "source_id": "src.call.42P20.17809e6b7f525d4ed41961ed",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/execExpr.c#L1155-L1157"
}
sources · src.call.42P20.5670c88a2f3e05b693257e49
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 16499-16502",
  "path": "src/backend/parser/gram.y",
  "position": 2,
  "sha256": "7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724",
  "source_id": "src.call.42P20.5670c88a2f3e05b693257e49",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/gram.y#L16499-L16502"
}
sources · src.call.42P20.ed2f8bce483ee7cc9c9ff7e0
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 16504-16507",
  "path": "src/backend/parser/gram.y",
  "position": 3,
  "sha256": "7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724",
  "source_id": "src.call.42P20.ed2f8bce483ee7cc9c9ff7e0",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/gram.y#L16504-L16507"
}
sources · src.call.42P20.af44057d6b02e78ceb659ea3
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 16528-16531",
  "path": "src/backend/parser/gram.y",
  "position": 4,
  "sha256": "7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724",
  "source_id": "src.call.42P20.af44057d6b02e78ceb659ea3",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/gram.y#L16528-L16531"
}
sources · src.call.42P20.05acd1c626dd243023930f4b
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 16534-16537",
  "path": "src/backend/parser/gram.y",
  "position": 5,
  "sha256": "7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724",
  "source_id": "src.call.42P20.05acd1c626dd243023930f4b",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/gram.y#L16534-L16537"
}
sources · src.call.42P20.2b557a2b5c702ff1eeb57eaa
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 16541-16544",
  "path": "src/backend/parser/gram.y",
  "position": 6,
  "sha256": "7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724",
  "source_id": "src.call.42P20.2b557a2b5c702ff1eeb57eaa",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/gram.y#L16541-L16544"
}
sources · src.call.42P20.fde5045d9190c4d041b74444
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 1041-1046",
  "path": "src/backend/parser/parse_agg.c",
  "position": 7,
  "sha256": "6e80a805fddbfc9c7e0f3047b348bf992a20c99f16ce7fee89c7067753027f72",
  "source_id": "src.call.42P20.fde5045d9190c4d041b74444",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_agg.c#L1041-L1046"
}
sources · src.call.42P20.4d72e034c551705933ff1342
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2790-2793",
  "path": "src/backend/parser/parse_clause.c",
  "position": 8,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.4d72e034c551705933ff1342",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2790-L2793"
}
sources · src.call.42P20.0221c1569253594c6c3f8117
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2851-2855",
  "path": "src/backend/parser/parse_clause.c",
  "position": 9,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.0221c1569253594c6c3f8117",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2851-L2855"
}
sources · src.call.42P20.ae80656ed795057fab150a08
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2863-2867",
  "path": "src/backend/parser/parse_clause.c",
  "position": 10,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.ae80656ed795057fab150a08",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2863-L2867"
}
sources · src.call.42P20.51b9fa13c98768648a42bec3
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2893-2897",
  "path": "src/backend/parser/parse_clause.c",
  "position": 11,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.51b9fa13c98768648a42bec3",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2893-L2897"
}
sources · src.call.42P20.879f1f1e1a0b390154b2b059
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2899-2904",
  "path": "src/backend/parser/parse_clause.c",
  "position": 12,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.879f1f1e1a0b390154b2b059",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2899-L2904"
}
sources · src.call.42P20.faf4767dd0e2b75c0c2f5763
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2921-2924",
  "path": "src/backend/parser/parse_clause.c",
  "position": 13,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.faf4767dd0e2b75c0c2f5763",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2921-L2924"
}
sources · src.call.42P20.745a6ce52598aa006a4c0b9d
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2944-2947",
  "path": "src/backend/parser/parse_clause.c",
  "position": 14,
  "sha256": "fd3fb69d6ea2ed0c220eba1d4479c0b79d8713b39a28c62cc4bf1428491e8ebd",
  "source_id": "src.call.42P20.745a6ce52598aa006a4c0b9d",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/parse_clause.c#L2944-L2947"
}
sources · src.context.42P20.nodeWindowAgg
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "lines 2139-2210",
  "path": "src/backend/executor/nodeWindowAgg.c",
  "position": 15,
  "sha256": "c365e6750bc77a89562254903d099c3e5914e001d3aae418322ccffc1d535d17",
  "source_id": "src.context.42P20.nodeWindowAgg",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/executor/nodeWindowAgg.c#L2139"
}
sources · src.calls.REL_18_6.42P20
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "raw/calls/REL_18_6.jsonl",
  "position": 16,
  "sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
  "source_id": "src.calls.REL_18_6.42P20",
  "tag": "",
  "url": ""
}

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · english-manuals:0695f162fb91bad071c70775f2f11312b71e50d33f23019c64084f9253e94cb3

Text language: en · english-manuals:0695f162fb91bad071c70775f2f11312b71e50d33f23019c64084f9253e94cb3