mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-24 18:55:04 +08:00
file_fdw: Fix for generated columns
Since file_fdw uses COPY internally, but COPY doesn't allow listing generated columns in its column list, we need to make sure that we don't add generated columns to the column lists internally generated by file_fdw. Reported-by: Erik Rijkers <er@xs4all.nl>
This commit is contained in:
parent
6f0e190056
commit
33215d113d
@ -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)));
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user