Hi All,
Using Sqlalchemy 1.3.23
I am getting a NotImplementedError: Operator 'getitem' is not supported on this expression
when sorting on some hybrid_properties.
I have attached a sample code to replicate it.
falls over with the following traceback:
Traceback (most recent call last):
File "testholdings.py", line 526, in <module>
trans = db_session.query(Transaction).order_by(desc(Transaction.total_cost)).all()
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/ext/hybrid.py", line 898, in __get__
return self._expr_comparator(owner)
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/ext/hybrid.py", line 1105, in expr_comparator
comparator(owner),
File "testholdings.py", line 135, in total_cost
return TotalCostComparator(cls)
File "testholdings.py", line 89, in __init__
expr = case(
File "<string>", line 2, in case
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 2437, in __init__
whenlist = [
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 2439, in <listcomp>
for (c, r) in whens
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/operators.py", line 432, in __getitem__
return self.operate(getitem, index)
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/elements.py", line 762, in operate
return op(self.comparator, *other, **kwargs)
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/operators.py", line 432, in __getitem__
return self.operate(getitem, index)
File "<string>", line 1, in <lambda>
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/type_api.py", line 67, in operate
return o[0](self.expr, op, *(other + o[1:]), **kwargs)
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/default_comparator.py", line 237, in _getitem_impl
_unsupported_impl(expr, op, other, **kw)
File "/home/gvv/Projects/uby/venv/lib/python3.8/site-packages/sqlalchemy/sql/default_comparator.py", line 241, in _unsupported_impl
raise NotImplementedError(
NotImplementedError: Operator 'getitem' is not supported on this expression
Thanks in advance,
George