From 028a994fe916a2a12f6678698a6a2b2ad3c8fed8 Mon Sep 17 00:00:00 2001 From: Christophe Simonis Date: Mon, 29 Dec 2008 18:12:59 +0100 Subject: [PATCH] [FIX] handle the case when the database template1 is not in UTF8 bzr revid: christophe@cobalt-20081229171259-1ajgi2bdv1pkr4sw --- bin/service/web_services.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/service/web_services.py b/bin/service/web_services.py index eef02528337..5ec9603dde5 100644 --- a/bin/service/web_services.py +++ b/bin/service/web_services.py @@ -245,14 +245,14 @@ class db(netsvc.Service): import pwd db_user = pwd.getpwuid(os.getuid())[0] if not db_user: - cr.execute("select usename from pg_user where usesysid=(select datdba from pg_database where datname=%s)", (tools.config["db_name"],)) + cr.execute("select decode(usename, 'escape') from pg_user where usesysid=(select datdba from pg_database where datname=%s)", (tools.config["db_name"],)) res = cr.fetchone() - db_user = res and res[0] + db_user = res and str(res[0]) if db_user: - cr.execute("select datname from pg_database where datdba=(select usesysid from pg_user where usename=%s) and datname not in ('template0', 'template1', 'postgres')", (db_user,)) + cr.execute("select decode(datname, 'escape') from pg_database where datdba=(select usesysid from pg_user where usename=%s) and datname not in ('template0', 'template1', 'postgres')", (db_user,)) else: - cr.execute("select datname from pg_database where datname not in('template0', 'template1','postgres')") - res = [name for (name,) in cr.fetchall()] + cr.execute("select decode(datname, 'escape') from pg_database where datname not in('template0', 'template1','postgres')") + res = [str(name) for (name,) in cr.fetchall()] cr.close() except: res = []