pgsql: Check relkind before using TABLESAMPLE in postgres_fdw - Mailing list pgsql-committers

From Tomas Vondra
Subject pgsql: Check relkind before using TABLESAMPLE in postgres_fdw
Date
Msg-id E1pE9UQ-002UQf-BJ@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Check relkind before using TABLESAMPLE in postgres_fdw

Check the remote relkind before trying to use TABLESAMPLE to acquire
sample from the remote relation. Even if the remote server version has
TABLESAMPLE support, the foreign table may point to incompatible relkind
(e.g. a view or a sequence).

If the relkind does not support TABLESAMPLE, error out if TABLESAMPLE
was requested specifically (as system/bernoulli), or fallback to random
just like we do for old server versions.

We currently end up disabling sampling for such relkind values anyway,
due to reltuples being -1 or 1, but that seems rather accidental, and
might get broken by improving reltuples estimates, etc.  So better to
make the check explicit.

Reported-by: Tom Lane
Discussion: https://postgr.es/m/951485.1672461744%40sss.pgh.pa.us

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/57d11ef028d126f95595c08c62ffb4c5147d0f86

Modified Files
--------------
contrib/postgres_fdw/deparse.c      |  7 +++--
contrib/postgres_fdw/postgres_fdw.c | 60 ++++++++++++++++++++++++++-----------
contrib/postgres_fdw/postgres_fdw.h |  2 +-
3 files changed, 47 insertions(+), 22 deletions(-)


pgsql-committers by date:

Previous
From: Dean Rasheed
Date:
Subject: pgsql: psql: Add support for \dpS and \zS.
Next
From: Tom Lane
Date:
Subject: Re: pgsql: Fix calculation of which GENERATED columns need to be updated.