Re: How to prohibit parallel scan through tableam?
Hi, On 2019-11-27 16:10:20 +0300, Konstantin Knizhnik wrote: > On 27.11.2019 15:12, Rafia Sabih wrote: > > On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik > > mailto:k.knizh...@postgrespro.ru>> wrote: > > > > Hi hackers, > > > > I wonder how it is possible to prohibit parallel scan for the > > external > > storage accessed through tableam? > > For example if I want to implement specialized tableam for fast > > access > > to temp tables, how can I inform optimizer that > > parallel scan is not possible (because table data is local to the > > backend)? > > > > How about setting parallel_setup_cost to disable_cost in costsize.c for > > your specific scan method. > > How can I do it if i just implementing my AM and not going to change any > postgres code? I think a set_rel_pathlist hook that prevents parallel paths from being considered would be your best bet for now. But I encourage you to suggest a patch to tableam to support it properly in future releases. Greetings, Andres Freund
Re: How to prohibit parallel scan through tableam?
Hi, On 2019-11-27 14:33:42 +0300, Konstantin Knizhnik wrote: > I wonder how it is possible to prohibit parallel scan for the external > storage accessed through tableam? > For example if I want to implement specialized tableam for fast access to > temp tables, how can I inform optimizer that > parallel scan is not possible (because table data is local to the backend)? I don't think there currently is a good way to do so - but it shouldn't be hard to add that capability. Greetings, Andres Freund
Re: How to prohibit parallel scan through tableam?
On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik wrote: > Hi hackers, > > I wonder how it is possible to prohibit parallel scan for the external > storage accessed through tableam? > For example if I want to implement specialized tableam for fast access > to temp tables, how can I inform optimizer that > parallel scan is not possible (because table data is local to the backend)? > > One moment, isn't that parallel scans are already restricted for temp tables, or I have misunderstood something here...? -- Regards, Rafia Sabih
Re: How to prohibit parallel scan through tableam?
On 27.11.2019 15:12, Rafia Sabih wrote: On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik mailto:k.knizh...@postgrespro.ru>> wrote: Hi hackers, I wonder how it is possible to prohibit parallel scan for the external storage accessed through tableam? For example if I want to implement specialized tableam for fast access to temp tables, how can I inform optimizer that parallel scan is not possible (because table data is local to the backend)? How about setting parallel_setup_cost to disable_cost in costsize.c for your specific scan method. How can I do it if i just implementing my AM and not going to change any postgres code? -- Konstantin Knizhnik Postgres Professional: http://www.postgrespro.com The Russian Postgres Company
Re: How to prohibit parallel scan through tableam?
On Wed, 27 Nov 2019 at 12:33, Konstantin Knizhnik wrote: > Hi hackers, > > I wonder how it is possible to prohibit parallel scan for the external > storage accessed through tableam? > For example if I want to implement specialized tableam for fast access > to temp tables, how can I inform optimizer that > parallel scan is not possible (because table data is local to the backend)? > > How about setting parallel_setup_cost to disable_cost in costsize.c for your specific scan method. -- Regards, Rafia Sabih
How to prohibit parallel scan through tableam?
Hi hackers, I wonder how it is possible to prohibit parallel scan for the external storage accessed through tableam? For example if I want to implement specialized tableam for fast access to temp tables, how can I inform optimizer that parallel scan is not possible (because table data is local to the backend)? Thanks in advance, -- Konstantin Knizhnik Postgres Professional: http://www.postgrespro.com The Russian Postgres Company