↑↓ select↵ open⌫ change scopeOpen full search

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

Wiki / SQLSTATE

42601 — syntax_error

SQLSTATE 42601 is syntax_error in Class 42. 42601 is a syntax error. The selected parser path rejects LIMIT 1, 2 with primary LIMIT #,# syntax is not supported and hint Use separate LIMIT and OFFSET clauses.

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
syntax_error
lang
en
sqlstate
42601

Definition PG 18

42601

At a glance {#at-a-glance}

SQLSTATE 42601 is syntax_error in Class 42. 42601 is a syntax error. The selected parser path rejects LIMIT 1, 2 with primary LIMIT #,# syntax is not supported and hint Use separate LIMIT and OFFSET clauses.

Meaning {#meaning}

42601 is a syntax error. In the selected gram.y action, the comma form is rejected during parsing with the ERROR primary LIMIT #,# syntax is not supported and hint Use separate LIMIT and OFFSET clauses. The comma form is therefore not a request for “offset 1, then take 2” in PostgreSQL; the two values must be written as separate clauses.

The scanner and grammar share a general 42601 path. scanner_yyerror sets the SQLSTATE and reports either syntax error at or near "%s" for the current token or syntax error at end of input when the scanner is at the buffer end, with a lexer position. Grammar actions can supply a more specific message through the same formatter. The selected LIMIT branch is one producer among these parser and scanner branches, not a requirement for every 42601.

Diagnosis {#diagnosis}

Capture the exact statement, parser position, server version, and hint. For at or near, inspect the token named by POSITION and the text immediately before it; for at end of input, check an unclosed quote, dollar-quote, parenthesis, comment, or generated clause. Preserve the exact bytes sent by the query builder, including delimiters and substituted fragments, and replay that statement through the server parser before changing semantics. The parser rejects this grammar before execution, so the selected autocommit session remains IDLE and no rows are produced by the failed statement. In an explicit transaction, the same statement-level ERROR leaves the transaction in its failed state until ROLLBACK or an appropriate savepoint action; that is a different session boundary from the selected autocommit observation. Do not confuse a grammar error with an undefined object or a feature recognized but unsupported in its context.

Response {#response}

Rewrite the statement using the grammar named by the hint. For the selected ordered three-row query, LIMIT 1, 2 becomes LIMIT 2 OFFSET 1 and returns rows [2, 3]; LIMIT 1 OFFSET 0 would be a different result and is not an equivalent repair. Keep query builders version-aware when they emit dialect-specific pagination.

For a generic scanner error, repair the missing or misplaced token, quote, comment delimiter, or query-builder fragment identified by the position, then parse the complete statement again. Do not apply the LIMIT rewrite to a different 42601 message merely because it shares the SQLSTATE.

Messages {#messages}

The selected parser branch raises an explicit ERROR with primary LIMIT #,# syntax is not supported and HINT Use separate LIMIT and OFFSET clauses. The scanner's generic fixed branches use syntax error at or near "%s" or syntax error at end of input, with the position generated from the lexer. The LIMIT primary/HINT identify the selected pagination subpath; a client exception without the server SQLSTATE and the diagnostics for the specific branch is not sufficient to identify that subpath, while other valid 42601 producers may have different primaries.

Representative case {#case}

The page uses the same statements as the runner registry. Generated names such as syntax_schema and syntax_role are replaced by disposable runner values when executed.

SELECT n FROM generate_series(1, 3) AS s(n) ORDER BY n LIMIT 1, 2;
SELECT n FROM generate_series(1, 3) AS s(n) ORDER BY n LIMIT 2 OFFSET 1;

The selected 18.6 run reports the structured diagnostic and passes the repair assertions; the 10.21 run passes the same case-specific checks. The downloadable case and evidence projections are 42601 case JSON and authored evidence. The runner manifest is verify/cases/42601/cases.json, and the page SQL is checked against its shared registry.

Versions {#versions}

The selected natural runtime scope is PostgreSQL 18.6 and 10.21; it does not infer behavior for every intermediate release.

Related {#related}

Sources {#sources}

  • src.errcodes.18.6 — fixed errcodes.txt definition at commit 724edf9bde9d356724ad384a2e196edc3c9f80f7; SHA-256 6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba (source).
  • src.limit-comma.18.6 — src/backend/parser/gram.y at REL_18_6 commit 724edf9bde9d356724ad384a2e196edc3c9f80f7; fixed blob SHA-256 7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724 (source).
  • src.limit-comma.10.23 — src/backend/parser/gram.y at REL_10_23 commit 02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4; fixed blob SHA-256 cebad6a5a2bdf68e9e5a4d2e04fa7f5dbf37efac99f5edb73cc661dae1536bad (source).
  • src.scanner-syntax.18.6 / src.scanner-syntax.10.23 — fixed src/backend/parser/scan.l scanner_yyerror branches for at end of input and at or near; blob SHA-256 bf453f1ae3c22b84fea6f8e8bed4fda476b7cfa49b234efbf92ca228234d0293 / a006581a25c659d59b29837010617503ff431f881e3cf0b54a99aa1cc445fe6c (18.6 source, 10.23 source).
  • src.calls.REL_18_6 / src.calls.REL_10_23 — fixed call scans, SHA-256 9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf / 00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c.

Compare versions

SQLSTATE evidence and recorded runtime versions

cases · syntax_limit_comma
{
  "assertions": [
    "SQLSTATE is 42601 with the LIMIT #,# diagnostic",
    "The autocommit session remains IDLE",
    "Separate LIMIT and OFFSET syntax returns the second and third rows [2, 3]"
  ],
  "case_id": "syntax_limit_comma",
  "cleanup": "No persistent objects; close the runner connection.",
  "has_snippet": true,
  "position": 0,
  "preconditions": [
    "A runner-owned disposable target is provisioned with a deterministic three-row ordered query."
  ],
  "repair": "Use separate LIMIT and OFFSET clauses as indicated by the server hint.",
  "trigger": "Execute the unsupported comma form over ordered rows: SELECT n FROM generate_series(1, 3) AS s(n) ORDER BY n LIMIT 1, 2.",
  "versions": [
    "10",
    "18"
  ]
}
claims · identity.class-and-condition
{
  "claim_id": "identity.class-and-condition",
  "limits": "Directory identity does not identify every backend path.",
  "method": "Read fixed errcodes.txt and the locked catalogue metadata.",
  "position": 0,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6"
  ],
  "statement": "42601 is the syntax_error condition in Class 42."
}
claims · mechanism.backend-path
{
  "claim_id": "mechanism.backend-path",
  "limits": "Other calls can use the same SQLSTATE with different context or dynamic fields.",
  "method": "Trace the resolved REL_18_6 and REL_10_23 source call records at the locked commits.",
  "position": 1,
  "runtime": [],
  "sources": [
    "src.limit-comma.18.6",
    "src.limit-comma.10.23",
    "src.scanner-syntax.18.6",
    "src.scanner-syntax.10.23"
  ],
  "statement": "The fixed source calls for 42601 include the mechanism and message boundary selected for this page."
}
claims · mechanism.scanner-error
{
  "claim_id": "mechanism.scanner-error",
  "limits": "This source branch is separate from the selected LIMIT runtime; grammar actions can supply more specific primary text.",
  "method": "Read scanner_yyerror and scanner_errposition in the fixed REL_18_6 and REL_10_23 scan.l sources.",
  "position": 2,
  "runtime": [],
  "sources": [
    "src.scanner-syntax.18.6",
    "src.scanner-syntax.10.23"
  ],
  "statement": "The fixed scanner formats generic syntax errors as at-or-near-token or end-of-input errors and attaches a lexer position."
}
claims · runtime.representative-case
{
  "claim_id": "runtime.representative-case",
  "limits": "This covers the selected case and targets only; it does not generalize to all drivers or intermediate releases.",
  "method": "Run the shared registry case and inspect structured diagnostics, state/recovery assertions, and cleanup.",
  "position": 3,
  "runtime": [
    "runtime.42601-pagination-semantics-latest.latest",
    "runtime.42601-pagination-semantics-pg10.pg10"
  ],
  "sources": [
    "manifest.42601",
    "snippet-registry.42601"
  ],
  "statement": "The selected syntax_limit_comma case passed on isolated PostgreSQL 18.6 and 10.21 targets."
}
claims · versions.catalogue-boundary
{
  "claim_id": "versions.catalogue-boundary",
  "limits": "Definition presence is not an exact behavioral introduction.",
  "method": "Read generated facts and selected summaries.",
  "position": 4,
  "runtime": [],
  "sources": [
    "src.errcodes.18.6",
    "src.calls.REL_18_6",
    "src.calls.REL_10_23"
  ],
  "statement": "The locked catalogue records 42601; runtime scope is limited to the selected targets."
}
messages · message.limit-comma
{
  "limits": "",
  "message_id": "message.limit-comma",
  "path": "",
  "position": 0,
  "raw": {
    "hint_template": "Use separate LIMIT and OFFSET clauses.",
    "id": "message.limit-comma",
    "primary_template": "LIMIT #,# syntax is not supported",
    "severity_source": "explicit ERROR",
    "sources": [
      "src.limit-comma.18.6",
      "src.limit-comma.10.23"
    ],
    "sqlstate": "42601"
  },
  "severity": "explicit ERROR",
  "sources": [
    "src.limit-comma.18.6",
    "src.limit-comma.10.23"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "LIMIT #,# syntax is not supported",
      "position": 0,
      "role": "",
      "template": "LIMIT #,# syntax is not supported"
    },
    {
      "kind": "hint",
      "literal": "Use separate LIMIT and OFFSET clauses.",
      "position": 1,
      "role": "",
      "template": "Use separate LIMIT and OFFSET clauses."
    }
  ]
}
messages · message.scanner-generic
{
  "limits": "The scanner inserts the grammar/lexer message and dynamic token; these variants are source-only in this batch.",
  "message_id": "message.scanner-generic",
  "path": "",
  "position": 1,
  "raw": {
    "id": "message.scanner-generic",
    "limits": "The scanner inserts the grammar/lexer message and dynamic token; these variants are source-only in this batch.",
    "primary_variants": [
      "syntax error at or near \"%s\"",
      "syntax error at end of input"
    ],
    "severity_source": "explicit ERROR",
    "sources": [
      "src.scanner-syntax.18.6",
      "src.scanner-syntax.10.23"
    ],
    "sqlstate": "42601"
  },
  "severity": "explicit ERROR",
  "sources": [
    "src.scanner-syntax.18.6",
    "src.scanner-syntax.10.23"
  ],
  "templates": [
    {
      "kind": "primary",
      "literal": "syntax error at or near \" \"",
      "position": 0,
      "role": "",
      "template": "syntax error at or near \"%s\""
    },
    {
      "kind": "primary",
      "literal": "syntax error at end of input",
      "position": 1,
      "role": "",
      "template": "syntax error at end of input"
    }
  ]
}
runtimes · runtime.42601-pagination-semantics-latest.latest · 18.6 (Homebrew) · passed
{
  "cases": [],
  "limits": "",
  "position": 0,
  "raw": {
    "assertions": [
      {
        "expected": "42601",
        "name": "42601 SQLSTATE",
        "observed": "42601",
        "passed": true
      },
      {
        "expected": "ERROR",
        "name": "42601 ERROR severity",
        "observed": "ERROR",
        "passed": true
      },
      {
        "expected": "LIMIT #,# syntax is not supported",
        "name": "42601 primary diagnostic",
        "observed": "LIMIT #,# syntax is not supported",
        "passed": true
      },
      {
        "expected": "IDLE",
        "name": "syntax error leaves autocommit session usable",
        "observed": "IDLE",
        "passed": true
      },
      {
        "expected": {
          "rows": [
            2,
            3
          ],
          "status": "IDLE"
        },
        "name": "separate LIMIT/OFFSET preserves offset/count semantics",
        "observed": {
          "rows": [
            2,
            3
          ],
          "status": "IDLE"
        },
        "passed": true
      }
    ],
    "case_manifest": {
      "id": "manifest.42601",
      "kind": "local_artifact",
      "path": "verify/cases/42601/cases.json",
      "sha256": "c6588aaa200ad4c3e553eb4f9cddc4d052ec68dbbe5018c8eb3966c4c3eb723c",
      "source_role": "case_manifest"
    },
    "cleanup": {
      "errors": [],
      "passed": true
    },
    "environment": {
      "TimeZone": "Asia/Shanghai",
      "backend_pid": 21158,
      "binary": {
        "bindir": "/opt/homebrew/Cellar/postgresql@18/18.6/bin",
        "pg_config": "/opt/homebrew/bin/pg_config",
        "pg_config_version": "PostgreSQL 18.6 (Homebrew)",
        "postgres": "/opt/homebrew/Cellar/postgresql@18/18.6/bin/postgres"
      },
      "connection_scope": "runner-owned localhost port",
      "current_user": "runner",
      "docker": {},
      "lc_messages": "C",
      "libpq_version": "18.6",
      "locale": "en_US.UTF-8",
      "log_destination": "csvlog,jsonlog",
      "log_error_verbosity": "verbose",
      "log_min_error_statement": "error",
      "log_min_messages": "error",
      "logging_collector": "on",
      "machine": "arm64",
      "max_connections": "100",
      "platform": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
      "psycopg_version": "3.3.5",
      "python_version": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]",
      "server_encoding": "UTF8",
      "server_version": "18.6 (Homebrew)",
      "server_version_num": "180006",
      "target_kind": "latest",
      "wal_level": "logical"
    },
    "id": "runtime.42601-pagination-semantics-latest.latest",
    "observed": {
      "connection_autocommit": true,
      "diagnostic": {
        "column_name": null,
        "constraint_name": null,
        "context": null,
        "datatype_name": null,
        "exception_type": "SyntaxError",
        "internal_position": null,
        "internal_query": null,
        "message_detail": null,
        "message_hint": "Use separate LIMIT and OFFSET clauses.",
        "message_primary": "LIMIT #,# syntax is not supported",
        "schema_name": null,
        "severity": "ERROR",
        "severity_nonlocalized": "ERROR",
        "source_file": "gram.y",
        "source_function": "base_yyparse",
        "source_line": "13317",
        "sqlstate": "42601",
        "statement_position": "56",
        "table_name": null,
        "text": "LIMIT #,# syntax is not supported\nLINE 1: ...T n FROM generate_series(1, 3) AS s(n) ORDER BY n LIMIT 1, 2\n                                                             ^\nHINT:  Use separate LIMIT and OFFSET clauses."
      },
      "failed_status": "IDLE",
      "repair_rows": [
        2,
        3
      ],
      "repair_status": "IDLE"
    },
    "raw": "verify/results/42601-pagination-semantics-latest/latest/raw.jsonl",
    "raw_sha256": "8a3fbabfae0f11a4a85d25c1dae94f0d602e072670492c0c6576d2270594f671",
    "run_id": "42601-pagination-semantics-latest",
    "server_version": "18.6 (Homebrew)",
    "server_version_num": 180006,
    "snippet_registry": {
      "id": "snippet-registry.42601",
      "kind": "local_artifact",
      "path": "verify/cases/42601/snippets.json",
      "sha256": "b3558d4c9d87beb77b205a3e505e35f2371cdb38cb270b3dd2c4c8a446fe0bc2",
      "source_role": "snippet_registry"
    },
    "status": "passed",
    "summary": "verify/results/42601-pagination-semantics-latest/latest/summary.json",
    "summary_sha256": "d4b448d2e517a150ad0f7ced48ed48114bbb94e8fb2eaca389203555f6882b0d",
    "target": "latest"
  },
  "run_id": "42601-pagination-semantics-latest",
  "runtime_id": "runtime.42601-pagination-semantics-latest.latest",
  "server_version": "18.6 (Homebrew)",
  "status": "passed",
  "target": "latest"
}
runtimes · runtime.42601-pagination-semantics-pg10.pg10 · 10.21 (Debian 10.21-1.pgdg90+1) · passed
{
  "cases": [],
  "limits": "",
  "position": 1,
  "raw": {
    "assertions": [
      {
        "expected": "42601",
        "name": "42601 SQLSTATE",
        "observed": "42601",
        "passed": true
      },
      {
        "expected": "ERROR",
        "name": "42601 ERROR severity",
        "observed": "ERROR",
        "passed": true
      },
      {
        "expected": "LIMIT #,# syntax is not supported",
        "name": "42601 primary diagnostic",
        "observed": "LIMIT #,# syntax is not supported",
        "passed": true
      },
      {
        "expected": "IDLE",
        "name": "syntax error leaves autocommit session usable",
        "observed": "IDLE",
        "passed": true
      },
      {
        "expected": {
          "status": "IDLE",
          "value": 1
        },
        "name": "separate LIMIT/OFFSET syntax succeeds",
        "observed": {
          "status": "IDLE",
          "value": 1
        },
        "passed": true
      }
    ],
    "case_manifest": {
      "id": "manifest.42601",
      "kind": "local_artifact",
      "path": "verify/cases/42601/cases.json",
      "sha256": "c6588aaa200ad4c3e553eb4f9cddc4d052ec68dbbe5018c8eb3966c4c3eb723c",
      "source_role": "case_manifest"
    },
    "cleanup": {
      "errors": [],
      "passed": true
    },
    "environment": {
      "TimeZone": "Etc/UTC",
      "backend_pid": 79,
      "binary": {},
      "connection_scope": "runner-owned localhost port",
      "current_user": "postgres",
      "docker": {
        "architecture": "arm64",
        "command": "/usr/local/bin/docker",
        "digest": "sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
        "id": "sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
        "image": "postgres:10",
        "image_created": "2022-06-23T09:11:18.374607054Z",
        "image_ref": "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc",
        "log_destination": "csvlog",
        "os": "linux",
        "repo_digests": [
          "postgres@sha256:b2baf8998630663d21370da06387c950e587071bdd307ee34e661cdcc7442bcc"
        ]
      },
      "lc_messages": "en_US.utf8",
      "libpq_version": "18.6",
      "locale": "en_US.UTF-8",
      "log_destination": "csvlog",
      "log_error_verbosity": "verbose",
      "log_min_error_statement": "error",
      "log_min_messages": "error",
      "logging_collector": "on",
      "machine": "arm64",
      "max_connections": "100",
      "platform": "macOS-26.6.2-arm64-arm-64bit-Mach-O",
      "psycopg_version": "3.3.5",
      "python_version": "3.14.6 (main, Jun 10 2026, 10:03:53) [Clang 21.0.0 (clang-2100.0.123.102)]",
      "server_encoding": "UTF8",
      "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
      "server_version_num": "100021",
      "target_kind": "pg10",
      "wal_level": "logical"
    },
    "id": "runtime.42601-pagination-semantics-pg10.pg10",
    "observed": {
      "connection_autocommit": true,
      "diagnostic": {
        "column_name": null,
        "constraint_name": null,
        "context": null,
        "datatype_name": null,
        "exception_type": "SyntaxError",
        "internal_position": null,
        "internal_query": null,
        "message_detail": null,
        "message_hint": "Use separate LIMIT and OFFSET clauses.",
        "message_primary": "LIMIT #,# syntax is not supported",
        "schema_name": null,
        "severity": "ERROR",
        "severity_nonlocalized": "ERROR",
        "source_file": "gram.y",
        "source_function": "base_yyparse",
        "source_line": "11203",
        "sqlstate": "42601",
        "statement_position": "56",
        "table_name": null,
        "text": "LIMIT #,# syntax is not supported\nLINE 1: ...T n FROM generate_series(1, 3) AS s(n) ORDER BY n LIMIT 1, 2\n                                                             ^\nHINT:  Use separate LIMIT and OFFSET clauses."
      },
      "failed_status": "IDLE",
      "repair_rows": [
        2,
        3
      ],
      "repair_status": "IDLE"
    },
    "raw": "verify/results/42601-pagination-semantics-pg10/pg10/raw.jsonl",
    "raw_sha256": "65a78ef75fe67cd99fa8d10bdb32b3203d487153368178c98200220df41a8980",
    "run_id": "42601-pagination-semantics-pg10",
    "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
    "server_version_num": 100021,
    "snippet_registry": {
      "id": "snippet-registry.42601",
      "kind": "local_artifact",
      "path": "verify/cases/42601/snippets.json",
      "sha256": "b3558d4c9d87beb77b205a3e505e35f2371cdb38cb270b3dd2c4c8a446fe0bc2",
      "source_role": "snippet_registry"
    },
    "status": "passed",
    "summary": "verify/results/42601-pagination-semantics-pg10/pg10/summary.json",
    "summary_sha256": "bd30ee0ec5a9797ddeec5689cd4b511ca294bdcfe26dcfdaf8c0db3f6ea4c864",
    "target": "pg10"
  },
  "run_id": "42601-pagination-semantics-pg10",
  "runtime_id": "runtime.42601-pagination-semantics-pg10.pg10",
  "server_version": "10.21 (Debian 10.21-1.pgdg90+1)",
  "status": "passed",
  "target": "pg10"
}
sources · src.errcodes.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/utils/errcodes.txt",
  "position": 0,
  "sha256": "6e8de346643ba84aa3c9c6a73360acfc7b2dfb89162c06c08ce9bf5bcd5bbcba",
  "source_id": "src.errcodes.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/utils/errcodes.txt"
}
sources · src.calls.REL_18_6
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "raw/calls/REL_18_6.jsonl",
  "position": 1,
  "sha256": "9ee8a0e81d8f0825c5c1ae45583439859a26e602bdd4ce2f2a62aa278867ccbf",
  "source_id": "src.calls.REL_18_6",
  "tag": "",
  "url": ""
}
sources · src.calls.REL_10_23
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "raw/calls/REL_10_23.jsonl",
  "position": 2,
  "sha256": "00d16d3eb01b71ccf1b245c8f3102f9d0ec9f36fb02777b8dd1b99fcb263040c",
  "source_id": "src.calls.REL_10_23",
  "tag": "",
  "url": ""
}
sources · src.limit-comma.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/parser/gram.y",
  "position": 3,
  "sha256": "7e548b673a1e03eb3a56c5eb9ad92d8e11095fac76e14cb258ca851f58274724",
  "source_id": "src.limit-comma.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/gram.y#L13313-L13317"
}
sources · src.limit-comma.10.23
{
  "commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/parser/gram.y",
  "position": 4,
  "sha256": "cebad6a5a2bdf68e9e5a4d2e04fa7f5dbf37efac99f5edb73cc661dae1536bad",
  "source_id": "src.limit-comma.10.23",
  "tag": "REL_10_23",
  "url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/parser/gram.y#L11200-L11204"
}
sources · src.scanner-syntax.18.6
{
  "commit": "724edf9bde9d356724ad384a2e196edc3c9f80f7",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/parser/scan.l",
  "position": 5,
  "sha256": "bf453f1ae3c22b84fea6f8e8bed4fda476b7cfa49b234efbf92ca228234d0293",
  "source_id": "src.scanner-syntax.18.6",
  "tag": "REL_18_6",
  "url": "https://github.com/postgres/postgres/blob/724edf9bde9d356724ad384a2e196edc3c9f80f7/src/backend/parser/scan.l#L1228-L1240"
}
sources · src.scanner-syntax.10.23
{
  "commit": "02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4",
  "docs_url": "",
  "kind": "upstream_source",
  "location": "",
  "path": "src/backend/parser/scan.l",
  "position": 6,
  "sha256": "a006581a25c659d59b29837010617503ff431f881e3cf0b54a99aa1cc445fe6c",
  "source_id": "src.scanner-syntax.10.23",
  "tag": "REL_10_23",
  "url": "https://github.com/postgres/postgres/blob/02991e79f8f58bc208f05dcc8af0c62dbe0a6ea4/src/backend/parser/scan.l#L1115-L1127"
}
sources · manifest.42601
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/cases/42601/cases.json",
  "position": 7,
  "sha256": "c6588aaa200ad4c3e553eb4f9cddc4d052ec68dbbe5018c8eb3966c4c3eb723c",
  "source_id": "manifest.42601",
  "tag": "",
  "url": ""
}
sources · snippet-registry.42601
{
  "commit": "",
  "docs_url": "",
  "kind": "local_artifact",
  "location": "",
  "path": "verify/cases/42601/snippets.json",
  "position": 8,
  "sha256": "b3558d4c9d87beb77b205a3e505e35f2371cdb38cb270b3dd2c4c8a446fe0bc2",
  "source_id": "snippet-registry.42601",
  "tag": "",
  "url": ""
}

Source references

Full definition and evidence JSON

Definition sources

center · PostgreSQL 18 · english-manuals:89a3a188a94978d0c564bbd90d235b44e83ff044af019d3a5eb8762e277af58d

Text language: en · english-manuals:89a3a188a94978d0c564bbd90d235b44e83ff044af019d3a5eb8762e277af58d