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