diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml index db97df1..e8b4f73 100644 *** a/doc/src/sgml/ref/psql-ref.sgml --- b/doc/src/sgml/ref/psql-ref.sgml *************** testdb=> *** 892,906 **** For some types of relation, \d shows additional information for each column: column values for sequences, indexed expression for ! indexes and per-column foreign data wrapper options for foreign tables. The command form \d+ is identical, except that more information is displayed: any comments associated with the columns of the table are shown, as is the presence of OIDs in the ! table, the view definition if the relation is a view, and the generic ! options if the relation is a foreign table. --- 892,905 ---- For some types of relation, \d shows additional information for each column: column values for sequences, indexed expression for ! indexes and foreign data wrapper options for foreign tables. The command form \d+ is identical, except that more information is displayed: any comments associated with the columns of the table are shown, as is the presence of OIDs in the ! table, the view definition if the relation is a view. diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index f08f917..0f54964 100644 *** a/src/bin/psql/describe.c --- b/src/bin/psql/describe.c *************** describeOneTableDetails(const char *sche *** 2064,2072 **** /* print foreign server name */ if (tableinfo.relkind == 'f') { /* Footer information about foreign table */ printfPQExpBuffer(&buf, ! "SELECT s.srvname\n" "FROM pg_catalog.pg_foreign_table f,\n" " pg_catalog.pg_foreign_server s\n" "WHERE f.ftrelid = %s AND s.oid = f.ftserver;", --- 2064,2075 ---- /* print foreign server name */ if (tableinfo.relkind == 'f') { + char *ftoptions; + /* Footer information about foreign table */ printfPQExpBuffer(&buf, ! "SELECT s.srvname,\n" ! " f.ftoptions\n" "FROM pg_catalog.pg_foreign_table f,\n" " pg_catalog.pg_foreign_server s\n" "WHERE f.ftrelid = %s AND s.oid = f.ftserver;", *************** describeOneTableDetails(const char *sche *** 2080,2088 **** --- 2083,2100 ---- goto error_return; } + /* Print server name */ printfPQExpBuffer(&buf, "Server: %s", PQgetvalue(result, 0, 0)); printTableAddFooter(&cont, buf.data); + + /* Print per-table FDW options, if any */ + ftoptions = PQgetvalue(result, 0, 1); + if (ftoptions && ftoptions[0] != '\0') + { + printfPQExpBuffer(&buf, "Options: %s", ftoptions); + printTableAddFooter(&cont, buf.data); + } PQclear(result); } diff --git a/src/test/regress/expected/foreign_data.out b/src/test/regress/expected/foreign_data.out index ef13f27..5c48d83 100644 *** a/src/test/regress/expected/foreign_data.out --- b/src/test/regress/expected/foreign_data.out *************** COMMENT ON COLUMN ft1.c1 IS 'ft1.c1'; *** 660,665 **** --- 660,666 ---- c2 | text | | {param2=val2,param3=val3} | extended | c3 | date | | | plain | Server: sc + Options: {"delimiter=,","quote=\""} Has OIDs: no \det+ *************** ALTER FOREIGN TABLE ft1 ALTER COLUMN c8 *** 717,722 **** --- 718,724 ---- c9 | integer | | | plain | c10 | integer | | {p1=v1} | plain | Server: sc + Options: {"delimiter=,","quote=\""} Has OIDs: no -- can't change the column type if it's used elsewhere *************** ALTER FOREIGN TABLE foreign_schema.ft1 R *** 759,764 **** --- 761,767 ---- c8 | text | | {p2=V2} c10 | integer | | {p1=v1} Server: sc + Options: {quote=~,escape=@} -- Information schema SELECT * FROM information_schema.foreign_data_wrappers ORDER BY 1, 2;