diff options
author | Sylvain <syt@logilab.fr> | 2007-05-04 15:10:23 +0200 |
---|---|---|
committer | Sylvain <syt@logilab.fr> | 2007-05-04 15:10:23 +0200 |
commit | b0be4caa3be3b99cf6e8016f026c50ec84204df1 (patch) | |
tree | d3dd1edcf08a10ad721025f42aa01a0d593a36d9 | |
parent | 4d8ffbb3a788404b8ed15d0558a312e5b821b825 (diff) | |
download | logilab-common-b0be4caa3be3b99cf6e8016f026c50ec84204df1.tar.gz |
~=db: new list_users, sql_drop_unique_constraint methods on advanced helpers
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | db.py | 18 |
2 files changed, 21 insertions, 2 deletions
@@ -3,9 +3,10 @@ ChangeLog for logilab.common -- * pytest improvements - * use shutil.move instead of os.rename as default action of shellutils.mv - + * shellutils: use shutil.move instead of os.rename as default action of mv + * db: new list_users, sql_drop_unique_constraint methods on advanced helpers + 2007-02-12 -- 0.21.3 * fixed cached decorator to use __dict__ instead of attribute lookup, avoiding potential bugs with inheritance when using cached class @@ -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: |