diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-04-03 11:28:57 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2022-04-03 11:30:09 -0400 |
| commit | c315c7401a2aa00a8a0fa0f7d4189a9976fd7962 (patch) | |
| tree | 0a4b5c4195d15d1e7294cc39589060660f1d5930 /test/aaa_profiling | |
| parent | 1dffb7cedeb009ca6c532db558bd0588dd846957 (diff) | |
| download | sqlalchemy-c315c7401a2aa00a8a0fa0f7d4189a9976fd7962.tar.gz | |
TableValuedAlias generation fixes
Fixed bug in newly implemented
:paramref:`.FunctionElement.table_valued.joins_implicitly` feature where
the parameter would not automatically propagate from the original
:class:`.TableValuedAlias` object to the secondary object produced when
calling upon :meth:`.TableValuedAlias.render_derived` or
:meth:`.TableValuedAlias.alias`.
Additionally repaired these issues in :class:`.TableValuedAlias`:
* repaired a potential memory issue which could occur when
repeatedly calling :meth:`.TableValuedAlias.render_derived` against
successive copies of the same object (for .alias(), we currently
have to still continue chaining from the previous element. not sure
if this can be improved but this is standard behavior for .alias()
elsewhere)
* repaired issue where the individual element types would be lost when
calling upon :meth:`.TableValuedAlias.render_derived` or
:meth:`.TableValuedAlias.alias`.
Fixes: #7890
Change-Id: Ie5120c7ff1e5c1bba5aaf77c782a51c637860208
Diffstat (limited to 'test/aaa_profiling')
| -rw-r--r-- | test/aaa_profiling/test_memusage.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py index f084eac2c..24cc0b99b 100644 --- a/test/aaa_profiling/test_memusage.py +++ b/test/aaa_profiling/test_memusage.py @@ -6,6 +6,7 @@ import weakref import sqlalchemy as sa from sqlalchemy import ForeignKey +from sqlalchemy import func from sqlalchemy import inspect from sqlalchemy import Integer from sqlalchemy import MetaData @@ -359,6 +360,18 @@ class MemUsageTest(EnsureZeroed): go() + def test_tv_render_derived(self): + root_expr = func.some_fn().table_valued() + expr = root_expr + + @profile_memory() + def go(): + nonlocal expr + + expr = expr.render_derived() + + go() + @testing.add_to_marker.memory_intensive class MemUsageWBackendTest(fixtures.MappedTest, EnsureZeroed): |
