1
2
3
4
5
6
7
8
9
10
11 _dbutils = {}
12
13
15 """Default database utilities."""
18
20 if table != 'biosequence':
21 return table
22 else:
23 return 'bioentry'
24
26
27 table = self.tname(table)
28 sql = r"select max(%s_id) from %s" % (table, table)
29 cursor.execute(sql)
30 rv = cursor.fetchone()
31 return rv[0]
32
33 - def execute(self, cursor, sql, args=None):
34 """Just execute an sql command.
35 """
36 cursor.execute(sql, args or ())
37
41
42
44 """Custom database utilities for SQLite."""
45 - def execute(self, cursor, sql, args=None):
46 """Execute SQL command, replacing %s with ? for variable substitution in sqlite3.
47 """
48 cursor.execute(sql.replace("%s", "?"), args or ())
49
50 _dbutils["sqlite3"] = Sqlite_dbutils
51
52
54 """Custom database utilities for MySQL."""
56 try:
57
58 return cursor.insert_id()
59 except AttributeError:
60
61
62
63 return cursor.lastrowid
64
65 _dbutils["MySQLdb"] = Mysql_dbutils
66
67
68 -class _PostgreSQL_dbutils(Generic_dbutils):
69 """Base class for any PostgreSQL adaptor."""
70 - def next_id(self, cursor, table):
71 table = self.tname(table)
72 sql = r"select nextval('%s_pk_seq')" % table
73 cursor.execute(sql)
74 rv = cursor.fetchone()
75 return rv[0]
76
77 - def last_id(self, cursor, table):
78 table = self.tname(table)
79 sql = r"select currval('%s_pk_seq')" % table
80 cursor.execute(sql)
81 rv = cursor.fetchone()
82 return rv[0]
83
84
86 """Custom database utilities for Psycopg2 (PostgreSQL)."""
88 if y:
89 conn.set_isolation_level(0)
90 else:
91 conn.set_isolation_level(1)
92
93 _dbutils["psycopg2"] = Psycopg2_dbutils
94
95
97 """Custom database utilities for Pgdb (aka PyGreSQL, for PostgreSQL)."""
99 raise NotImplementedError("pgdb does not support this!")
100
101 _dbutils["pgdb"] = Pgdb_dbutils
102
103
109