@@ -3680,16 +3680,16 @@ listForeignDataWrappers(const char *pattern, bool verbose)
3680
3680
3681
3681
initPQExpBuffer (& buf );
3682
3682
printfPQExpBuffer (& buf ,
3683
- "SELECT fdwname AS \"%s\",\n"
3684
- " pg_catalog.pg_get_userbyid(fdwowner) AS \"%s\",\n" ,
3683
+ "SELECT fdw. fdwname AS \"%s\",\n"
3684
+ " pg_catalog.pg_get_userbyid(fdw. fdwowner) AS \"%s\",\n" ,
3685
3685
gettext_noop ("Name" ),
3686
3686
gettext_noop ("Owner" ));
3687
3687
if (pset .sversion >= 90100 )
3688
3688
appendPQExpBuffer (& buf ,
3689
- " fdwhandler::pg_catalog.regproc AS \"%s\",\n" ,
3689
+ " fdw. fdwhandler::pg_catalog.regproc AS \"%s\",\n" ,
3690
3690
gettext_noop ("Handler" ));
3691
3691
appendPQExpBuffer (& buf ,
3692
- " fdwvalidator::pg_catalog.regproc AS \"%s\"" ,
3692
+ " fdw. fdwvalidator::pg_catalog.regproc AS \"%s\"" ,
3693
3693
gettext_noop ("Validator" ));
3694
3694
3695
3695
if (verbose )
@@ -3699,9 +3699,20 @@ listForeignDataWrappers(const char *pattern, bool verbose)
3699
3699
appendPQExpBuffer (& buf ,
3700
3700
",\n fdwoptions AS \"%s\"" ,
3701
3701
gettext_noop ("Options" ));
3702
+
3703
+ if (pset .sversion >= 90100 )
3704
+ appendPQExpBuffer (& buf ,
3705
+ ",\n d.description AS \"%s\" " ,
3706
+ gettext_noop ("Description" ));
3702
3707
}
3703
3708
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" );
3705
3716
3706
3717
processSQLNamePattern (pset .db , & buf , pattern , false, false,
3707
3718
NULL , "fdwname" , NULL , NULL );
@@ -3759,16 +3770,24 @@ listForeignServers(const char *pattern, bool verbose)
3759
3770
",\n"
3760
3771
" s.srvtype AS \"%s\",\n"
3761
3772
" s.srvversion AS \"%s\",\n"
3762
- " s.srvoptions AS \"%s\"" ,
3773
+ " s.srvoptions AS \"%s\",\n"
3774
+ " d.description AS \"%s\"" ,
3763
3775
gettext_noop ("Type" ),
3764
3776
gettext_noop ("Version" ),
3765
- gettext_noop ("Options" ));
3777
+ gettext_noop ("Options" ),
3778
+ gettext_noop ("Description" ));
3766
3779
}
3767
3780
3768
3781
appendPQExpBuffer (& buf ,
3769
3782
"\nFROM pg_catalog.pg_foreign_server s\n"
3770
3783
" JOIN pg_catalog.pg_foreign_data_wrapper f ON f.oid=s.srvfdw\n" );
3771
3784
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
+
3772
3791
processSQLNamePattern (pset .db , & buf , pattern , false, false,
3773
3792
NULL , "s.srvname" , NULL , NULL );
3774
3793
@@ -3872,18 +3891,26 @@ listForeignTables(const char *pattern, bool verbose)
3872
3891
3873
3892
if (verbose )
3874
3893
appendPQExpBuffer (& 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" ));
3877
3898
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" );
3885
3912
3886
- processSQLNamePattern (pset .db , & buf , pattern , true , false,
3913
+ processSQLNamePattern (pset .db , & buf , pattern , false , false,
3887
3914
NULL , "n.nspname" , "c.relname" , NULL );
3888
3915
3889
3916
appendPQExpBuffer (& buf , "ORDER BY 1, 2;" );
0 commit comments