Am Donnerstag, 7. Februar 2019 23:45:09 UTC+1 schrieb Mike Bayer: > > > > note the mentioned issue is closed. IN supports an inline parameter now: > > https://docs.sqlalchemy.org/en/rel_1_2/orm/extensions/baked.html#baked-in > > We had started using the .op('IN') approach around v1.1 and I hadn't realized that SQLAlchemy supports this now. Very good to know, thanks.
I have integrated your suggested approach with the 'before_cursor_execute' rewrite of the statement, and it works nicely, thanks again! Simply out of curiosity and because I'm trying to understand the internals a bit better: 1) Theoretically, would another possible approach be to implement a sub-class of BindParameter (let's say PGValuesBindParameter) and - in combination with the .op('IN') approach - overwrite the bind-parameter behavior so it passes the values as one long string like this: .filter(Item.parent_id.op('IN')(PGValuesBindParameter('parent_ids'))) # Parameters that are passed into the statement: { 'parent_ids': "(VALUES ('abc'), ('def'), ('gjh'))" } 2) I've also considered using the following construct with the array-function from the postgres-dialect. It achieves the same performance improvement as the VALUES approach and doesn't require the tricky rewriting of the VALUES-part with the inner parentheses: func.unnest(array(parent_ids)) but I couldn't get it to work with bindparams (tried also with expanding=True). Which one would you suggest/do you think is the cleanest... the VALUES statement-rewrite, or one of those other approaches? -- 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.