diff options
-rw-r--r-- | contrib/file_fdw/file_fdw.c | 4 | ||||
-rw-r--r-- | contrib/file_fdw/input/file_fdw.source | 6 | ||||
-rw-r--r-- | contrib/file_fdw/output/file_fdw.source | 11 |
3 files changed, 21 insertions, 0 deletions
diff --git a/contrib/file_fdw/file_fdw.c b/contrib/file_fdw/file_fdw.c index 391cd0d778d..85534a3a768 100644 --- a/contrib/file_fdw/file_fdw.c +++ b/contrib/file_fdw/file_fdw.c @@ -922,6 +922,10 @@ check_selective_binary_conversion(RelOptInfo *baserel, /* Skip dropped attributes (probably shouldn't see any here). */ if (attr->attisdropped) continue; + /* Skip generated columns (COPY won't accept them in the column + * list) */ + if (attr->attgenerated) + continue; *columns = lappend(*columns, makeString(pstrdup(attname))); } } diff --git a/contrib/file_fdw/input/file_fdw.source b/contrib/file_fdw/input/file_fdw.source index a5e79a4549a..45b728eeb3d 100644 --- a/contrib/file_fdw/input/file_fdw.source +++ b/contrib/file_fdw/input/file_fdw.source @@ -189,6 +189,12 @@ SELECT tableoid::regclass, * FROM p1; SELECT tableoid::regclass, * FROM p2; DROP TABLE pt; +-- generated column tests +CREATE FOREIGN TABLE gft1 (a int, b text, c text GENERATED ALWAYS AS ('foo') STORED) SERVER file_server +OPTIONS (format 'csv', filename '@abs_srcdir@/data/list1.csv', delimiter ','); +SELECT a, c FROM gft1; +DROP FOREIGN TABLE gft1; + -- privilege tests SET ROLE regress_file_fdw_superuser; SELECT * FROM agg_text ORDER BY a; diff --git a/contrib/file_fdw/output/file_fdw.source b/contrib/file_fdw/output/file_fdw.source index 853c9f9b28b..52b4d5f1df7 100644 --- a/contrib/file_fdw/output/file_fdw.source +++ b/contrib/file_fdw/output/file_fdw.source @@ -375,6 +375,17 @@ SELECT tableoid::regclass, * FROM p2; (3 rows) DROP TABLE pt; +-- generated column tests +CREATE FOREIGN TABLE gft1 (a int, b text, c text GENERATED ALWAYS AS ('foo') STORED) SERVER file_server +OPTIONS (format 'csv', filename '@abs_srcdir@/data/list1.csv', delimiter ','); +SELECT a, c FROM gft1; + a | c +---+-------- + 1 | _null_ + 1 | _null_ +(2 rows) + +DROP FOREIGN TABLE gft1; -- privilege tests SET ROLE regress_file_fdw_superuser; SELECT * FROM agg_text ORDER BY a; |