Unhelpful error when using ORDERBY null
When specifying null in ORDERBY
, the error raised by cubicweb is not helpful to the end user.
Here is an example request:
Any X ORDERBY null ASC LIMIT 10 WHERE X is Tag
And here is the returned error:
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/migration.py", line 299, in interactive_shell
from IPython import start_ipython
ModuleNotFoundError: No module named 'IPython'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 68, in __getitem__
return self.__data[key]
KeyError: ('Any X ORDERBY null ASC LIMIT 10 WHERE X is Tag',)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 720, in get
rqlst = self._cache[cachekey]
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 180, in __getitem__
value = cache_getitem(self, key)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 70, in __getitem__
return self.__missing__(key)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 97, in __missing__
raise KeyError(key)
KeyError: ('Any X ORDERBY null ASC LIMIT 10 WHERE X is Tag',)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/migractions.py", line 1716, in rqlexec
res = execute(rql, kwargs, build_descr=build_descr)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/session.py", line 156, in check_open
return func(cnx, *args, **kwargs)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/session.py", line 672, in execute
rset = self._execute(self, rql, kwargs, build_descr)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 556, in execute
rqlst, cachekey = self.rql_cache.get(cnx, rql, args)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 724, in get
rqlst = self._parse(rql)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 693, in parse
return parse(rql, annotate=annotate)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/__init__.py", line 116, in parse
self._checker.check(rqlst)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 133, in check
self._visit(node, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 149, in _visit
self._visit(c, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 149, in _visit
self._visit(c, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 144, in _visit
node.accept(self, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/utils.py", line 271, in accept
return visit_method(self, *args, **kwargs)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 369, in visit_sortterm
if len(select.selection) < term.value:
TypeError: '<' not supported between instances of 'int' and 'NoneType'
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/migration.py", line 299, in interactive_shell
from IPython import start_ipython
ModuleNotFoundError: No module named 'IPython'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 68, in __getitem__
return self.__data[key]
KeyError: ('Any X ORDERBY null ASC LIMIT 10 WHERE X is Tag',)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 720, in get
rqlst = self._cache[cachekey]
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 180, in __getitem__
value = cache_getitem(self, key)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 70, in __getitem__
return self.__missing__(key)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cachetools/__init__.py", line 97, in __missing__
raise KeyError(key)
KeyError: ('Any X ORDERBY null ASC LIMIT 10 WHERE X is Tag',)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/migractions.py", line 1716, in rqlexec
res = execute(rql, kwargs, build_descr=build_descr)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/session.py", line 156, in check_open
return func(cnx, *args, **kwargs)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/session.py", line 672, in execute
rset = self._execute(self, rql, kwargs, build_descr)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 556, in execute
rqlst, cachekey = self.rql_cache.get(cnx, rql, args)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 724, in get
rqlst = self._parse(rql)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/cubicweb/server/querier.py", line 693, in parse
return parse(rql, annotate=annotate)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/__init__.py", line 116, in parse
self._checker.check(rqlst)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 133, in check
self._visit(node, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 149, in _visit
self._visit(c, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 149, in _visit
self._visit(c, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 144, in _visit
node.accept(self, state)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/utils.py", line 271, in accept
return visit_method(self, *args, **kwargs)
File "/home/avergnet/dev/crm/venv/lib/python3.8/site-packages/rql/stcheck.py", line 369, in visit_sortterm
if len(select.selection) < term.value:
TypeError: '<' not supported between instances of 'int' and 'NoneType'
It should ideally return a syntax error.