Re: tablesample with partitioned tables
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
From: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
To: David Fetter <david@fetter.org>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2017-02-23T04:53:50Z
Lists: pgsql-hackers
On 2017/02/23 0:54, David Fetter wrote: > On Wed, Feb 22, 2017 at 04:51:46PM +0900, Amit Langote wrote: >> Attached patch fixes an oversight that tablesample cannot be used with >> partitioned tables: >> >> create table p (a int) partition by list (a); >> select * from p tablesample bernoulli (50); >> ERROR: TABLESAMPLE clause can only be applied to tables and materialized >> views > > Thanks! > > Should the error message change somehow to reflect that partitioned > tables are included? Is complete transparency of partitioned tables > the goal, and reasonable in this context? We avoid mentioning partitioned tables separately during most of the errors caused by relkind checks. I mentioned recently [1] that in most of these sites such as this one, a table's being partitioned is not significant. > Also, is there a good reason apart from tuits not to expand > TABLESAMPLE to the rest of our SQL-visible relation structures? I'm > guessing this could have something to do with the volatility they > might have, whether in views that call volatile functions or in > foreign tables that might not make the right guarantees... I wouldn't be able to say much about that, but I found an email from the original discussion that occurred around development of this feature that posed the same question. There might be some answers there. [1] https://www.postgresql.org/message-id/854ad246-4dfa-5c68-19ad-867b6800f313%40lab.ntt.co.jp [2] https://www.postgresql.org/message-id/5526D369.1070905%40gmx.net
Commits
-
Make tablesample work with partitioned tables.
- 5dbdb2f79923 10.0 landed