Re: executor relation handling

From: David Rowley <david(dot)rowley(at)2ndquadrant(dot)com>
To: Amit Langote <Langote_Amit_f8(at)lab(dot)ntt(dot)co(dot)jp>
Cc: Jesper Pedersen <jesper(dot)pedersen(at)redhat(dot)com>, Amit Langote <amitlangote09(at)gmail(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: executor relation handling
Date: 2018-09-27 09:15:50
Views: Raw Message | Whole Thread | Download mbox
Lists: pgsql-hackers

I've just completed a review of the v5 patch set. I ended up just
making the changes myself since Amit mentioned he was on leave for a
few weeks.

Summary of changes:

1. Changed the way we verify the lock already exists with debug
builds. I reverted some incorrect code added to LockRelationOid that
seems to have gotten broken after being rebased on f868a8143a9. I've
just added some functions that verify the lock is in the
LockMethodLocalHash hashtable.
2. Fixed some incorrect lock types being passed into
3. Added code in addRangeTableEntryForRelation to verify we actually
hold the lock that the parameter claims we do. (This found all the
errors I fixed in #2)
4. Updated various comments outdated by the patches
5. Updated executor README's mention that we close relations when
calling the end node function. This is now handled at the end of
6. Renamed nominalRelation to targetRelation. I think this fits
better since we're overloading the variable.
7. Use LOCKMODE instead of int in some places.
8. Changed warning about relation not locked to WARNING instead of NOTICE.
9. Renamed get_unpruned_rowmarks() to get_nondummy_rowmarks(). Pruning
makes me think of partition pruning but the function checks for dummy
rels. These could be dummy for reasons other than partition pruning.

I've attached a diff showing the changes I made along with the full
patches which I tagged as v6.

David Rowley
PostgreSQL Development, 24x7 Support, Training & Services

Attachment Content-Type Size
v5_to_v6_changes.diff application/octet-stream 34.0 KB
v6-0001-Don-t-lock-range-table-relations-in-the-executor.patch application/octet-stream 43.8 KB
v6-0002-Remove-useless-fields-from-planner-nodes.patch application/octet-stream 43.4 KB
v6-0003-Prune-PlanRowMark-of-relations-that-are-pruned-fr.patch application/octet-stream 2.4 KB
v6-0004-Revise-executor-range-table-relation-opening-clos.patch application/octet-stream 39.6 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Masahiko Sawada 2018-09-27 09:18:41 Re: when set track_commit_timestamp on, database system abort startup
Previous Message Michael Paquier 2018-09-27 09:12:04 Re: Problem while setting the fpw with SIGHUP