Changeset 5958
- Timestamp:
- 08/19/07 18:18:43 (1 year ago)
- Files:
-
- django/trunk/django/db/backends/ado_mssql/base.py (modified) (2 diffs)
- django/trunk/django/db/backends/dummy/base.py (modified) (1 diff)
- django/trunk/django/db/backends/__init__.py (modified) (1 diff)
- django/trunk/django/db/backends/mysql/base.py (modified) (1 diff)
- django/trunk/django/db/backends/mysql_old/base.py (modified) (1 diff)
- django/trunk/django/db/backends/oracle/base.py (modified) (2 diffs)
- django/trunk/django/db/backends/postgresql/base.py (modified) (2 diffs)
- django/trunk/django/db/backends/postgresql_psycopg2/base.py (modified) (2 diffs)
- django/trunk/django/db/backends/sqlite3/base.py (modified) (1 diff)
- django/trunk/django/db/models/base.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/backends/ado_mssql/base.py
r5957 r5958 64 64 return " DEFERRABLE INITIALLY DEFERRED" 65 65 66 def last_insert_id(self, cursor, table_name, pk_name): 67 cursor.execute("SELECT %s FROM %s WHERE %s = @@IDENTITY" % (pk_name, table_name, pk_name)) 68 return cursor.fetchone()[0] 69 66 70 class DatabaseWrapper(BaseDatabaseWrapper): 67 71 ops = DatabaseOperations() … … 96 100 dictfetchmany = util.dictfetchmany 97 101 dictfetchall = util.dictfetchall 98 99 def get_last_insert_id(cursor, table_name, pk_name):100 cursor.execute("SELECT %s FROM %s WHERE %s = @@IDENTITY" % (pk_name, table_name, pk_name))101 return cursor.fetchone()[0]102 102 103 103 def get_limit_offset_sql(limit, offset=None): django/trunk/django/db/backends/dummy/base.py
r5957 r5958 44 44 dictfetchmany = complain 45 45 dictfetchall = complain 46 get_last_insert_id = complain47 46 get_limit_offset_sql = complain 48 47 get_random_function_sql = complain django/trunk/django/db/backends/__init__.py
r5957 r5958 100 100 """ 101 101 raise NotImplementedError('Full-text search is not implemented for this database backend') 102 103 def last_insert_id(self, cursor, table_name, pk_name): 104 """ 105 Given a cursor object that has just performed an INSERT statement into 106 a table that has an auto-incrementing ID, returns the newly created ID. 107 108 This method also receives the table name and the name of the primary-key 109 column. 110 """ 111 return cursor.lastrowid django/trunk/django/db/backends/mysql/base.py
r5957 r5958 156 156 dictfetchall = util.dictfetchall 157 157 158 def get_last_insert_id(cursor, table_name, pk_name):159 return cursor.lastrowid160 161 158 def get_limit_offset_sql(limit, offset=None): 162 159 sql = "LIMIT " django/trunk/django/db/backends/mysql_old/base.py
r5957 r5958 175 175 dictfetchall = util.dictfetchall 176 176 177 def get_last_insert_id(cursor, table_name, pk_name):178 return cursor.lastrowid179 180 177 def get_limit_offset_sql(limit, offset=None): 181 178 sql = "LIMIT " django/trunk/django/db/backends/oracle/base.py
r5957 r5958 58 58 return " DEFERRABLE INITIALLY DEFERRED" 59 59 60 def last_insert_id(self, cursor, table_name, pk_name): 61 sq_name = util.truncate_name(table_name, get_max_name_length()-3) 62 cursor.execute('SELECT %s_sq.currval FROM dual' % sq_name) 63 return cursor.fetchone()[0] 64 60 65 class DatabaseWrapper(BaseDatabaseWrapper): 61 66 ops = DatabaseOperations() … … 167 172 dictfetchmany = util.dictfetchmany 168 173 dictfetchall = util.dictfetchall 169 170 def get_last_insert_id(cursor, table_name, pk_name):171 sq_name = util.truncate_name(table_name, get_max_name_length()-3)172 cursor.execute('SELECT %s_sq.currval FROM dual' % sq_name)173 return cursor.fetchone()[0]174 174 175 175 def get_field_cast_sql(db_type): django/trunk/django/db/backends/postgresql/base.py
r5957 r5958 69 69 def deferrable_sql(self): 70 70 return " DEFERRABLE INITIALLY DEFERRED" 71 72 def last_insert_id(self, cursor, table_name, pk_name): 73 cursor.execute("SELECT CURRVAL('\"%s_%s_seq\"')" % (table_name, pk_name)) 74 return cursor.fetchone()[0] 71 75 72 76 class DatabaseWrapper(BaseDatabaseWrapper): … … 127 131 "Returns all rows from a cursor as a dict" 128 132 return cursor.dictfetchall() 129 130 def get_last_insert_id(cursor, table_name, pk_name):131 cursor.execute("SELECT CURRVAL('\"%s_%s_seq\"')" % (table_name, pk_name))132 return cursor.fetchone()[0]133 133 134 134 def get_limit_offset_sql(limit, offset=None): django/trunk/django/db/backends/postgresql_psycopg2/base.py
r5957 r5958 31 31 def deferrable_sql(self): 32 32 return " DEFERRABLE INITIALLY DEFERRED" 33 34 def last_insert_id(self, cursor, table_name, pk_name): 35 cursor.execute("SELECT CURRVAL('\"%s_%s_seq\"')" % (table_name, pk_name)) 36 return cursor.fetchone()[0] 33 37 34 38 class DatabaseWrapper(BaseDatabaseWrapper): … … 81 85 dictfetchmany = util.dictfetchmany 82 86 dictfetchall = util.dictfetchall 83 84 def get_last_insert_id(cursor, table_name, pk_name):85 cursor.execute("SELECT CURRVAL('\"%s_%s_seq\"')" % (table_name, pk_name))86 return cursor.fetchone()[0]87 87 88 88 def get_limit_offset_sql(limit, offset=None): django/trunk/django/db/backends/sqlite3/base.py
r5957 r5958 109 109 dictfetchall = util.dictfetchall 110 110 111 def get_last_insert_id(cursor, table_name, pk_name):112 return cursor.lastrowid113 114 111 def _sqlite_extract(lookup_type, dt): 115 112 try: django/trunk/django/db/models/base.py
r5934 r5958 255 255 backend.get_pk_default_value())) 256 256 if self._meta.has_auto_field and not pk_set: 257 setattr(self, self._meta.pk.attname, backend.get_last_insert_id(cursor, self._meta.db_table, self._meta.pk.column))257 setattr(self, self._meta.pk.attname, connection.ops.last_insert_id(cursor, self._meta.db_table, self._meta.pk.column)) 258 258 transaction.commit_unless_managed() 259 259
