You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When I do a yadcf_range_number search with the filter only specifying one side, an error is generated. I am not sure if this is an issue with mysql or with python 2.7 use of float('inf'). The response to the browser has
json.error
"(_mysql_exceptions.OperationalError) (1054, "Unknown column 'inf' in 'where clause'")
[SQL: SELECT count(*) AS count_1
FROM (SELECT race.date AS race_date
FROM series, raceresult INNER JOIN runner ON runner.id = raceresult.runnerid INNER JOIN race ON race.id = raceresult.raceid INNER JOIN location ON location.id = race.locationid
WHERE raceresult.club_id = %s AND race.date BETWEEN %s AND %s AND lower(raceresult.runnerid) LIKE lower(%s) AND series.name LIKE %s AND round(race.distance, %s) BETWEEN %s AND %s) AS anon_1]
[parameters: (2L, datetime.datetime(2016, 7, 1, 0, 0), datetime.datetime(2019, 7, 9, 0, 0), '%502%', 'grandprix', 2, 5.0, inf)]
(Background on this error at: http://sqlalche.me/e/e3q8)"
This monkey patch seems to take care of the problem for me. Not sure the best term to use rather than float('inf'). sys.maxsize seemed to be recommended in some of the searches I've done, and is portable to python 3. I also tried sys.float_info.max but this caused error in mysql.
# monkey patch yadcf_range_number search method
def alt_yadcf_range_number(expr, value):
v_from, v_to = value.split('-yadcf_delim-')
v_from = float(v_from) if v_from != '' else -sys.maxsize+1 # was float('-inf')
v_to = float(v_to) if v_to != '' else sys.maxsize # was float('inf')
# logger.debug('yadcf_range_number: between %f and %f', v_from, v_to)
return expr.between(v_from, v_to)
from datatables.search_methods import SEARCH_METHODS
SEARCH_METHODS['yadcf_range_number'] = alt_yadcf_range_number
When I do a yadcf_range_number search with the filter only specifying one side, an error is generated. I am not sure if this is an issue with mysql or with python 2.7 use of float('inf'). The response to the browser has
so seems
float('inf')
atsqlalchemy-datatables/datatables/search_methods.py
Line 57 in 049ab5f
inf
as the second parameter for the between clause of the query.I see this is tested at
sqlalchemy-datatables/tests/test_searching.py
Line 76 in 049ab5f
The text was updated successfully, but these errors were encountered: