Commit bfc380ba authored by Claude Paroz's avatar Claude Paroz
Browse files

[py3] Prepared MySQL backend for Python 3 compatibility

parent 3fce0d2a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
try:
    from itertools import zip_longest
except ImportError:
    from itertools import izip_longest as zip_longest

from django.db.models.sql import compiler


class SQLCompiler(compiler.SQLCompiler):
    def resolve_columns(self, row, fields=()):
        values = []
        index_extra_select = len(self.query.extra_select)
        for value, field in map(None, row[index_extra_select:], fields):
        for value, field in zip_longest(row[index_extra_select:], fields):
            if (field and field.get_internal_type() in ("BooleanField", "NullBooleanField") and
                value in (0, 1)):
                value = bool(value)
+4 −3
Original line number Diff line number Diff line
import re
from .base import FIELD_TYPE

from django.db.backends import BaseDatabaseIntrospection
from django.utils import six
from MySQLdb import ProgrammingError, OperationalError
from MySQLdb.constants import FIELD_TYPE
import re


foreign_key_re = re.compile(r"\sCONSTRAINT `[^`]*` FOREIGN KEY \(`([^`]*)`\) REFERENCES `([^`]*)` \(`([^`]*)`\)")