Re: How to prohibit parallel scan through tableam?

2019-12-03 Thread Andres Freund
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?

2019-12-03 Thread Andres Freund
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?

2019-11-28 Thread Rafia Sabih
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?

2019-11-27 Thread Konstantin Knizhnik



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?

2019-11-27 Thread Rafia Sabih
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?

2019-11-27 Thread Konstantin Knizhnik

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