@@ -3680,16 +3680,16 @@ listForeignDataWrappers(const char *pattern, bool verbose)
36803680
36813681initPQExpBuffer (& buf );
36823682printfPQExpBuffer (& buf ,
3683- "SELECT fdwname AS \"%s\",\n"
3684- " pg_catalog.pg_get_userbyid(fdwowner) AS \"%s\",\n" ,
3683+ "SELECTfdw. fdwname AS \"%s\",\n"
3684+ " pg_catalog.pg_get_userbyid(fdw. fdwowner) AS \"%s\",\n" ,
36853685gettext_noop ("Name" ),
36863686gettext_noop ("Owner" ));
36873687if (pset .sversion >=90100 )
36883688appendPQExpBuffer (& buf ,
3689- " fdwhandler::pg_catalog.regproc AS \"%s\",\n" ,
3689+ "fdw. fdwhandler::pg_catalog.regproc AS \"%s\",\n" ,
36903690gettext_noop ("Handler" ));
36913691appendPQExpBuffer (& buf ,
3692- " fdwvalidator::pg_catalog.regproc AS \"%s\"" ,
3692+ "fdw. fdwvalidator::pg_catalog.regproc AS \"%s\"" ,
36933693gettext_noop ("Validator" ));
36943694
36953695if (verbose )
@@ -3699,9 +3699,20 @@ listForeignDataWrappers(const char *pattern, bool verbose)
36993699appendPQExpBuffer (& buf ,
37003700",\n fdwoptions AS \"%s\"" ,
37013701gettext_noop ("Options" ));
3702+
3703+ if (pset .sversion >=90100 )
3704+ appendPQExpBuffer (& buf ,
3705+ ",\n d.description AS \"%s\" " ,
3706+ gettext_noop ("Description" ));
37023707}
37033708
3704- appendPQExpBuffer (& buf ,"\nFROM pg_catalog.pg_foreign_data_wrapper\n" );
3709+ appendPQExpBuffer (& buf ,"\nFROM pg_catalog.pg_foreign_data_wrapper fdw\n" );
3710+
3711+ if (verbose && pset .sversion >=90100 )
3712+ appendPQExpBuffer (& buf ,
3713+ "LEFT JOIN pg_catalog.pg_description d\n"
3714+ " ON d.classoid = fdw.tableoid "
3715+ "AND d.objoid = fdw.oid AND d.objsubid = 0\n" );
37053716
37063717processSQLNamePattern (pset .db ,& buf ,pattern , false, false,
37073718NULL ,"fdwname" ,NULL ,NULL );
@@ -3759,16 +3770,24 @@ listForeignServers(const char *pattern, bool verbose)
37593770",\n"
37603771" s.srvtype AS \"%s\",\n"
37613772" s.srvversion AS \"%s\",\n"
3762- " s.srvoptions AS \"%s\"" ,
3773+ " s.srvoptions AS \"%s\",\n"
3774+ " d.description AS \"%s\"" ,
37633775gettext_noop ("Type" ),
37643776gettext_noop ("Version" ),
3765- gettext_noop ("Options" ));
3777+ gettext_noop ("Options" ),
3778+ gettext_noop ("Description" ));
37663779}
37673780
37683781appendPQExpBuffer (& buf ,
37693782"\nFROM pg_catalog.pg_foreign_server s\n"
37703783" JOIN pg_catalog.pg_foreign_data_wrapper f ON f.oid=s.srvfdw\n" );
37713784
3785+ if (verbose )
3786+ appendPQExpBuffer (& buf ,
3787+ "LEFT JOIN pg_description d\n "
3788+ "ON d.classoid = s.tableoid AND d.objoid = s.oid "
3789+ "AND d.objsubid = 0\n" );
3790+
37723791processSQLNamePattern (pset .db ,& buf ,pattern , false, false,
37733792NULL ,"s.srvname" ,NULL ,NULL );
37743793
@@ -3872,18 +3891,26 @@ listForeignTables(const char *pattern, bool verbose)
38723891
38733892if (verbose )
38743893appendPQExpBuffer (& buf ,
3875- ",\n ft.ftoptions AS \"%s\"" ,
3876- gettext_noop ("Options" ));
3894+ ",\n ft.ftoptions AS \"%s\",\n"
3895+ " d.description AS \"%s\"" ,
3896+ gettext_noop ("Options" ),
3897+ gettext_noop ("Description" ));
38773898
3878- appendPQExpBuffer (& buf ,"\nFROM pg_catalog.pg_foreign_table ft," );
3879- appendPQExpBuffer (& buf ,"\n pg_catalog.pg_class c," );
3880- appendPQExpBuffer (& buf ,"\n pg_catalog.pg_namespace n," );
3881- appendPQExpBuffer (& buf ,"\n pg_catalog.pg_foreign_server s\n" );
3882- appendPQExpBuffer (& buf ,"\nWHERE c.oid = ft.ftrelid" );
3883- appendPQExpBuffer (& buf ,"\nAND s.oid = ft.ftserver\n" );
3884- appendPQExpBuffer (& buf ,"\nAND n.oid = c.relnamespace\n" );
3899+ appendPQExpBuffer (& buf ,
3900+ "\nFROM pg_catalog.pg_foreign_table ft\n"
3901+ " INNER JOIN pg_catalog.pg_class c"
3902+ " ON c.oid = ft.ftrelid\n"
3903+ " INNER JOIN pg_catalog.pg_namespace n"
3904+ " ON n.oid = c.relnamespace\n"
3905+ " INNER JOIN pg_catalog.pg_foreign_server s"
3906+ " ON s.oid = ft.ftserver\n" );
3907+ if (verbose )
3908+ appendPQExpBuffer (& buf ,
3909+ " LEFT JOIN pg_catalog.pg_description d\n"
3910+ " ON d.classoid = c.tableoid AND "
3911+ "d.objoid = c.oid AND d.objsubid = 0\n" );
38853912
3886- processSQLNamePattern (pset .db ,& buf ,pattern ,true , false,
3913+ processSQLNamePattern (pset .db ,& buf ,pattern ,false , false,
38873914NULL ,"n.nspname" ,"c.relname" ,NULL );
38883915
38893916appendPQExpBuffer (& buf ,"ORDER BY 1, 2;" );