Re: Enabling parallelism for queries coming from SQL or other PL functions
Rafia Sabih <rafia.sabih@enterprisedb.com>
From: Rafia Sabih <rafia.sabih@enterprisedb.com>
To: Dilip Kumar <dilipbalaut@gmail.com>
Cc: Robert Haas <robertmhaas@gmail.com>, PostgreSQL Developers <pgsql-hackers@postgresql.org>
Date: 2017-03-23T04:41:02Z
Lists: pgsql-hackers
Attachments
- execute-once-v3.patch (application/octet-stream) patch v3
- pl_parallel_opt_support_v3.patch (application/octet-stream) patch v3
On Thu, Mar 23, 2017 at 5:23 AM, Dilip Kumar <dilipbalaut@gmail.com> wrote: > On Wed, Mar 22, 2017 at 10:33 PM, Robert Haas <robertmhaas@gmail.com> wrote: >> So couldn't we actually make this test !fcache->returnsSet || !es->lazyEval? >> That would let us allow parallel execution for all non-set-returning >> functions, and also for set-returning functions that end up with >> es->lazyEval set to false. > > Yes, this is the right thing to do although we may not enable > parallelism for any more queries by adding "|| !es->lazyEval". Because > SELECT are always marked as es->lazyEval=true(And so far we have > parallelism only for select). But here we calling the parameter to > ExecutorRun as execute_once so !fcache->returnsSet || !es->lazyEval > is the correct one and future proof. > Agree, done. -- Regards, Rafia Sabih EnterpriseDB: http://www.enterprisedb.com/
Commits
-
Improve access to parallel query from procedural languages.
- 61c2e1a95f94 10.0 landed
-
plpgsql: Don't generate parallel plans for RETURN QUERY.
- 5674a258fd7e 9.6.3 landed
- f120b614e070 10.0 landed
-
Allow for parallel execution whenever ExecutorRun() is done only once.
- 691b8d59281b 10.0 landed