Hello,
I try to rewrite "meters_readings[generate_subscripts(meters_readings, 1)][1]" from plain sql query that works with sqlalchemy and Database.meters_readings[func.generate_subscripts(Database.meters_readings, 1)][1] doesn't work I get NotImplementedError: Operator 'getitem' is not supported on this expression Is it possible? def get_person_meters_q(dbsession, person_id): database = dbsession.query( Database.person_id, Database.service_id, Database.person_id_internal, Database.meters_readings, (Database.meters_readings[func.generate_subscripts(Database.meters_readings, 1)][1]).label('meter_id'), (Database.meters_readings[func.generate_subscripts(Database.meters_readings, 1)][2]).label('organization_reading'), Database.date ).subquery() meter_readings = dbsession.query( MeterReading.user_id, MeterReading.reading ). \ distinct( MeterReading.service_id, MeterReading.person_id_internal, MeterReading.meter_id). \ filter( and_( MeterReading.person_id == database.c.person_id, MeterReading.service_id == database.c.service_id, MeterReading.meter_id == database.c.meter_id, MeterReading.commit_date > database.c.date, MeterReading.rollback_date == None, MeterReading.reading != None ) ). \ order_by( MeterReading.service_id, MeterReading.person_id_internal, MeterReading.meter_id, MeterReading.commit_date.desc(), MeterReading.commit_time.desc() ).subquery().lateral() q = dbsession.query( meter_readings, database ). \ select_from(database). \ outerjoin(meter_readings, true()). \ filter(Database.person_id == person_id) return q File "/home/sector119/PycharmProjects/epsilon/epsilon/scripts/testdb.py", line 98, in get_person_meters_q (Database.meters_readings[func.generate_subscripts(Database.meters_readings, 1)][1]).label('meter_id'), File "/home/sector119/PythonVirtualEnv/epsilon/lib/python3.5/site-packages/sqlalchemy/sql/operators.py", line 411, in __getitem__ return self.operate(getitem, index) File "/home/sector119/PythonVirtualEnv/epsilon/lib/python3.5/site-packages/sqlalchemy/sql/elements.py", line 692, in operate return op(self.comparator, *other, **kwargs) File "/home/sector119/PythonVirtualEnv/epsilon/lib/python3.5/site-packages/sqlalchemy/sql/operators.py", line 411, in __getitem__ return self.operate(getitem, index) File "<string>", line 1, in <lambda> File "/home/sector119/PythonVirtualEnv/epsilon/lib/python3.5/site-packages/sqlalchemy/sql/type_api.py", line 63, in operate return o[0](self.expr, op, *(other + o[1:]), **kwargs) File "/home/sector119/PythonVirtualEnv/epsilon/lib/python3.5/site-packages/sqlalchemy/sql/default_comparator.py", line 192, in _getitem_impl _unsupported_impl(expr, op, other, **kw) File "/home/sector119/PythonVirtualEnv/epsilon/lib/python3.5/site-packages/sqlalchemy/sql/default_comparator.py", line 197, in _unsupported_impl "this expression" % op.__name__) NotImplementedError: Operator 'getitem' is not supported on this expression -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at https://groups.google.com/group/sqlalchemy. For more options, visit https://groups.google.com/d/optout.