From 8e3d00b6ad90905889ac78090f2bc2a99f07bf62 Mon Sep 17 00:00:00 2001 From: dpage Date: Fri, 27 Mar 2009 21:41:30 +0000 Subject: [PATCH] A little light Friday evening query tuning. git-svn-id: svn://svn.pgadmin.org/trunk/pgadmin3@7775 a7884b65-44f6-0310-8a51-81a127f17b15 --- pgadmin/schema/pgSchema.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pgadmin/schema/pgSchema.cpp b/pgadmin/schema/pgSchema.cpp index 0014e9b02..20afc4f26 100644 --- a/pgadmin/schema/pgSchema.cpp +++ b/pgadmin/schema/pgSchema.cpp @@ -307,15 +307,15 @@ pgObject *pgSchemaBaseFactory::CreateObjects(pgCollection *collection, ctlTree * restr += wxT("NOT "); } - restr += wxT("((nspname = 'pg_catalog' and (SELECT count(*) FROM pg_class WHERE relname = 'pg_class' AND relnamespace = nsp.oid) > 0) OR\n"); - restr += wxT("(nspname = 'pgagent' and (SELECT count(*) FROM pg_class WHERE relname = 'pga_job' AND relnamespace = nsp.oid) > 0) OR\n"); - restr += wxT("(nspname = 'information_schema' and (SELECT count(*) FROM pg_class WHERE relname = 'tables' AND relnamespace = nsp.oid) > 0) OR\n"); - restr += wxT("(nspname LIKE '_%' and (SELECT count(*) FROM pg_proc WHERE proname='slonyversion' AND pronamespace = nsp.oid) > 0) OR\n"); - restr += wxT("(nspname = 'dbo' and (SELECT count(*) FROM pg_class WHERE relname = 'systables' AND relnamespace = nsp.oid) > 0) OR\n"); - restr += wxT("(nspname = 'sys' and (SELECT count(*) FROM pg_class WHERE relname = 'all_tables' AND relnamespace = nsp.oid) > 0))\n"); + restr += wxT("((nspname = 'pg_catalog' AND EXISTS (SELECT 1 FROM pg_class WHERE relname = 'pg_class' AND relnamespace = nsp.oid LIMIT 1)) OR\n"); + restr += wxT("(nspname = 'pgagent' AND EXISTS (SELECT 1 FROM pg_class WHERE relname = 'pga_job' AND relnamespace = nsp.oid LIMIT 1)) OR\n"); + restr += wxT("(nspname = 'information_schema' AND EXISTS (SELECT 1 FROM pg_class WHERE relname = 'tables' AND relnamespace = nsp.oid LIMIT 1)) OR\n"); + restr += wxT("(nspname LIKE '_%' AND EXISTS (SELECT 1 FROM pg_proc WHERE proname='slonyversion' AND pronamespace = nsp.oid LIMIT 1)) OR\n"); + restr += wxT("(nspname = 'dbo' AND EXISTS (SELECT 1 FROM pg_class WHERE relname = 'systables' AND relnamespace = nsp.oid LIMIT 1)) OR\n"); + restr += wxT("(nspname = 'sys' AND EXISTS (SELECT 1 FROM pg_class WHERE relname = 'all_tables' AND relnamespace = nsp.oid LIMIT 1)))\n"); if (collection->GetConnection()->EdbMinimumVersion(8, 2)) - restr += wxT(" AND nsp.nspparent = 0\n"); + restr += wxT(" AND nsp.nspparent = 0\n"); if (!collection->GetDatabase()->GetSchemaRestriction().IsEmpty()) restr += wxT(" AND nspname IN (") + collection->GetDatabase()->GetSchemaRestriction() + wxT(")"); -- 2.39.5