Re: Row pattern recognition

jian he <jian.universality@gmail.com>

From: jian he <jian.universality@gmail.com>
To: assam258@gmail.com
Cc: Tatsuo Ishii <ishii@postgresql.org>, zsolt.parragi@percona.com, sjjang112233@gmail.com, vik@postgresfriends.org, er@xs4all.nl, jacob.champion@enterprisedb.com, david.g.johnston@gmail.com, peter@eisentraut.org, li.evan.chao@gmail.com, pgsql-hackers@postgresql.org
Date: 2026-06-17T05:14:09Z
Lists: pgsql-hackers

Attachments

On Mon, Jun 15, 2026 at 2:32 PM jian he <jian.universality@gmail.com> wrote:
>
> Hi.
>
> More review based on https://github.com/assam258-5892/postgres/commits/RPR
>

/* arity: a value expression and an optional offset */
Typo: arity

I've attached a patch with some refactoring.
Please note that the inline comments have not yet been updated to
match this refactoring.
The below is detailed commit message.
------------------------------------------------------------------------------------------------
Simplify ParseFuncOrColumn:
It now routes to ParseRPRNavCall exclusively when ParseExprKind is
EXPR_KIND_RPR_DEFINE *and* not column projection *and*
list_length(funcname) == 1.
Original behavior is preserved otherwise.

Centralize error handling:
Treat RPR navigation as FUNCDETAIL_NORMAL to reuse the common error handling in
ParseFuncOrColumn, effectively stripping redundant error checks from
ParseRPRNavCall.

Other miscellaneous code cleanups and minor refactoring.
------------------------------------------------------------------------------------------------



--
jian
https://www.enterprisedb.com/

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Adjust cross-version upgrade tests for seg_out() fix

  2. Rationalize error comments in partition split/merge tests

  3. Add fast path for foreign key constraint checks

  4. Fix assorted pretty-trivial memory leaks in the backend.

  5. Add temporal FOREIGN KEY contraints

  6. Add trailing commas to enum definitions

  7. Remove obsolete executor cleanup code