Example #1
0
    def results_iter(self):
        """
        Returns an iterator over the results from executing this query.
        """
        resolve_columns = hasattr(self, "resolve_columns")
        if resolve_columns:
            from django.db.models.fields import DateField

            fields = [DateField()]
        else:
            from django.db.backends.util import typecast_date

            needs_string_cast = self.connection.features.needs_datetime_string_cast

        offset = len(self.query.extra_select)
        for rows in self.execute_sql(MULTI):
            for row in rows:
                date = row[offset]
                if resolve_columns:
                    date = self.resolve_columns(row, fields)[offset]
                elif needs_string_cast:
                    date = typecast_date(str(date))
                if isinstance(date, datetime.datetime):
                    date = date.date()
                yield date
    def results_iter(self):
        if self.connection.ops.oracle:
            from django.db.models.fields import DateTimeField
            fields = [DateTimeField()]
        else:
            needs_string_cast = self.connection.features.needs_datetime_string_cast

        offset = len(self.query.extra_select)
        for rows in self.execute_sql(MULTI):
            for row in rows:
                date = row[offset]
                if self.connection.ops.oracle:
                    date = self.resolve_columns(row, fields)[offset]
                elif needs_string_cast:
                    date = typecast_date(str(date))
                if isinstance(date, datetime.datetime):
                    date = date.date()
                yield date
Example #3
0
    def results_iter(self):
        if self.connection.ops.oracle:
            from django.db.models.fields import DateTimeField
            fields = [DateTimeField()]
        else:
            needs_string_cast = self.connection.features.needs_datetime_string_cast

        offset = len(self.query.extra_select)
        for rows in self.execute_sql(MULTI):
            for row in rows:
                date = row[offset]
                if self.connection.ops.oracle:
                    date = self.resolve_columns(row, fields)[offset]
                elif needs_string_cast:
                    date = typecast_date(str(date))
                if isinstance(date, datetime.datetime):
                    date = date.date()
                yield date
Example #4
0
def convert_values_sqlite(self, value, field):
    """SQLite returns floats when it should be returning decimals,
    and gets dates and datetimes wrong.
    For consistency with other backends, coerce when required.
    """
    internal_type = field.get_internal_type()
    if internal_type == 'DecimalField':
        return util.typecast_decimal(field.format_number(value))
    elif internal_type and internal_type.endswith('IntegerField') or internal_type.endswith('AutoField'): 
        return int(value)
    elif internal_type == 'DateField':
        return util.typecast_date(value)
    elif internal_type == 'DateTimeField':
        return util.typecast_timestamp(value)
    elif internal_type == 'TimeField':
        return util.typecast_time(value)

    # No field, or the field isn't known to be a decimal or integer
    return value
Example #5
0
def convert_values_sqlite(self, value, field):
    """SQLite returns floats when it should be returning decimals,
    and gets dates and datetimes wrong.
    For consistency with other backends, coerce when required.
    """
    internal_type = field.get_internal_type()
    if internal_type == 'DecimalField':
        return util.typecast_decimal(field.format_number(value))
    elif internal_type and internal_type.endswith(
            'IntegerField') or internal_type.endswith('AutoField'):
        return int(value)
    elif internal_type == 'DateField':
        return util.typecast_date(value)
    elif internal_type == 'DateTimeField':
        return util.typecast_timestamp(value)
    elif internal_type == 'TimeField':
        return util.typecast_time(value)

    # No field, or the field isn't known to be a decimal or integer
    return value
Example #6
0
    def results_iter(self):
        """
        Returns an iterator over the results from executing this query.
        """
        resolve_columns = hasattr(self, 'resolve_columns')
        if resolve_columns:
            from django.db.models.fields import DateField
            fields = [DateField()]
        else:
            from django.db.backends.util import typecast_date
            needs_string_cast = self.connection.features.needs_datetime_string_cast

        offset = len(self.query.extra_select)
        for rows in self.execute_sql(MULTI):
            for row in rows:
                date = row[offset]
                if resolve_columns:
                    date = self.resolve_columns(row, fields)[offset]
                elif needs_string_cast:
                    date = typecast_date(str(date))
                if isinstance(date, datetime.datetime):
                    date = date.date()
                yield date