mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Create an improved FDW option validator function for contrib/dblink.
dblink now has its own validator function dblink_fdw_validator(), which is better than the core function postgresql_fdw_validator() because it gets the list of legal options from libpq instead of having a hard-wired list. Make the dblink extension module provide a standard foreign data wrapper dblink_fdw that encapsulates use of this validator, and recommend use of that wrapper instead of making up wrappers on the fly. Unfortunately, because ad-hoc wrappers *were* recommended practice previously, it's not clear when we can get rid of postgresql_fdw_validator without causing upgrade problems. But this is a step in the right direction. Shigeru Hanada, reviewed by KaiGai Kohei
This commit is contained in:
@ -46,12 +46,10 @@ dblink_connect(text connname, text connstr) returns text
|
||||
|
||||
<para>
|
||||
The connection string may also be the name of an existing foreign
|
||||
server. It is recommended to use
|
||||
the <function>postgresql_fdw_validator</function> when defining
|
||||
the corresponding foreign-data wrapper. See the example below, as
|
||||
well as the following:
|
||||
server. It is recommended to use the foreign-data wrapper
|
||||
<literal>dblink_fdw</literal> when defining the corresponding foreign
|
||||
server. See the example below, as well as the following:
|
||||
<simplelist type="inline">
|
||||
<member><xref linkend="sql-createforeigndatawrapper"></member>
|
||||
<member><xref linkend="sql-createserver"></member>
|
||||
<member><xref linkend="sql-createusermapping"></member>
|
||||
</simplelist>
|
||||
@ -136,8 +134,7 @@ SELECT dblink_connect('myconn', 'dbname=postgres');
|
||||
-- DETAIL: Non-superuser cannot connect if the server does not request a password.
|
||||
-- HINT: Target server's authentication method must be changed.
|
||||
CREATE USER dblink_regression_test WITH PASSWORD 'secret';
|
||||
CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator;
|
||||
CREATE SERVER fdtest FOREIGN DATA WRAPPER postgresql OPTIONS (hostaddr '127.0.0.1', dbname 'contrib_regression');
|
||||
CREATE SERVER fdtest FOREIGN DATA WRAPPER dblink_fdw OPTIONS (hostaddr '127.0.0.1', dbname 'contrib_regression');
|
||||
|
||||
CREATE USER MAPPING FOR dblink_regression_test SERVER fdtest OPTIONS (user 'dblink_regression_test', password 'secret');
|
||||
GRANT USAGE ON FOREIGN SERVER fdtest TO dblink_regression_test;
|
||||
@ -173,7 +170,6 @@ REVOKE SELECT ON TABLE foo FROM dblink_regression_test;
|
||||
DROP USER MAPPING FOR dblink_regression_test SERVER fdtest;
|
||||
DROP USER dblink_regression_test;
|
||||
DROP SERVER fdtest;
|
||||
DROP FOREIGN DATA WRAPPER postgresql;
|
||||
</screen>
|
||||
</refsect1>
|
||||
</refentry>
|
||||
|
Reference in New Issue
Block a user