mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #20012 -- test_year_lookup_edge_case fails under Oracle
Used formatted date instead of datetime object for the end of the year range, as the datetime object loses fractions-of-seconds when inserted into the db.
This commit is contained in:
		@@ -436,6 +436,16 @@ WHEN (new.%(col_name)s IS NULL)
 | 
			
		||||
        second = '%s-12-31'
 | 
			
		||||
        return [first % value, second % value]
 | 
			
		||||
 | 
			
		||||
    def year_lookup_bounds_for_datetime_field(self, value):
 | 
			
		||||
        # The default implementation uses datetime objects for the bounds.
 | 
			
		||||
        # This must be overridden here, to use a formatted date (string) as
 | 
			
		||||
        # 'second' instead -- cx_Oracle chops the fraction-of-second part
 | 
			
		||||
        # off of datetime objects, leaving almost an entire second out of
 | 
			
		||||
        # the year under the default implementation.
 | 
			
		||||
        first = '%s-01-01'
 | 
			
		||||
        second = '%s-12-31 23:59:59.999999'
 | 
			
		||||
        return [first % value, second % value]
 | 
			
		||||
 | 
			
		||||
    def combine_expression(self, connector, sub_expressions):
 | 
			
		||||
        "Oracle requires special cases for %% and & operators in query expressions"
 | 
			
		||||
        if connector == '%%':
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user