postgresql/contrib
Fujii Masao 5fedf7417b Improve HINT message that FDW reports when there are no valid options.
The foreign data wrapper's validator function provides a HINT message with
list of valid options for the object specified in CREATE or ALTER command,
when the option given in the command is invalid. Previously
postgresql_fdw_validator() and the validator functions for postgres_fdw and
dblink_fdw worked in that way even there were no valid options in the object,
which could lead to the HINT message with empty list (because there were
no valid options). For example, ALTER FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (format 'csv') reported the following ERROR and HINT messages.
This behavior was confusing.

    ERROR: invalid option "format"
    HINT: Valid options in this context are:

There is no such issue in file_fdw. The validator function for file_fdw
reports the HINT message "There are no valid options in this context."
instead in that case.

This commit improves postgresql_fdw_validator() and the validator functions
for postgres_fdw and dblink_fdw so that they do likewise. For example,
this change causes the above ALTER FOREIGN DATA WRAPPER command to
report the following messages.

    ERROR:  invalid option "nonexistent"
    HINT:  There are no valid options in this context.

Author: Kosei Masumura
Reviewed-by: Bharath Rupireddy, Fujii Masao
Discussion: https://postgr.es/m/557d06cebe19081bfcc83ee2affc98d3@oss.nttdata.com
2021-10-27 00:46:52 +09:00
..
adminpack Rename Default Roles to Predefined Roles 2021-04-01 15:32:06 -04:00
amcheck Move Perl test modules to a better namespace 2021-10-24 10:28:19 -04:00
auth_delay
auto_explain Move Perl test modules to a better namespace 2021-10-24 10:28:19 -04:00
bloom Move Perl test modules to a better namespace 2021-10-24 10:28:19 -04:00
bool_plperl
btree_gin Fix failure of btree_gin indexscans with "char" type and </<= operators. 2021-08-10 18:10:29 -04:00
btree_gist Improve performance of float overflow checks in btree_gist 2021-08-19 10:42:44 +09:00
citext
cube
dblink Improve HINT message that FDW reports when there are no valid options. 2021-10-27 00:46:52 +09:00
dict_int
dict_xsyn
earthdistance
file_fdw Rename Default Roles to Predefined Roles 2021-04-01 15:32:06 -04:00
fuzzystrmatch
hstore
hstore_plperl
hstore_plpython
intagg
intarray Clean up some code using "(expr) ? true : false" 2021-09-08 09:44:04 +09:00
isn
jsonb_plperl
jsonb_plpython
lo
ltree Clean up more code using "(expr) ? true : false" 2021-10-11 09:36:42 +09:00
ltree_plpython
oid2name Move Perl test modules to a better namespace 2021-10-24 10:28:19 -04:00
old_snapshot Initial pgindent and pgperltidy run for v14. 2021-05-12 13:14:10 -04:00
pageinspect pageinspect: Make page deletion elog less chatty. 2021-09-17 14:19:51 -07:00
passwordcheck
pg_buffercache
pg_freespacemap
pg_prewarm Replace RelationOpenSmgr() with RelationGetSmgr(). 2021-07-12 17:01:36 -04:00
pg_stat_statements pg_stat_statements: Add some tests for older versions still usable 2021-10-02 17:40:13 +09:00
pg_surgery Improve error messages about mismatching relkind 2021-07-08 09:44:51 +02:00
pg_trgm Avoid determining regexp subexpression matches, when possible. 2021-08-09 11:26:34 -04:00
pg_visibility Replace RelationOpenSmgr() with RelationGetSmgr(). 2021-07-12 17:01:36 -04:00
pgcrypto Add alternative output for OpenSSL 3 without legacy loaded 2021-08-10 15:08:46 +02: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 Improve HINT message that FDW reports when there are no valid options. 2021-10-27 00:46:52 +09:00
seg Stabilize contrib/seg regression test. 2021-06-07 14:52:42 -04:00
sepgsql Clean up some code using "(expr) ? true : false" 2021-09-08 09:44:04 +09:00
spi
sslinfo
start-scripts
tablefunc Fix typos and grammar in code comments 2021-09-27 14:21:28 +09:00
tcn
test_decoding Move Perl test modules to a better namespace 2021-10-24 10:28:19 -04:00
tsm_system_rows
tsm_system_time
unaccent Update Unicode data to CLDR 39 2021-04-08 08:28:03 +02:00
uuid-ossp
vacuumlo Move Perl test modules to a better namespace 2021-10-24 10:28:19 -04:00
xml2
contrib-global.mk
Makefile
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.