Re: executor relation handling
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
Attachments
- v4-0001-Don-t-lock-range-table-relations-in-the-executor.patch (text/plain) patch v4-0001
- v4-0002-Remove-useless-fields-from-planner-nodes.patch (text/plain) patch v4-0002
- v4-0003-Prune-PlanRowMark-of-relations-that-are-pruned-fr.patch (text/plain) patch v4-0003
- v4-0004-Revise-executor-range-table-relation-opening-clos.patch (text/plain) patch v4-0004
On 2018/09/13 0:23, Amit Langote wrote: > On Wed, Sep 12, 2018 at 9:23 PM, Jesper Pedersen > <jesper.pedersen@redhat.com> wrote: >> Hi Amit, >> >> On 9/12/18 1:23 AM, Amit Langote wrote: >>> >>> Please find attached revised patches. >>> >> >> After applying 0004 I'm getting a crash in 'eval-plan-qual' during >> check-world using >> >> export CFLAGS="-DCOPY_PARSE_PLAN_TREES -O0 -fno-omit-frame-pointer" && >> ./configure --enable-dtrace --with-openssl --with-gssapi --with-libxml >> --with-llvm --enable-debug --enable-depend --enable-tap-tests >> --enable-cassert >> >> Confirmed by CFBot in [1]. >> >> [1] https://travis-ci.org/postgresql-cfbot/postgresql/builds/427530296 > > Thanks Jesper. Will look into it first thing tomorrow morning. Attached updated patches. Beside the issue that caused eval-plan-qual isolation test to crash, I also spotted and fixed an oversight in the 0002 patch which would lead to EState.es_output_cid being set to wrong value and causing unexpected error during tuple locking as result of that. Thanks, Amit
Commits
-
Avoid O(N^2) cost in ExecFindRowMark().
- f9eb7c14b08d 12.0 landed
-
Remove some unnecessary fields from Plan trees.
- 52ed730d511b 12.0 landed
-
Restore sane locking behavior during parallel query.
- 29ef2b310da9 12.0 landed
-
Remove more redundant relation locking during executor startup.
- f2343653f5b2 12.0 landed
-
In the executor, use an array of pointers to access the rangetable.
- d73f4c74dd34 12.0 landed
-
Centralize executor's opening/closing of Relations for rangetable entries.
- 9ddef36278a9 12.0 landed
-
Change executor to just Assert that table locks were already obtained.
- 9a3cebeaa7fd 12.0 landed
-
Change rewriter/planner/executor/plancache to depend on RTE rellockmode.
- 6e35939febf8 12.0 landed
-
Add assertions that we hold some relevant lock during relation open.
- b04aeb0a053e 12.0 landed
-
Create an RTE field to record the query's lock mode for each relation.
- fdba460a26af 12.0 landed