On Tue, Jan 26, 2021, at 7:31 PM, Kent Bower wrote: > 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?
oh if the class doesn't have a mapper, then defintiely, just make ad-hoc subclasses of it and map to those. vastly easier that way. > > > On Tue, Jan 26, 2021 at 6:18 PM Mike Bayer <[email protected]> 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 [email protected]. >>> 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 >> [email protected]. >> 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/CANnF6aEAcuCRJrAQDWYrDGVmv5k7OuXNC_AXgrqDO00L3j%3D%2BAg%40mail.gmail.com > > <https://groups.google.com/d/msgid/sqlalchemy/CANnF6aEAcuCRJrAQDWYrDGVmv5k7OuXNC_AXgrqDO00L3j%3D%2BAg%40mail.gmail.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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/dc49d8ba-ee87-4284-a0fd-140471edc1cb%40www.fastmail.com.
