[Bug] Add the missing RTE_GRAPH_TABLE case to transformLockingClause() - Mailing list pgsql-hackers

From SATYANARAYANA NARLAPURAM
Subject [Bug] Add the missing RTE_GRAPH_TABLE case to transformLockingClause()
Date
Msg-id CAHg+QDcE9wp6nOEC3SCRQ90nrCO=QF+OZq1MG8Qc6hnusmogqw@mail.gmail.com
Whole thread
Responses Re: [Bug] Add the missing RTE_GRAPH_TABLE case to transformLockingClause()
List pgsql-hackers
Hi Hackers,

Add the missing RTE_GRAPH_TABLE case to transformLockingClause(). Without this four
row-locking strengths applied to a GRAPH_TABLE alias triggers not give a user friendly
error message.

Repro:

  CREATE TABLE v(id int PRIMARY KEY, vname text);
  CREATE PROPERTY GRAPH g VERTEX TABLES (v);
  SELECT * FROM GRAPH_TABLE(g MATCH (a) COLUMNS (a.vname)) gt
    FOR UPDATE OF gt;
  -- ERROR:  unrecognized RTE type: 8

Attached a patch that returns ERRCODE_FEATURE_NOT_SUPPORTED "FOR ... cannot be
applied to a GRAPH_TABLE" with a position pointer, matching the convention used by
the function/tablefunc etc. Patch includes tests for all four locking strengths.
Since the code path looks simple we can just keep one of them as well and trim other
tests. Thoughts?

Thanks,
Satya
Attachment

pgsql-hackers by date:

Previous
From: Chao Li
Date:
Subject: Re: FOR PORTION OF does not recompute GENERATED STORED columns that depend on the range column
Next
From: SATYANARAYANA NARLAPURAM
Date:
Subject: Re: Skip prefetch for block references that follow a FPW or WILL_INIT of the same block