From 9bb6e83b685cd030cf0fdc24e332dde956d00e3e Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 21 Oct 2020 22:10:23 +0530 Subject: [PATCH] Ensure numberic sort keys are 0 is the value is None or an empty string --- src/calibre/db/fields.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/calibre/db/fields.py b/src/calibre/db/fields.py index e0d0fcd807..198a782d24 100644 --- a/src/calibre/db/fields.py +++ b/src/calibre/db/fields.py @@ -25,6 +25,10 @@ def bool_sort_key(bools_are_tristate): return (lambda x:{True: 1, False: 2, None: 3}.get(x, 3)) if bools_are_tristate else lambda x:{True: 1, False: 2, None: 2}.get(x, 2) +def numeric_sort_key(x): + return x or 0 + + IDENTITY = lambda x: x @@ -56,6 +60,7 @@ class Field(object): if dt in {'int', 'float', 'rating'}: self._default_sort_key = 0 + self._sort_key = numeric_sort_key elif dt == 'bool': self._default_sort_key = None self._sort_key = bool_sort_key(bools_are_tristate)