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
