I should have given these details from the get-go: the use case is a specialized select() (dynamically built) which would be extremely convenient to map relationships against for convenience in subquery loading, etc. So, the class would not already have a mapper. Can I pass non_primary=True anyway, or won’t this work?
On Tue, Jan 26, 2021 at 6:18 PM Mike Bayer <mike...@zzzcomputing.com> wrote: > > > On Tue, Jan 26, 2021, at 3:16 PM, Kent wrote: > > Question: if I add a mapper to a class that is only needed temporarily, > does using the mapper compile it along side my "normal" mappers such that > I'll leak memory when I mean for the class to be garbage collected? > > Put another way, can I add a mapper to a class that doesn't influence my > "main mappers" and gets thrown away when the class is thrown away or is > that not possible? > > > Assuming the class already has a mapper, and this is an additional mapper > that maps the class in a different way, this feature is called a > "non-primary mapper" and requires that you pass the non_primary=True flag. > If you are using non-primary mappers, then yes they get garbage collected. > > This is also a deprecated feature that won't be in SQLAlchemy 2.0. The > only use case we can identify for "non-primary mappers" is when you want to > create a relationship() to one, and for that use case we now support the > "Relationship to AliasedClass" pattern. > > For anything else involving retrieving a class from an alternate > selectable of some kind, you should be able to use AliasedClass for, e.g. > sqlalchemy.orm.aliased(), so I would recommend using that instead unless > you are on a very old version of SQLAlchemy. > > > > > > > > > Thanks in advance, > Kent > > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/df03ce24-3986-450c-8c3a-a020d5d6adccn%40googlegroups.com > <https://groups.google.com/d/msgid/sqlalchemy/df03ce24-3986-450c-8c3a-a020d5d6adccn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > > -- > 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 a topic in the > Google Groups "sqlalchemy" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/sqlalchemy/IAqOQFpiB20/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > sqlalchemy+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/c8f7f84e-af90-450c-9289-ed84fc6996a9%40www.fastmail.com > <https://groups.google.com/d/msgid/sqlalchemy/c8f7f84e-af90-450c-9289-ed84fc6996a9%40www.fastmail.com?utm_medium=email&utm_source=footer> > . > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/CANnF6aEAcuCRJrAQDWYrDGVmv5k7OuXNC_AXgrqDO00L3j%3D%2BAg%40mail.gmail.com.