Log Message:
-----------
Tablespace usage fix for objects using the database's default tablespace
Modified Files:
--------------
pgadmin3/src/schema:
pgTablespace.cpp (r1.8 -> r1.9)
Index: pgTablespace.cpp
===================================================================
RCS file: /projects/pgadmin3/src/schema/pgTablespace.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -Lsrc/schema/pgTablespace.cpp -Lsrc/schema/pgTablespace.cpp -u -w -r1.8 -r1.9
--- src/schema/pgTablespace.cpp
+++ src/schema/pgTablespace.cpp
@@ -44,17 +44,6 @@
referencedBy->AddColumn(_("Database"), 80);
referencedBy->AddColumn(_("Name"), 300);
- OID stdOid;
- wxString tsoid=GetOidStr();
-
- if (GetName() == wxT("default"))
- {
- stdOid=0;
- tsoid += wxT(", 0::oid");
- }
- else
- stdOid = GetOid();
-
wxArrayString dblist;
pgSet *set=GetConnection()->ExecuteSet(
@@ -70,7 +59,7 @@
if (set->GetBool(wxT("datallowconn")))
dblist.Add(datname);
OID oid=set->GetOid(wxT("dattablespace"));
- if (oid == GetOid() || oid == stdOid)
+ if (oid == GetOid())
referencedBy->AppendItem(PGICON_DATABASE, _("Database"), datname);
set->MoveNext();
@@ -84,11 +73,17 @@
wxT(" JOIN pg_namespace cln ON cl.relnamespace=cln.oid\n")
wxT(" LEFT OUTER JOIN pg_index ind ON ind.indexrelid=cl.oid\n")
wxT(" LEFT OUTER JOIN pg_class ci ON ind.indrelid=ci.oid\n")
- wxT(" LEFT OUTER JOIN pg_namespace cin ON ci.relnamespace=cin.oid\n")
- wxT(" WHERE cl.reltablespace IN (") + tsoid + wxT(")\n")
+ wxT(" LEFT OUTER JOIN pg_namespace cin ON ci.relnamespace=cin.oid,\n")
+ wxT(" pg_database\n")
+ wxT(" WHERE datname = current_database()\n")
+ wxT(" AND (cl.reltablespace = ") + GetOidStr() + wxT("\n")
+ wxT(" OR (cl.reltablespace=0 AND dattablespace = ") + GetOidStr() +
wxT("))\n")
wxT("UNION ALL\n")
wxT("SELECT 'n', null, nspname, null\n")
- wxT(" FROM pg_namespace WHERE nsptablespace IN (") + tsoid + wxT(")\n")
+ wxT(" FROM pg_namespace, pg_database\n")
+ wxT(" WHERE datname = current_database()\n")
+ wxT(" AND (nsptablespace = ") + GetOidStr() + wxT("\n")
+ wxT(" OR (nsptablespace=0 AND dattablespace = ") + GetOidStr() +
wxT("))\n")
wxT(" ORDER BY 1,2,3"));
form->EndMsg();
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly