Thread

  1. Re: Row pattern recognition

    jian he <jian.universality@gmail.com> — 2026-05-05T03:53:07Z

    On Tue, May 5, 2026 at 8:02 AM Tatsuo Ishii <ishii@postgresql.org> wrote:
    >
    > > Attached is the v47 patches for Row pattern recognition (SQL/RPR).
    >
    
    Hi
    The patchset is too big, I only downloaded v47-0001...
    Just a quick skim of the code on my end.
    I noticed two code style issues, currently we don't have a code style
    reference in the manual.
    
    1. We need to add trailing commas to enum definitions. See
    https://git.postgresql.org/cgit/postgresql.git/commit/?id=611806cd726fc92989ac918eac48fd8d684869c7
    
    2.
    + | '{' ',' Iconst '}' Op
    + {
    + if (strcmp($5, "?") != 0)
    + ereport(ERROR,
    + (errcode(ERRCODE_SYNTAX_ERROR),
    + errmsg("invalid token after range quantifier"),
    + errhint("Only \"?\" is allowed after {n,} or {,m} to make it reluctant."),
    + parser_errposition(@5)));
    + if ($3 <= 0 || $3 >= INT_MAX)
    + ereport(ERROR,
    + errcode(ERRCODE_SYNTAX_ERROR),
    + errmsg("quantifier bound must be between 1 and %d", INT_MAX - 1),
    + parser_errposition(@3));
    + $$ = (Node *) makeRPRQuantifier(0, $3, @5, @1, yyscanner);
    
    + (errcode(ERRCODE_SYNTAX_ERROR),
    The leading parenthesis is optional and can be removed, fewer
    parentheses are always better.
    See related discussion:
    https://postgr.es/m/202510100916.s2e6n3xiwvyc@alvherre.pgsql
    
    Since v47-0001 introduces many ereport(ERROR) messages, it makes sense
    to move the related regression tests from the other patch into
    v47-0001, IMHO.
    
    
    
    --
    jian
    https://www.enterprisedb.com/