I noticed that {'polymorphic_load': 'selectin'} on single table inheritance can make several SQL queries unnecessarily.
Le mercredi 12 juillet 2017 22:02:04 UTC+3, yoch....@gmail.com a écrit : > > Very awaited version for me (because the selectin) ! > > I tested in my code both the eagerload and the polymorphic usages, and > everything works perfectly. > > Thank you Mike > > Le lundi 10 juillet 2017 16:44:03 UTC+3, Mike Bayer a écrit : >> >> SQLAlchemy release 1.2.0b1 is now available. >> >> This is the first beta for the 1.2 series of SQLAlchemy. As is always >> the case for beta releases, the release is available on Pypi, but only >> installable when specifying the --pre flag with pip. >> >> Key highlights of version 1.2 include: >> >> * Connection pool pre-ping - The connection pool now includes an >> optional "pre ping" feature that will test the "liveness" of a pooled >> connection for every connection checkout, transparently recycling the >> DBAPI connection if the database is disconnected. This feature >> eliminates the need for the "pool recycle" flag as well as the issue >> of errors raised when a pooled connection is used after a database >> restart. >> >> * New eagerloading features - an all-new eager loader called >> "selectin" is added. This loader is similar to "subquery" eager >> loading, but foregoes embedding a complex subquery in favor of using a >> simple IN expression which uses the primary key values of the >> just-loaded objects to locate related rows. This style of loading will >> perform dramatically better than "subquery" eager loading in many >> cases. >> >> * New polymorphic loading options - A new "selectin" loader is also >> implemented for polymorphic inheritance hierarchies, which will load >> the extra table rows for subclasses in a result set all at once, >> without the need to use JOIN or "with_polymorphic". New declarative >> options are added to allow per-subclass polymorphic loading >> configuration as well. >> >> * The IN operator now emits a simple expression for empty IN - The >> long standing behavior of "empty in" resolving to a non-performant >> expression with a warning has been removed as default behavior; for an >> IN with no elements, a simple 1 != 1 expression is now used to >> evaluate to "false". >> >> * INSERT..ON DUPLICATE KEY UPDATE support in MySQL - complementing the >> support for PostgreSQL "INSERT..ON CONFLICT" in 1.1, the MySQL dialect >> now supports the ON DUPLICATE KEY phrase. Simple database-agnostic >> "merge" routines can now be composed against these two backends. >> >> * COMMENT Support - thanks to a generous contribution, version 1.2 can >> emit all necessary DDL as well as fully reflect SQL comments for >> tables and columns against the MySQL, PostgreSQL, and Oracle backends. >> >> * SQL expression caching within ORM loaders - the "lazyload" feature >> as well as the new "selectin" loading now use SQL expression caching >> using the "baked query" extension when emitting queries, removing a >> significant bulk of Python overhead from these very common operations. >> >> Users should carefully review the "What's New in SQLAlchemy 1.2? >> document" [1] as well as the Changelog [2] to note which behaviors and >> issues are affected. We'd like to thank the many contributors who >> helped with this release. >> >> SQLAlchemy 1.2.0b1 is available on the Download Page [3]. >> >> [1] http://docs.sqlalchemy.org/en/latest/changelog/migration_12.html >> [2] http://www.sqlalchemy.org/changelog/CHANGES_1_2_0b1 >> [3] http://www.sqlalchemy.org/download.html >> > -- 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.