Re: Row pattern recognition

From: Henson Choi <assam258(at)gmail(dot)com>
To: jian he <jian(dot)universality(at)gmail(dot)com>
Cc: Tatsuo Ishii <ishii(at)postgresql(dot)org>, zsolt(dot)parragi(at)percona(dot)com, sjjang112233(at)gmail(dot)com, vik(at)postgresfriends(dot)org, er(at)xs4all(dot)nl, jacob(dot)champion(at)enterprisedb(dot)com, david(dot)g(dot)johnston(at)gmail(dot)com, peter(at)eisentraut(dot)org, li(dot)evan(dot)chao(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org
Subject: Re: Row pattern recognition
Date: 2026-09-08 02:59:33
Message-ID: CAAAe_zBQPaWQpe0suz=En3CS7LNcLH4rLgLwyJZw4p=f1yMhWw@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Tatsuo,

> I will look into these after finishing post patch release review for
> v51.

Before you start, one thing has changed under us. SQL/PGQ was
reverted from master yesterday (b1f106c80cb). Rebasing v51 and the
increment onto current master raises a handful of conflicts, all
mechanical, and then breaks on something that raised none.

The conflicts first. Five hunks in three commits, all of the same
shape: SQL/PGQ had added something, RPR added its own entry next to
it, and the revert took the SQL/PGQ half away.

gram.y the %type block, the keyword token list (DESTINATION
next to our DEFINE), and the %nonassoc list before
%left Op OPERATOR
parse_agg.c EXPR_KIND_PROPGRAPH_PROPERTY next to
EXPR_KIND_RPR_DEFINE
parse_expr.c the same
nodeFuncs.c T_GraphElementPattern and T_GraphPattern next to
T_RPCommonSyntax and T_RPRPatternNode

In each, the resolution is to keep our side and drop theirs.

"|" is the one that did not announce itself. The lexer change lives
in scan.l, which no RPR commit touches, so it came away with the
revert and raised no conflict at all. RPR still needs it.

Without it a lone "|" arrives as an Op, row_pattern_alt never fires,
and PATTERN (A | B) fails with "unsupported quantifier".

What made it work was SQL/PGQ (2f094e7ac69). It needed a lone "|"
for label disjunction in GRAPH_TABLE, so that an element pattern
could be written as MATCH (a IS vl1 | vl2).

RPR's alternation was then written against that token.
row_pattern_alt does the same thing one level up, and the handling
around it assumes "|" arrives separately. We extended what SQL/PGQ
had put in place, so with SQL/PGQ gone RPR has to carry the
groundwork itself.

The attached nocfbot-0002-pipe-single-character-token.txt does that.

Best regards,
Henson

Attachment Content-Type Size
nocfbot-0002-pipe-single-character-token.txt text/plain 3.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Yuhang Qiu 2026-09-08 03:09:38 Re: Changing shared_buffers without restart
Previous Message jian he 2026-09-08 02:03:40 Re: Row pattern recognition