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 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/c8f7f84e-af90-450c-9289-ed84fc6996a9%40www.fastmail.com.

Reply via email to