postgres_fdw hint messages

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2022-08-25T13:42:40Z
Lists: pgsql-hackers

Attachments

The postgres_fdw tests contain this (as amended by patch 0001):

ALTER SERVER loopback_nopw OPTIONS (ADD password 'dummypw');
ERROR:  invalid option "password"
HINT:  Valid options in this context are: service, passfile, 
channel_binding, connect_timeout, dbname, host, hostaddr, port, options, 
application_name, keepalives, keepalives_idle, keepalives_interval, 
keepalives_count, tcp_user_timeout, sslmode, sslcompression, sslcert, 
sslkey, sslrootcert, sslcrl, sslcrldir, sslsni, requirepeer, 
ssl_min_protocol_version, ssl_max_protocol_version, gssencmode, 
krbsrvname, gsslib, target_session_attrs, use_remote_estimate, 
fdw_startup_cost, fdw_tuple_cost, extensions, updatable, truncatable, 
fetch_size, batch_size, async_capable, parallel_commit, keep_connections

This annoys developers who are working on libpq connection options, 
because any option added, removed, or changed causes this test to need 
to be updated.

It's also questionable how useful this hint is in its current form, 
considering how long it is and that the options are in an 
implementation-dependent order.

Possible changes:

- Hide the hint from this particular test (done in the attached patches).

- Keep the hint, but maybe make it sorted?

- Remove all the hints like this from foreign data commands.

- Don't show the hint when there are more than N valid options.

- Do some kind of "did you mean" like we have for column names.

Thoughts?

Commits

  1. postgres_fdw: Remove useless DO block in test

  2. Adjust assorted hint messages that list all valid options.