| From: | Henson Choi <assam258(at)gmail(dot)com> |
|---|---|
| To: | Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>, Junwang Zhao <zhjwpku(at)gmail(dot)com> |
| Cc: | Peter Eisentraut <peter(at)eisentraut(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: SQL/PGQ: All properties reference |
| Date: | 2026-04-03 01:53:54 |
| Message-ID: | CAAAe_zD3==epK=KufoBiLfogztpKbimxc498TUshTOQkkpgOjg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hi Ashutosh,
I am starting a new thread to discuss all properties reference feature
> which was not committed with the main patch. [1]
>
> A <variable>.* is called all properties reference and it is allowed
> only in COLUMNs clause. Interpreting subclause 9.2 and 9.3 together,
> it expands to a list of graph property references <variable>.p1, ...
> <variable>.pn where p1, ..., pn are the properties of the labels which
> satisfy the label expression in the element pattern identified by
> <variable>. The graph property references are added to the COLUMNs
> clause in place of the all property reference, just like how <table>.*
> expands in SELECT's targetlist.
>
> In the current implementation, we delay resolving graph property
> references (<variable>.<property>) till the time query is generated
> (generate_query_for_graph_path()). If we delay the all properties
> reference till that time, we can not determine the data types and
> names of the columns in the COLUMNs list. So we need to do that when
> the COLUMNs clause is resolved. This means that the properties
> associated with the labels needs to be resolved earlier. Since the
> properties are not associated with labels directly but through the
> elements, we need to find at least one element for every label in the
> label expression. In brief, all the namespace resolution need to
> happen before we transform COLUMNs clause. The patch rearranges the
> code that way.
>
I tried applying v20260318 on top of master to review it, but ran
into merge conflicts in two files:
- parse_graphtable.c
- rewriteGraphTable.c
The conflicts come from this commit that was added after the main PGQ
commit (2f094e7ac69):
- a0dd0702e46 Fix cross variable references in graph pattern causing
segfault
Would it be possible to rebase the patch on the current master so
I can review it cleanly?
Best Regards,
Henson
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Robert Haas | 2026-04-03 02:08:51 | Re: pg_plan_advice |
| Previous Message | Yugo Nagata | 2026-04-03 01:44:53 | Re: Adjust error message for CREATE STATISTICS to account for expressions |