Ticket #13434: django-mysql-index-length.patch
File django-mysql-index-length.patch, 1.6 KB (added by , 15 years ago) |
---|
-
django/db/backends/mysql/base.py
227 227 second = '%s-12-31 23:59:59.99' 228 228 return [first % value, second % value] 229 229 230 def max_name_length(self): 231 return 64 232 230 233 class DatabaseWrapper(BaseDatabaseWrapper): 231 234 232 235 operators = { -
django/db/backends/creation.py
260 260 261 261 def sql_indexes_for_field(self, model, f, style): 262 262 "Return the CREATE INDEX SQL statements for a single model field" 263 from django.db.backends.util import truncate_name 264 263 265 if f.db_index and not f.unique: 264 266 qn = self.connection.ops.quote_name 265 267 tablespace = f.db_tablespace or model._meta.db_tablespace … … 271 273 tablespace_sql = '' 272 274 else: 273 275 tablespace_sql = '' 276 i_name = '%s_%s' % (model._meta.db_table, self._digest(f.column)) 274 277 output = [style.SQL_KEYWORD('CREATE INDEX') + ' ' + 275 style.SQL_TABLE(qn( '%s_%s' % (model._meta.db_table, f.column))) + ' ' +278 style.SQL_TABLE(qn(truncate_name(i_name, self.connection.ops.max_name_length()))) + ' ' + 276 279 style.SQL_KEYWORD('ON') + ' ' + 277 280 style.SQL_TABLE(qn(model._meta.db_table)) + ' ' + 278 281 "(%s)" % style.SQL_FIELD(qn(f.column)) +