From 4d933ad4181a511f3ced98edba4e17aff054e0e2 Mon Sep 17 00:00:00 2001 From: Ville Skyttä Date: Sat, 12 Sep 2015 22:06:35 +0300 Subject: Fixed #25393 -- Fixed MySQL crash when adding text/blob field with unhashable default. --- django/db/backends/mysql/schema.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'django') diff --git a/django/db/backends/mysql/schema.py b/django/db/backends/mysql/schema.py index e803a4452c..ef4ccf51db 100644 --- a/django/db/backends/mysql/schema.py +++ b/django/db/backends/mysql/schema.py @@ -50,7 +50,8 @@ class DatabaseSchemaEditor(BaseDatabaseSchemaEditor): super(DatabaseSchemaEditor, self).add_field(model, field) # Simulate the effect of a one-off default. - if self.skip_default(field) and field.default not in {None, NOT_PROVIDED}: + # field.default may be unhashable, so a set isn't used for "in" check. + if self.skip_default(field) and field.default not in (None, NOT_PROVIDED): effective_default = self.effective_default(field) self.execute('UPDATE %(table)s SET %(column)s = %%s' % { 'table': self.quote_name(model._meta.db_table), -- cgit v1.3