postgresql/contrib
Etsuro Fujita aa769f80ed postgres_fdw: Fix issues with generated columns in foreign tables.
postgres_fdw imported generated columns from the remote tables as plain
columns, and caused failures like "ERROR: cannot insert a non-DEFAULT
value into column "foo"" when inserting into the foreign tables, as it
tried to insert values into the generated columns.  To fix, we do the
following under the assumption that generated columns in a postgres_fdw
foreign table are defined so that they represent generated columns in
the underlying remote table:

* Send DEFAULT for the generated columns to the foreign server on insert
  or update, not generated column values computed on the local server.
* Add to postgresImportForeignSchema() an option "import_generated" to
  include column generated expressions in the definitions of foreign
  tables imported from a foreign server.  The option is true by default.

The assumption seems reasonable, because that would make a query of the
postgres_fdw foreign table return values for the generated columns that
are consistent with the generated expression.

While here, fix another issue in postgresImportForeignSchema(): it tried
to include column generated expressions as column default expressions in
the foreign table definitions when the import_default option was enabled.

Per bug #16631 from Daniel Cherniy.  Back-patch to v12 where generated
columns were added.

Discussion: https://postgr.es/m/16631-e929fe9db0ffc7cf%40postgresql.org
2021-08-05 20:00:00 +09:00
..
adminpack Rename Default Roles to Predefined Roles 2021-04-01 15:32:06 -04:00
amcheck Unify PostgresNode's new() and get_new_node() methods 2021-07-29 05:58:08 -04:00
auth_delay Update copyright for 2021 2021-01-02 13:06:25 -05:00
auto_explain Unify PostgresNode's new() and get_new_node() methods 2021-07-29 05:58:08 -04:00
bloom Unify PostgresNode's new() and get_new_node() methods 2021-07-29 05:58:08 -04:00
bool_plperl Fix broken ruleutils support for function TRANSFORM clauses. 2021-01-25 13:03:43 -05:00
btree_gin Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
btree_gist Revert "Add sortsupport for gist_btree opclasses, for faster index builds." 2021-04-07 14:33:21 +03:00
citext Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
cube Add binary I/O capability for cube datatype. 2021-03-06 12:04:05 -05:00
dblink Revert use singular for -1 (commits 9ee7d533da and 5da9868ed9 2021-05-01 10:42:44 -04:00
dict_int Update copyright for 2021 2021-01-02 13:06:25 -05:00
dict_xsyn Update copyright for 2021 2021-01-02 13:06:25 -05:00
earthdistance Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
file_fdw Rename Default Roles to Predefined Roles 2021-04-01 15:32:06 -04:00
fuzzystrmatch Update copyright for 2021 2021-01-02 13:06:25 -05:00
hstore Remove deprecated containment operators for contrib types. 2021-03-05 10:45:41 -05:00
hstore_plperl Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
hstore_plpython Fix broken ruleutils support for function TRANSFORM clauses. 2021-01-25 13:03:43 -05:00
intagg Make contrib modules' installation scripts more secure. 2020-08-10 10:44:42 -04:00
intarray Remove extraneous newlines added by perl copyright patch 2021-05-07 11:37:37 -04:00
isn Update copyright for 2021 2021-01-02 13:06:25 -05:00
jsonb_plperl Expose internal function for converting int64 to numeric 2020-09-09 20:16:28 +02:00
jsonb_plpython Support infinity and -infinity in the numeric data type. 2020-07-22 19:19:44 -04:00
lo Fix bogus CALLED_AS_TRIGGER() defenses. 2020-04-03 11:24:56 -04:00
ltree Adjust MSVC build scripts to parse Makefiles for defines 2021-07-29 12:01:23 +12:00
ltree_plpython Improve error messages in ltree_in and lquery_in. 2020-03-31 11:14:42 -04:00
oid2name Add a copyright notice to perl files lacking one. 2021-05-07 10:56:14 -04:00
old_snapshot Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
pageinspect pageinspect: Improve page_header() for pages of 32kB 2021-07-12 11:05:27 +09:00
passwordcheck Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_buffercache Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
pg_freespacemap Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
pg_prewarm Replace RelationOpenSmgr() with RelationGetSmgr(). 2021-07-12 17:01:36 -04:00
pg_stat_statements Harden pg_stat_statements tests against CLOBBER_CACHE_ALWAYS. 2021-07-25 23:25:15 -04:00
pg_surgery Improve error messages about mismatching relkind 2021-07-08 09:44:51 +02:00
pg_trgm Fix invalid array access in trgm_regexp.c. 2021-02-21 19:46:46 -05:00
pg_visibility Replace RelationOpenSmgr() with RelationGetSmgr(). 2021-07-12 17:01:36 -04:00
pgcrypto pgcrypto: Check for error return of px_cipher_decrypt() 2021-03-23 11:48:37 +01:00
pgrowlocks Rename Default Roles to Predefined Roles 2021-04-01 15:32:06 -04:00
pgstattuple Improve error messages about mismatching relkind 2021-07-08 09:44:51 +02:00
postgres_fdw postgres_fdw: Fix issues with generated columns in foreign tables. 2021-08-05 20:00:00 +09:00
seg Stabilize contrib/seg regression test. 2021-06-07 14:52:42 -04:00
sepgsql Centralize the logic for protective copying of utility statements. 2021-06-18 11:22:58 -04:00
spi Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
sslinfo Use be_tls_* API for SSL information in sslinfo 2020-11-03 09:47:36 +01:00
start-scripts Remove contrib/start-scripts/osx/. 2017-11-17 12:53:20 -05:00
tablefunc Update copyright for 2021 2021-01-02 13:06:25 -05:00
tcn Update copyright for 2021 2021-01-02 13:06:25 -05:00
test_decoding Unify PostgresNode's new() and get_new_node() methods 2021-07-29 05:58:08 -04:00
tsm_system_rows Update copyright for 2021 2021-01-02 13:06:25 -05:00
tsm_system_time Update copyright for 2021 2021-01-02 13:06:25 -05:00
unaccent Update Unicode data to CLDR 39 2021-04-08 08:28:03 +02:00
uuid-ossp Add result size as argument of pg_cryptohash_final() for overflow checks 2021-02-15 10:18:34 +09:00
vacuumlo Add a copyright notice to perl files lacking one. 2021-05-07 10:56:14 -04:00
xml2 Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
Makefile Introduce --with-ssl={openssl} as a configure option 2021-02-01 19:19:44 +09:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -05:00

README

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.