diff --git a/pgadmin/dlg/dlgForeignTable.cpp b/pgadmin/dlg/dlgForeignTable.cpp index e827469..393ac0c 100644 --- a/pgadmin/dlg/dlgForeignTable.cpp +++ b/pgadmin/dlg/dlgForeignTable.cpp @@ -117,6 +117,24 @@ int dlgForeignTable::Go(bool modal) btnAdd->Disable(); btnRemove->Disable(); + if (connection) + { + pgSet *set = connection->ExecuteSet( + wxT("SELECT srvname\n") + wxT(" FROM pg_foreign_server\n") + wxT(" ORDER BY srvname")); + if (set) + { + while (!set->Eof()) + { + wxString srvname = set->GetVal(wxT("srvname")); + cbForeignServer->Append(srvname); + set->MoveNext(); + } + delete set; + } + } + if (foreigntable) { // Edit Mode @@ -185,21 +203,6 @@ int dlgForeignTable::Go(bool modal) // Create mode cbOwner->Append(wxEmptyString); cbOwner->Disable(); - - pgSet *set = connection->ExecuteSet( - wxT("SELECT srvname\n") - wxT(" FROM pg_foreign_server\n") - wxT(" ORDER BY srvname")); - if (set) - { - while (!set->Eof()) - { - wxString srvname = set->GetVal(wxT("srvname")); - cbForeignServer->Append(srvname); - set->MoveNext(); - } - delete set; - } cbForeignServer->SetSelection(0); } diff --git a/pgadmin/schema/pgForeignTable.cpp b/pgadmin/schema/pgForeignTable.cpp index a02a18e..e057855 100644 --- a/pgadmin/schema/pgForeignTable.cpp +++ b/pgadmin/schema/pgForeignTable.cpp @@ -360,7 +360,8 @@ pgObject *pgForeignTableFactory::CreateObjects(pgCollection *collection, ctlTree wxT(" FROM pg_class c\n") wxT(" JOIN pg_foreign_table ft ON c.oid=ft.ftrelid\n") wxT(" LEFT OUTER JOIN pg_foreign_server fs ON ft.ftserver=fs.oid\n") - wxT(" LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid AND des.classoid='pg_class'::regclass)\n") + wxT(" LEFT OUTER JOIN pg_description des ON (des.objoid=c.oid AND des.classoid='pg_class'::regclass\n") + wxT(" AND des.objsubid=0)\n") wxT(" WHERE c.relnamespace = ") + collection->GetSchema()->GetOidStr() + wxT("\n") + restriction + wxT(" ORDER BY c.relname");