diff --git a/src/calibre/db/search.py b/src/calibre/db/search.py index 9eeacc24b5..6a6fbb0a56 100644 --- a/src/calibre/db/search.py +++ b/src/calibre/db/search.py @@ -290,8 +290,11 @@ class NumericSearch(object): # {{{ raise ParseException( _('Non-numeric value in query: {0}').format(query)) + qfalse = query == 'false' for val, book_ids in field_iter(): if val is None: + if qfalse: + matches |= book_ids continue try: v = cast(val) diff --git a/src/calibre/db/tests/reading.py b/src/calibre/db/tests/reading.py index 56866f5aa7..c9d29475f6 100644 --- a/src/calibre/db/tests/reading.py +++ b/src/calibre/db/tests/reading.py @@ -224,8 +224,8 @@ class ReadingTest(BaseTest): 'rating:3', 'rating:>2', 'rating:=2', 'rating:true', 'rating:false', 'rating:>4', 'tags:#<2', 'tags:#>7', 'cover:false', 'cover:true', '#float:>11', '#float:<1k', - '#float:10.01', 'series_index:1', 'series_index:<3', 'id:1', - 'id:>2', + '#float:10.01', '#float:false', 'series_index:1', + 'series_index:<3', 'id:1', 'id:>2', # Bool tests '#yesno:true', '#yesno:false', '#yesno:yes', '#yesno:no',