summaryrefslogtreecommitdiff
path: root/db.py
diff options
context:
space:
mode:
authorSylvain <syt@logilab.fr>2007-05-04 15:10:23 +0200
committerSylvain <syt@logilab.fr>2007-05-04 15:10:23 +0200
commitb0be4caa3be3b99cf6e8016f026c50ec84204df1 (patch)
treed3dd1edcf08a10ad721025f42aa01a0d593a36d9 /db.py
parent4d8ffbb3a788404b8ed15d0558a312e5b821b825 (diff)
downloadlogilab-common-b0be4caa3be3b99cf6e8016f026c50ec84204df1.tar.gz
~=db: new list_users, sql_drop_unique_constraint methods on advanced helpers
Diffstat (limited to 'db.py')
-rw-r--r--db.py18
1 files changed, 18 insertions, 0 deletions
diff --git a/db.py b/db.py
index d839fe9..4673e7b 100644
--- a/db.py
+++ b/db.py
@@ -452,10 +452,22 @@ INSERT INTO %s VALUES (0);''' % (seq_name, seq_name)
return "CREATE TEMPORARY TABLE %s (%s);" % (table_name,
table_schema)
+ def sql_drop_unique_constraint(self, table, column):
+ # XXX postgres specific ?
+ return 'ALTER TABLE %s DROP CONSTRAINT %s_%s_key' % (
+ table, table, column)
+
def increment_sequence(self, cursor, seq_name):
for sql in self.sqls_increment_sequence(seq_name):
cursor.execute(sql)
return cursor.fetchone()[0]
+
+ def list_users(self, cursor, username=None):
+ if not self.support_users():
+ return None
+ if username is None:
+ return ()
+ return None
class _PGAdvFuncHelper(_GenericAdvFuncHelper):
@@ -516,6 +528,12 @@ class _PGAdvFuncHelper(_GenericAdvFuncHelper):
return "CREATE TEMPORARY TABLE %s (%s) ON COMMIT DROP;" % (table_name,
table_schema)
+ def list_users(self, cursor, username=None):
+ if username is None:
+ return cursor.execute("SELECT usename FROM pg_user")
+ return cursor.execute("SELECT usename FROM pg_user WHERE usename=%(user)s'",
+ {'user': username})
+
def dbcmd(cmd, dbhost, dbuser):
cmd = [cmd]
if dbhost: