Re: [HACKERS] Enabling parallelism for queries coming from SQL orother PL functions
От | Dilip Kumar |
---|---|
Тема | Re: [HACKERS] Enabling parallelism for queries coming from SQL orother PL functions |
Дата | |
Msg-id | CAFiTN-stKT7tr_TmLig031NWst1AiBHgTWgWGCViOpAYRXK0Nw@mail.gmail.com обсуждение исходный текст |
Ответ на | [HACKERS] Enabling parallelism for queries coming from SQL or other PL functions (Rafia Sabih <rafia.sabih@enterprisedb.com>) |
Ответы |
Re: [HACKERS] Enabling parallelism for queries coming from SQL orother PL functions
|
Список | pgsql-hackers |
On Wed, Feb 22, 2017 at 10:25 AM, Rafia Sabih <rafia.sabih@enterprisedb.com> wrote: > Hello everybody, > > In the current version, queries in SQL or PL functions can not > leverage parallelism. To relax this restriction I prepared a patch, > the approach used in the patch is explained next, Some initial comments. ---------- if (numberTuples || dest->mydest == DestIntoRel) use_parallel_mode = false; if (use_parallel_mode) EnterParallelMode(); + else if (estate->es_plannedstmt->parallelModeNeeded && + (dest->mydest == DestSPI || dest->mydest == DestSQLFunction)) + { + use_parallel_mode = true; + EnterParallelMode(); + } I think we can simplify this, can we replace above code with something like this? if (dest->mydest == DestIntoRel || numberTuples && (dest->mydest != DestSPI || dest->mydest != DestSQLFunction)) use_parallel_mode = false; ------------- + { + /* Allow parallelism if the function is not trigger type. */ + if (estate->func->fn_is_trigger == PLPGSQL_NOT_TRIGGER) + exec_res = SPI_execute(querystr, estate->readonly_func, CURSOR_OPT_PARALLEL_OK); + else + exec_res = SPI_execute(querystr, estate->readonly_func, 0); + } The last parameter of SPI_execute is tuple count, not cursorOption, you need to fix this. Also, this is crossing the 80 line boundary. ----------- Any specific reason for not changing SPI_execute_with_args, EXECUTE with USING will take this path. -- Regards, Dilip Kumar EnterpriseDB: http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: