Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
1 | · | 1 | ·634380def68a5bbb66a0891f7ede3d69·3566912·doc·optional·python-sqlalchemy-doc_1.4.46+ds1-1_all.deb |
2 | ·3c192543be22fb57144d84a272c81948·38500·debug·optional·python3-sqlalchemy-ext-dbgsym_1.4.46+ds1-1_armhf.deb | 2 | ·3c192543be22fb57144d84a272c81948·38500·debug·optional·python3-sqlalchemy-ext-dbgsym_1.4.46+ds1-1_armhf.deb |
3 | ·5ccd5b6dab9317a63c8dfe1f1e5fee5f·14768·python·optional·python3-sqlalchemy-ext_1.4.46+ds1-1_armhf.deb | 3 | ·5ccd5b6dab9317a63c8dfe1f1e5fee5f·14768·python·optional·python3-sqlalchemy-ext_1.4.46+ds1-1_armhf.deb |
4 | ·96e279ec2f1354d84035113d9bc40d65·1007608·python·optional·python3-sqlalchemy_1.4.46+ds1-1_all.deb | 4 | ·96e279ec2f1354d84035113d9bc40d65·1007608·python·optional·python3-sqlalchemy_1.4.46+ds1-1_all.deb |
Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | -rw-r--r--···0········0········0········4·2023-01-09·15:19:05.000000·debian-binary | 1 | -rw-r--r--···0········0········0········4·2023-01-09·15:19:05.000000·debian-binary |
2 | -rw-r--r--···0········0········0····13272·2023-01-09·15:19:05.000000·control.tar.xz | 2 | -rw-r--r--···0········0········0····13272·2023-01-09·15:19:05.000000·control.tar.xz |
3 | -rw-r--r--···0········0········0··355344 | 3 | -rw-r--r--···0········0········0··3553448·2023-01-09·15:19:05.000000·data.tar.xz |
Offset 8692, 15 lines modified | Offset 8692, 22 lines modified | ||
8692 | <div·class="admonition·seealso"> | 8692 | <div·class="admonition·seealso"> |
8693 | <p·class="admonition-title">See·also</p> | 8693 | <p·class="admonition-title">See·also</p> |
8694 | <p><a·class="reference·internal"·href="migration_14.html#change-4710-core"><span·class="std·std-ref">RowProxy·is·no·longer·a·“proxy”;·is·now·called·Row·and·behaves·like·an·enhanced·named·tuple</span></a></p> | 8694 | <p><a·class="reference·internal"·href="migration_14.html#change-4710-core"><span·class="std·std-ref">RowProxy·is·no·longer·a·“proxy”;·is·now·called·Row·and·behaves·like·an·enhanced·named·tuple</span></a></p> |
8695 | </div> | 8695 | </div> |
8696 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4710">#4710</a></p> | 8696 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4710">#4710</a></p> |
8697 | </p> | 8697 | </p> |
8698 | </li> | 8698 | </li> |
8699 | <li><p·class="caption"·id="change-1.4.0b1-54"><span·class="target"·id="change-6bc91a2bef8d8afd244e6dbd38439c4d"><strong>[engine]·[performance]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-6bc91a2bef8d8afd244e6dbd38439c4d">¶</a></span><p>The·pool·“pre-ping”·feature·has·been·refined·to·not·invoke·for·a·DBAPI | ||
8700 | connection·that·was·just·opened·in·the·same·checkout·operation.··pre·ping | ||
8701 | only·applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool | ||
8702 | and·is·being·checked·out·again.</p> | ||
8703 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4524">#4524</a></p> | ||
8704 | </p> | ||
8705 | </li> | ||
8699 | <li><p·class="caption"·id="change-1.4.0b1-5 | 8706 | <li><p·class="caption"·id="change-1.4.0b1-55"><span·class="target"·id="change-d3650b27f4c852ac687ea55326051ed0"><strong>[engine]·[performance]·[change]·[py3k]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-d3650b27f4c852ac687ea55326051ed0">¶</a></span><p>Disabled·the·“unicode·returns”·check·that·runs·on·dialect·startup·when |
8700 | running·under·Python·3,·which·for·many·years·has·occurred·in·order·to·test | 8707 | running·under·Python·3,·which·for·many·years·has·occurred·in·order·to·test |
8701 | the·current·DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode | 8708 | the·current·DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode |
8702 | or·Py2K·strings·for·the·VARCHAR·and·NVARCHAR·datatypes.··The·check·still | 8709 | or·Py2K·strings·for·the·VARCHAR·and·NVARCHAR·datatypes.··The·check·still |
8703 | occurs·by·default·under·Python·2,·however·the·mechanism·to·test·the | 8710 | occurs·by·default·under·Python·2,·however·the·mechanism·to·test·the |
8704 | behavior·will·be·removed·in·SQLAlchemy·2.0·when·Python·2·support·is·also | 8711 | behavior·will·be·removed·in·SQLAlchemy·2.0·when·Python·2·support·is·also |
8705 | removed.</p> | 8712 | removed.</p> |
8706 | <p>This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3 | 8713 | <p>This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3 |
Offset 8711, 21 lines modified | Offset 8718, 14 lines modified | ||
8711 | dialect·flags·by·setting·the·dialect·level·flag·<code·class="docutils·literal·notranslate"><span·class="pre">returns_unicode_strings</span></code> | 8718 | dialect·flags·by·setting·the·dialect·level·flag·<code·class="docutils·literal·notranslate"><span·class="pre">returns_unicode_strings</span></code> |
8712 | to·one·of·<a·class="reference·internal"·href="../core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL"·title="sqlalchemy.types.String.RETURNS_CONDITIONAL"><code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_CONDITIONAL</span></code></a>·or | 8719 | to·one·of·<a·class="reference·internal"·href="../core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL"·title="sqlalchemy.types.String.RETURNS_CONDITIONAL"><code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_CONDITIONAL</span></code></a>·or |
8713 | <a·class="reference·internal"·href="../core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES"·title="sqlalchemy.types.String.RETURNS_BYTES"><code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_BYTES</span></code></a>,·both·of·which·will·enable·Unicode·conversion | 8720 | <a·class="reference·internal"·href="../core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES"·title="sqlalchemy.types.String.RETURNS_BYTES"><code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_BYTES</span></code></a>,·both·of·which·will·enable·Unicode·conversion |
8714 | even·under·Python·3.</p> | 8721 | even·under·Python·3.</p> |
8715 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5315">#5315</a></p> | 8722 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5315">#5315</a></p> |
8716 | </p> | 8723 | </p> |
8717 | </li> | 8724 | </li> |
8718 | <li><p·class="caption"·id="change-1.4.0b1-55"><span·class="target"·id="change-6bc91a2bef8d8afd244e6dbd38439c4d"><strong>[engine]·[performance]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-6bc91a2bef8d8afd244e6dbd38439c4d">¶</a></span><p>The·pool·“pre-ping”·feature·has·been·refined·to·not·invoke·for·a·DBAPI | ||
8719 | connection·that·was·just·opened·in·the·same·checkout·operation.··pre·ping | ||
8720 | only·applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool | ||
8721 | and·is·being·checked·out·again.</p> | ||
8722 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4524">#4524</a></p> | ||
8723 | </p> | ||
8724 | </li> | ||
8725 | <li><p·class="caption"·id="change-1.4.0b1-56"><span·class="target"·id="change-f8a130923cff752e26f7be9cf1ea18eb"><strong>[engine]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-f8a130923cff752e26f7be9cf1ea18eb">¶</a></span><p>Revised·the·<a·class="reference·internal"·href="../core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map"·title="sqlalchemy.engine.Connection.execution_options"><code·class="xref·py·py-paramref·docutils·literal·notranslate"><span·class="pre">Connection.execution_options.schema_translate_map</span></code></a> | 8725 | <li><p·class="caption"·id="change-1.4.0b1-56"><span·class="target"·id="change-f8a130923cff752e26f7be9cf1ea18eb"><strong>[engine]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-f8a130923cff752e26f7be9cf1ea18eb">¶</a></span><p>Revised·the·<a·class="reference·internal"·href="../core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map"·title="sqlalchemy.engine.Connection.execution_options"><code·class="xref·py·py-paramref·docutils·literal·notranslate"><span·class="pre">Connection.execution_options.schema_translate_map</span></code></a> |
8726 | feature·such·that·the·processing·of·the·SQL·statement·to·receive·a·specific | 8726 | feature·such·that·the·processing·of·the·SQL·statement·to·receive·a·specific |
8727 | schema·name·occurs·within·the·execution·phase·of·the·statement,·rather·than | 8727 | schema·name·occurs·within·the·execution·phase·of·the·statement,·rather·than |
8728 | at·the·compile·phase.···This·is·to·support·the·statement·being·efficiently | 8728 | at·the·compile·phase.···This·is·to·support·the·statement·being·efficiently |
8729 | cached.···Previously,·the·current·schema·being·rendered·into·the·statement | 8729 | cached.···Previously,·the·current·schema·being·rendered·into·the·statement |
8730 | for·a·particular·run·would·be·considered·as·part·of·the·cache·key·itself, | 8730 | for·a·particular·run·would·be·considered·as·part·of·the·cache·key·itself, |
8731 | meaning·that·for·a·run·against·hundreds·of·schemas,·there·would·be·hundreds | 8731 | meaning·that·for·a·run·against·hundreds·of·schemas,·there·would·be·hundreds |
Offset 6298, 15 lines modified | Offset 6298, 21 lines modified | ||
6298 | returned·by·the·ResultProxy·is·now·the·LegacyRow·subclass,·which·maintains | 6298 | returned·by·the·ResultProxy·is·now·the·LegacyRow·subclass,·which·maintains |
6299 | mapping/tuple·hybrid·behavior,·however·the·base·Row·class·now·behaves·more | 6299 | mapping/tuple·hybrid·behavior,·however·the·base·Row·class·now·behaves·more |
6300 | fully·like·a·named·tuple. | 6300 | fully·like·a·named·tuple. |
6301 | See·also | 6301 | See·also |
6302 | RowProxy_is_no_longer_a_“proxy”;_is_now_called_Row_and_behaves_like_an_enhanced | 6302 | RowProxy_is_no_longer_a_“proxy”;_is_now_called_Row_and_behaves_like_an_enhanced |
6303 | named_tuple | 6303 | named_tuple |
6304 | References:·#4710 | 6304 | References:·#4710 |
6305 | [engine]·[performance]·¶ | ||
6306 | The·pool·“pre-ping”·feature·has·been·refined·to·not·invoke·for·a·DBAPI | ||
6307 | connection·that·was·just·opened·in·the·same·checkout·operation.·pre·ping·only | ||
6308 | applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool·and·is·being | ||
6309 | checked·out·again. | ||
6310 | References:·#4524 | ||
6305 | [engine]·[ | 6311 | [engine]·[performance]·[change]·[py3k]·¶ |
6306 | Disabled·the·“unicode·returns”·check·that·runs·on·dialect·startup·when·running | 6312 | Disabled·the·“unicode·returns”·check·that·runs·on·dialect·startup·when·running |
6307 | under·Python·3,·which·for·many·years·has·occurred·in·order·to·test·the·current | 6313 | under·Python·3,·which·for·many·years·has·occurred·in·order·to·test·the·current |
6308 | DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode·or·Py2K·strings | 6314 | DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode·or·Py2K·strings |
6309 | for·the·VARCHAR·and·NVARCHAR·datatypes.·The·check·still·occurs·by·default·under | 6315 | for·the·VARCHAR·and·NVARCHAR·datatypes.·The·check·still·occurs·by·default·under |
6310 | Python·2,·however·the·mechanism·to·test·the·behavior·will·be·removed·in | 6316 | Python·2,·however·the·mechanism·to·test·the·behavior·will·be·removed·in |
6311 | SQLAlchemy·2.0·when·Python·2·support·is·also·removed. | 6317 | SQLAlchemy·2.0·when·Python·2·support·is·also·removed. |
6312 | This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3·is | 6318 | This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3·is |
Offset 6314, 20 lines modified | Offset 6320, 14 lines modified | ||
6314 | datatypes.·In·the·unlikely·case·that·a·third·party·DBAPI·does·not·support·this, | 6320 | datatypes.·In·the·unlikely·case·that·a·third·party·DBAPI·does·not·support·this, |
6315 | the·conversion·logic·within·String·is·still·available·and·the·third·party | 6321 | the·conversion·logic·within·String·is·still·available·and·the·third·party |
6316 | dialect·may·specify·this·in·its·upfront·dialect·flags·by·setting·the·dialect | 6322 | dialect·may·specify·this·in·its·upfront·dialect·flags·by·setting·the·dialect |
6317 | level·flag·returns_unicode_strings·to·one·of·String.RETURNS_CONDITIONAL·or | 6323 | level·flag·returns_unicode_strings·to·one·of·String.RETURNS_CONDITIONAL·or |
6318 | String.RETURNS_BYTES,·both·of·which·will·enable·Unicode·conversion·even·under | 6324 | String.RETURNS_BYTES,·both·of·which·will·enable·Unicode·conversion·even·under |
6319 | Python·3. | 6325 | Python·3. |
6320 | References:·#5315 | 6326 | References:·#5315 |
6321 | [engine]·[performance]·¶ | ||
6322 | The·pool·“pre-ping”·feature·has·been·refined·to·not·invoke·for·a·DBAPI | ||
6323 | connection·that·was·just·opened·in·the·same·checkout·operation.·pre·ping·only | ||
6324 | applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool·and·is·being | ||
6325 | checked·out·again. | ||
6326 | References:·#4524 | ||
6327 | [engine]·[bug]·¶ | 6327 | [engine]·[bug]·¶ |
6328 | Revised·the·Connection.execution_options.schema_translate_map·feature·such·that | 6328 | Revised·the·Connection.execution_options.schema_translate_map·feature·such·that |
6329 | the·processing·of·the·SQL·statement·to·receive·a·specific·schema·name·occurs | 6329 | the·processing·of·the·SQL·statement·to·receive·a·specific·schema·name·occurs |
6330 | within·the·execution·phase·of·the·statement,·rather·than·at·the·compile·phase. | 6330 | within·the·execution·phase·of·the·statement,·rather·than·at·the·compile·phase. |
6331 | This·is·to·support·the·statement·being·efficiently·cached.·Previously,·the | 6331 | This·is·to·support·the·statement·being·efficiently·cached.·Previously,·the |
6332 | current·schema·being·rendered·into·the·statement·for·a·particular·run·would·be | 6332 | current·schema·being·rendered·into·the·statement·for·a·particular·run·would·be |
6333 | considered·as·part·of·the·cache·key·itself,·meaning·that·for·a·run·against | 6333 | considered·as·part·of·the·cache·key·itself,·meaning·that·for·a·run·against |
Offset 313, 38 lines modified | Offset 313, 38 lines modified | ||
313 | where·an·intermediary·class·mediates·the·relationship·between·two | 313 | where·an·intermediary·class·mediates·the·relationship·between·two |
314 | classes·that·are·associated·in·a·many-to-many·pattern.</p> | 314 | classes·that·are·associated·in·a·many-to-many·pattern.</p> |
315 | <p>Listing·of·files:<ul·class="simple"> | 315 | <p>Listing·of·files:<ul·class="simple"> |
316 | <li><p><p><a·class="reference·external"·href="../_modules/examples/association/basic_association.html">basic_association.py</a>·-·Illustrate·a·many-to-many·relationship·between·an | 316 | <li><p><p><a·class="reference·external"·href="../_modules/examples/association/basic_association.html">basic_association.py</a>·-·Illustrate·a·many-to-many·relationship·between·an |
317 | “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price | 317 | “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price |
318 | with·each·via·an·association·object·called·“OrderItem”</p> | 318 | with·each·via·an·association·object·called·“OrderItem”</p> |
319 | </p></li> | 319 | </p></li> |
320 | <li><p><p><a·class="reference·external"·href="../_modules/examples/association/proxied_association.html">proxied_association.py</a>·-·Same·example·as·basic_association,·adding·in | ||
321 | usage·of·<a·class="reference·internal"·href="extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy"·title="sqlalchemy.ext.associationproxy"><code·class="xref·py·py-mod·docutils·literal·notranslate"><span·class="pre">sqlalchemy.ext.associationproxy</span></code></a>·to·make·explicit·references | ||
322 | to·<code·class="docutils·literal·notranslate"><span·class="pre">OrderItem</span></code>·optional.</p> | ||
323 | </p></li> | ||
320 | <li><p><p><a·class="reference·external"·href="../_modules/examples/association/dict_of_sets_with_default.html">dict_of_sets_with_default.py</a>·-·An·advanced·association·proxy·example·which | 324 | <li><p><p><a·class="reference·external"·href="../_modules/examples/association/dict_of_sets_with_default.html">dict_of_sets_with_default.py</a>·-·An·advanced·association·proxy·example·which |
321 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python | 325 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python |
322 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers | 326 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers |
323 | as·values,·which·conceal·the·underlying·mapped·classes.</p> | 327 | as·values,·which·conceal·the·underlying·mapped·classes.</p> |
324 | </p></li> | 328 | </p></li> |
325 | <li><p><p><a·class="reference·external"·href="../_modules/examples/association/proxied_association.html">proxied_association.py</a>·-·Same·example·as·basic_association,·adding·in | ||
326 | usage·of·<a·class="reference·internal"·href="extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy"·title="sqlalchemy.ext.associationproxy"><code·class="xref·py·py-mod·docutils·literal·notranslate"><span·class="pre">sqlalchemy.ext.associationproxy</span></code></a>·to·make·explicit·references | ||
327 | to·<code·class="docutils·literal·notranslate"><span·class="pre">OrderItem</span></code>·optional.</p> | ||
328 | </p></li> | ||
329 | </ul> | 329 | </ul> |
330 | </p> | 330 | </p> |
331 | </section> | 331 | </section> |
332 | <section·id="module-examples.asyncio"> | 332 | <section·id="module-examples.asyncio"> |
333 | <span·id="asyncio-integration"></span><span·id="examples-asyncio"></span><h3>Asyncio·Integration<a·class="headerlink"·href="#module-examples.asyncio"·title="Permalink·to·this·heading">¶</a></h3> | 333 | <span·id="asyncio-integration"></span><span·id="examples-asyncio"></span><h3>Asyncio·Integration<a·class="headerlink"·href="#module-examples.asyncio"·title="Permalink·to·this·heading">¶</a></h3> |
334 | <p>Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.</p> | 334 | <p>Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.</p> |
335 | <p>Listing·of·files:<ul·class="simple"> | 335 | <p>Listing·of·files:<ul·class="simple"> |
336 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/async_orm.html">async_orm.py</a>·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession·object | ||
337 | for·asynchronous·ORM·use.</p> | ||
338 | </p></li> | ||
339 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/greenlet_orm.html">greenlet_orm.py</a>·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession·object | 336 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/greenlet_orm.html">greenlet_orm.py</a>·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession·object |
340 | for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.</p> | 337 | for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.</p> |
341 | </p></li> | 338 | </p></li> |
342 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/basic.html">basic.py</a>·-·Illustrates·the·asyncio·engine·/·connection·interface.</p> | 339 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/basic.html">basic.py</a>·-·Illustrates·the·asyncio·engine·/·connection·interface.</p> |
343 | </p></li> | 340 | </p></li> |
341 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/async_orm.html">async_orm.py</a>·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession·object | ||
342 | for·asynchronous·ORM·use.</p> | ||
343 | </p></li> | ||
344 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/gather_orm_statements.html">gather_orm_statements.py</a>·-·Illustrates·how·to·run·many·statements·concurrently·using·<code·class="docutils·literal·notranslate"><span·class="pre">asyncio.gather()</span></code> | 344 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/gather_orm_statements.html">gather_orm_statements.py</a>·-·Illustrates·how·to·run·many·statements·concurrently·using·<code·class="docutils·literal·notranslate"><span·class="pre">asyncio.gather()</span></code> |
345 | along·many·asyncio·database·connections,·merging·ORM·results·into·a·single | 345 | along·many·asyncio·database·connections,·merging·ORM·results·into·a·single |
346 | <code·class="docutils·literal·notranslate"><span·class="pre">AsyncSession</span></code>.</p> | 346 | <code·class="docutils·literal·notranslate"><span·class="pre">AsyncSession</span></code>.</p> |
347 | </p></li> | 347 | </p></li> |
348 | </ul> | 348 | </ul> |
349 | </p> | 349 | </p> |
350 | </section> | 350 | </section> |
Offset 385, 37 lines modified | Offset 385, 37 lines modified | ||
385 | subclassing·the·<code·class="docutils·literal·notranslate"><span·class="pre">HasAddresses</span></code>·mixin,·which·ensures·that·the | 385 | subclassing·the·<code·class="docutils·literal·notranslate"><span·class="pre">HasAddresses</span></code>·mixin,·which·ensures·that·the |
386 | parent·class·is·provided·with·an·<code·class="docutils·literal·notranslate"><span·class="pre">addresses</span></code>·collection | 386 | parent·class·is·provided·with·an·<code·class="docutils·literal·notranslate"><span·class="pre">addresses</span></code>·collection |
387 | which·contains·<code·class="docutils·literal·notranslate"><span·class="pre">Address</span></code>·objects.</p> | 387 | which·contains·<code·class="docutils·literal·notranslate"><span·class="pre">Address</span></code>·objects.</p> |
388 | <p>The·<a·class="reference·external"·href="../_modules/examples/generic_associations/discriminator_on_association.html">discriminator_on_association.py</a>·and·<a·class="reference·external"·href="../_modules/examples/generic_associations/generic_fk.html">generic_fk.py</a>·scripts | 388 | <p>The·<a·class="reference·external"·href="../_modules/examples/generic_associations/discriminator_on_association.html">discriminator_on_association.py</a>·and·<a·class="reference·external"·href="../_modules/examples/generic_associations/generic_fk.html">generic_fk.py</a>·scripts |
389 | are·modernized·versions·of·recipes·presented·in·the·2007·blog·post | 389 | are·modernized·versions·of·recipes·presented·in·the·2007·blog·post |
390 | <a·class="reference·external"·href="https://techspot.zzzeek.org/2007/05/29/polymorphic-associations-with-sqlalchemy/">Polymorphic·Associations·with·SQLAlchemy</a>.</p> | 390 | <a·class="reference·external"·href="https://techspot.zzzeek.org/2007/05/29/polymorphic-associations-with-sqlalchemy/">Polymorphic·Associations·with·SQLAlchemy</a>.</p> |
391 | <p>Listing·of·files:<ul·class="simple"> | 391 | <p>Listing·of·files:<ul·class="simple"> |
392 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/table_per_related.html">table_per_related.py</a>·-·Illustrates·a·generic·association·which·persists·association | ||
393 | objects·within·individual·tables,·each·one·generated·to·persist | ||
394 | those | 392 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/table_per_association.html">table_per_association.py</a>·-·Illustrates·a·mixin·which·provides·a·generic·association |
393 | via·a·individually·generated·association·tables·for·each·parent·class. | ||
394 | The·associated·objects·themselves·are·persisted·in·a·single·table | ||
395 | shared·among·all·parents.</p> | ||
395 | </p></li> | 396 | </p></li> |
396 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/generic_fk.html">generic_fk.py</a>·-·Illustrates·a·so-called·“generic·foreign·key”,·in·a·similar·fashion | 397 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/generic_fk.html">generic_fk.py</a>·-·Illustrates·a·so-called·“generic·foreign·key”,·in·a·similar·fashion |
397 | to·that·of·popular·frameworks·such·as·Django,·ROR,·etc.··This | 398 | to·that·of·popular·frameworks·such·as·Django,·ROR,·etc.··This |
398 | approach·bypasses·standard·referential·integrity | 399 | approach·bypasses·standard·referential·integrity |
399 | practices,·in·that·the·“foreign·key”·column·is·not·actually | 400 | practices,·in·that·the·“foreign·key”·column·is·not·actually |
400 | constrained·to·refer·to·any·particular·table;·instead, | 401 | constrained·to·refer·to·any·particular·table;·instead, |
401 | in-application·logic·is·used·to·determine·which·table·is·referenced.</p> | 402 | in-application·logic·is·used·to·determine·which·table·is·referenced.</p> |
402 | </p></li> | 403 | </p></li> |
403 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/table_per_association.html">table_per_association.py</a>·-·Illustrates·a·mixin·which·provides·a·generic·association | ||
404 | via·a·individually·generated·association·tables·for·each·parent·class. | ||
405 | The·associated·objects·themselves·are·persisted·in·a·single·table | ||
406 | shared·among·all·parents.</p> | ||
407 | </p></li> | ||
408 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/discriminator_on_association.html">discriminator_on_association.py</a>·-·Illustrates·a·mixin·which·provides·a·generic·association | 404 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/discriminator_on_association.html">discriminator_on_association.py</a>·-·Illustrates·a·mixin·which·provides·a·generic·association |
409 | using·a·single·target·table·and·a·single·association·table, | 405 | using·a·single·target·table·and·a·single·association·table, |
410 | referred·to·by·all·parent·tables.··The·association·table | 406 | referred·to·by·all·parent·tables.··The·association·table |
411 | contains·a·“discriminator”·column·which·determines·what·type·of | 407 | contains·a·“discriminator”·column·which·determines·what·type·of |
412 | parent·object·associates·to·each·particular·row·in·the·association | 408 | parent·object·associates·to·each·particular·row·in·the·association |
413 | table.</p> | 409 | table.</p> |
414 | </p></li> | 410 | </p></li> |
411 | <li><p><p><a·class="reference·external"·href="../_modules/examples/generic_associations/table_per_related.html">table_per_related.py</a>·-·Illustrates·a·generic·association·which·persists·association | ||
412 | objects·within·individual·tables,·each·one·generated·to·persist | ||
413 | those·objects·on·behalf·of·a·particular·parent·class.</p> | ||
414 | </p></li> | ||
415 | </ul> | 415 | </ul> |
416 | </p> | 416 | </p> |
417 | </section> | 417 | </section> |
418 | <section·id="module-examples.large_collection"> | 418 | <section·id="module-examples.large_collection"> |
419 | <span·id="large-collections"></span><h3>Large·Collections<a·class="headerlink"·href="#module-examples.large_collection"·title="Permalink·to·this·heading">¶</a></h3> | 419 | <span·id="large-collections"></span><h3>Large·Collections<a·class="headerlink"·href="#module-examples.large_collection"·title="Permalink·to·this·heading">¶</a></h3> |
420 | <p>Large·collection·example.</p> | 420 | <p>Large·collection·example.</p> |
421 | <p>Illustrates·the·options·to·use·with | 421 | <p>Illustrates·the·options·to·use·with |
Offset 501, 33 lines modified | Offset 501, 33 lines modified | ||
501 | <div·class="admonition·seealso"> | 501 | <div·class="admonition·seealso"> |
502 | <p·class="admonition-title">See·also</p> | 502 | <p·class="admonition-title">See·also</p> |
503 | <p><a·class="reference·internal"·href="../faq/performance.html#faq-how-to-profile"><span·class="std·std-ref">How·can·I·profile·a·SQLAlchemy·powered·application?</span></a></p> | 503 | <p><a·class="reference·internal"·href="../faq/performance.html#faq-how-to-profile"><span·class="std·std-ref">How·can·I·profile·a·SQLAlchemy·powered·application?</span></a></p> |
504 | </div> | 504 | </div> |
505 | <section·id="file-listing"> | 505 | <section·id="file-listing"> |
506 | <h4>File·Listing<a·class="headerlink"·href="#file-listing"·title="Permalink·to·this·heading">¶</a></h4> | 506 | <h4>File·Listing<a·class="headerlink"·href="#file-listing"·title="Permalink·to·this·heading">¶</a></h4> |
507 | <p>Listing·of·files:<ul·class="simple"> | 507 | <p>Listing·of·files:<ul·class="simple"> |
508 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/single_inserts.html">single_inserts.py</a>·-·In·this·series·of·tests,·we’re·looking·at·a·method·that·inserts·a·row | ||
509 | within·a·distinct·transaction,·and·afterwards·returns·to·essentially·a | ||
510 | “closed”·state.···This·would·be·analogous·to·an·API·call·that·starts·up | ||
511 | a·database·connection,·inserts·the·row,·commits·and·closes.</p> | ||
512 | </p></li> | ||
508 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/short_selects.html">short_selects.py</a>·-·This·series·of·tests·illustrates·different·ways·to·SELECT·a·single | 513 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/short_selects.html">short_selects.py</a>·-·This·series·of·tests·illustrates·different·ways·to·SELECT·a·single |
509 | record·by·primary·key</p> | 514 | record·by·primary·key</p> |
510 | </p></li> | 515 | </p></li> |
511 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/_ | 516 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/bulk_updates.html">bulk_updates.py</a>·-·This·series·of·tests·will·illustrate·different·ways·to·UPDATE·a·large·number |
517 | of·rows·in·bulk·(under·construction!·there’s·just·one·test·at·the·moment)</p> | ||
512 | </p></li> | 518 | </p></li> |
513 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/large_resultsets.html">large_resultsets.py</a>·-·In·this·series·of·tests,·we·are·looking·at·time·to·load·a·large·number | 519 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/large_resultsets.html">large_resultsets.py</a>·-·In·this·series·of·tests,·we·are·looking·at·time·to·load·a·large·number |
514 | of·very·small·and·simple·rows.</p> | 520 | of·very·small·and·simple·rows.</p> |
515 | </p></li> | 521 | </p></li> |
522 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/__main__.html">__main__.py</a>·-·Allows·the·examples/performance·package·to·be·run·as·a·script.</p> | ||
516 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/single_inserts.html">single_inserts.py</a>·-·In·this·series·of·tests,·we’re·looking·at·a·method·that·inserts·a·row | ||
517 | within·a·distinct·transaction,·and·afterwards·returns·to·essentially·a | ||
518 | “closed”·state.···This·would·be·analogous·to·an·API·call·that·starts·up | ||
519 | a·database·connection,·inserts·the·row,·commits·and·closes.</p> | ||
520 | </p></li> | 523 | </p></li> |
521 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/bulk_inserts.html">bulk_inserts.py</a>·-·This·series·of·tests·illustrates·different·ways·to·INSERT·a·large·number | 524 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/bulk_inserts.html">bulk_inserts.py</a>·-·This·series·of·tests·illustrates·different·ways·to·INSERT·a·large·number |
522 | of·rows·in·bulk.</p> | 525 | of·rows·in·bulk.</p> |
523 | </p></li> | 526 | </p></li> |
524 | <li><p><p><a·class="reference·external"·href="../_modules/examples/performance/bulk_updates.html">bulk_updates.py</a>·-·This·series·of·tests·will·illustrate·different·ways·to·UPDATE·a·large·number | ||
525 | of·rows·in·bulk·(under·construction!·there’s·just·one·test·at·the·moment)</p> | ||
526 | </p></li> | ||
527 | </ul> | 527 | </ul> |
528 | </p> | 528 | </p> |
529 | </section> | 529 | </section> |
Max diff block lines reached; 16514/27108 bytes (60.92%) of diff not shown. |
Offset 126, 30 lines modified | Offset 126, 31 lines modified | ||
126 | Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an | 126 | Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an |
127 | intermediary·class·mediates·the·relationship·between·two·classes·that·are | 127 | intermediary·class·mediates·the·relationship·between·two·classes·that·are |
128 | associated·in·a·many-to-many·pattern. | 128 | associated·in·a·many-to-many·pattern. |
129 | Listing·of·files: | 129 | Listing·of·files: |
130 | ····*·basic_association.py·-·Illustrate·a·many-to-many·relationship·between·an | 130 | ····*·basic_association.py·-·Illustrate·a·many-to-many·relationship·between·an |
131 | ······“Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price | 131 | ······“Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price |
132 | ······with·each·via·an·association·object·called·“OrderItem” | 132 | ······with·each·via·an·association·object·called·“OrderItem” |
133 | proxied_association.py·-·Same·example·as·basic_association,·adding·in·usage·of | ||
134 | sqlalchemy.ext.associationproxy·to·make·explicit·references·to·OrderItem | ||
135 | optional. | ||
133 | dict_of_sets_with_default.py·-·An·advanced·association·proxy·example·which | 136 | dict_of_sets_with_default.py·-·An·advanced·association·proxy·example·which |
134 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python | 137 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python |
135 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers·as | 138 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers·as |
136 | values,·which·conceal·the·underlying·mapped·classes. | 139 | values,·which·conceal·the·underlying·mapped·classes. |
137 | proxied_association.py·-·Same·example·as·basic_association,·adding·in·usage·of | ||
138 | sqlalchemy.ext.associationproxy·to·make·explicit·references·to·OrderItem | ||
139 | optional. | ||
140 | ****·Asyncio·Integration¶·**** | 140 | ****·Asyncio·Integration¶·**** |
141 | Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy. | 141 | Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy. |
142 | Listing·of·files: | 142 | Listing·of·files: |
143 | ····*·greenlet_orm.py·-·Illustrates·use·of·the | ||
144 | ······sqlalchemy.ext.asyncio.AsyncSession·object·for·asynchronous·ORM·use, | ||
143 | ····*·async_orm.py·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession | ||
144 | ······object·for·asynchronous·ORM·use. | ||
145 | greenlet_orm.py·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession | ||
146 | 145 | ······including·the·optional·run_sync()·method. | |
147 | basic.py·-·Illustrates·the·asyncio·engine·/·connection·interface. | 146 | basic.py·-·Illustrates·the·asyncio·engine·/·connection·interface. |
147 | async_orm.py·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession | ||
148 | object·for·asynchronous·ORM·use. | ||
148 | gather_orm_statements.py·-·Illustrates·how·to·run·many·statements·concurrently | 149 | gather_orm_statements.py·-·Illustrates·how·to·run·many·statements·concurrently |
149 | using·asyncio.gather()·along·many·asyncio·database·connections,·merging·ORM | 150 | using·asyncio.gather()·along·many·asyncio·database·connections,·merging·ORM |
150 | results·into·a·single·AsyncSession. | 151 | results·into·a·single·AsyncSession. |
151 | ****·Directed·Graphs¶·**** | 152 | ****·Directed·Graphs¶·**** |
152 | An·example·of·persistence·for·a·directed·graph·structure.·The·graph·is·stored | 153 | An·example·of·persistence·for·a·directed·graph·structure.·The·graph·is·stored |
153 | as·a·collection·of·edges,·each·referencing·both·a·“lower”·and·an·“upper”·node | 154 | as·a·collection·of·edges,·each·referencing·both·a·“lower”·and·an·“upper”·node |
Offset 177, 31 lines modified | Offset 178, 31 lines modified | ||
177 | Supplier,·both·subclassing·the·HasAddresses·mixin,·which·ensures·that·the | 178 | Supplier,·both·subclassing·the·HasAddresses·mixin,·which·ensures·that·the |
178 | parent·class·is·provided·with·an·addresses·collection·which·contains·Address | 179 | parent·class·is·provided·with·an·addresses·collection·which·contains·Address |
179 | objects. | 180 | objects. |
180 | The·discriminator_on_association.py·and·generic_fk.py·scripts·are·modernized | 181 | The·discriminator_on_association.py·and·generic_fk.py·scripts·are·modernized |
181 | versions·of·recipes·presented·in·the·2007·blog·post·Polymorphic_Associations | 182 | versions·of·recipes·presented·in·the·2007·blog·post·Polymorphic_Associations |
182 | with_SQLAlchemy. | 183 | with_SQLAlchemy. |
183 | Listing·of·files: | 184 | Listing·of·files: |
184 | ····*·table_per_related.py·-·Illustrates·a·generic·association·which·persists | ||
185 | ······association·objects·within·individual·tables,·each·one·generated·to | ||
186 | ····· | 185 | ····*·table_per_association.py·-·Illustrates·a·mixin·which·provides·a·generic |
186 | ······association·via·a·individually·generated·association·tables·for·each | ||
187 | ······parent·class.·The·associated·objects·themselves·are·persisted·in·a·single | ||
188 | ······table·shared·among·all·parents. | ||
187 | generic_fk.py·-·Illustrates·a·so-called·“generic·foreign·key”,·in·a·similar | 189 | generic_fk.py·-·Illustrates·a·so-called·“generic·foreign·key”,·in·a·similar |
188 | fashion·to·that·of·popular·frameworks·such·as·Django,·ROR,·etc.·This·approach | 190 | fashion·to·that·of·popular·frameworks·such·as·Django,·ROR,·etc.·This·approach |
189 | bypasses·standard·referential·integrity·practices,·in·that·the·“foreign·key” | 191 | bypasses·standard·referential·integrity·practices,·in·that·the·“foreign·key” |
190 | column·is·not·actually·constrained·to·refer·to·any·particular·table;·instead, | 192 | column·is·not·actually·constrained·to·refer·to·any·particular·table;·instead, |
191 | in-application·logic·is·used·to·determine·which·table·is·referenced. | 193 | in-application·logic·is·used·to·determine·which·table·is·referenced. |
192 | table_per_association.py·-·Illustrates·a·mixin·which·provides·a·generic | ||
193 | association·via·a·individually·generated·association·tables·for·each·parent | ||
194 | class.·The·associated·objects·themselves·are·persisted·in·a·single·table·shared | ||
195 | among·all·parents. | ||
196 | discriminator_on_association.py·-·Illustrates·a·mixin·which·provides·a·generic | 194 | discriminator_on_association.py·-·Illustrates·a·mixin·which·provides·a·generic |
197 | association·using·a·single·target·table·and·a·single·association·table, | 195 | association·using·a·single·target·table·and·a·single·association·table, |
198 | referred·to·by·all·parent·tables.·The·association·table·contains·a | 196 | referred·to·by·all·parent·tables.·The·association·table·contains·a |
199 | “discriminator”·column·which·determines·what·type·of·parent·object·associates | 197 | “discriminator”·column·which·determines·what·type·of·parent·object·associates |
200 | to·each·particular·row·in·the·association·table. | 198 | to·each·particular·row·in·the·association·table. |
199 | table_per_related.py·-·Illustrates·a·generic·association·which·persists | ||
200 | association·objects·within·individual·tables,·each·one·generated·to·persist | ||
201 | those·objects·on·behalf·of·a·particular·parent·class. | ||
201 | ****·Large·Collections¶·**** | 202 | ****·Large·Collections¶·**** |
202 | Large·collection·example. | 203 | Large·collection·example. |
203 | Illustrates·the·options·to·use·with·relationship()·when·the·list·of·related | 204 | Illustrates·the·options·to·use·with·relationship()·when·the·list·of·related |
204 | objects·is·very·large,·including: | 205 | objects·is·very·large,·including: |
205 | ····*·“dynamic”·relationships·which·query·slices·of·data·as·accessed | 206 | ····*·“dynamic”·relationships·which·query·slices·of·data·as·accessed |
206 | ····*·how·to·use·ON·DELETE·CASCADE·in·conjunction·with·passive_deletes=True·to | 207 | ····*·how·to·use·ON·DELETE·CASCADE·in·conjunction·with·passive_deletes=True·to |
Offset 262, 28 lines modified | Offset 263, 29 lines modified | ||
262 | $·python·-m·examples.performance·bulk_inserts·\ | 263 | $·python·-m·examples.performance·bulk_inserts·\ |
263 | ····--dburl·mysql+mysqldb://scott:tiger@localhost/test·\ | 264 | ····--dburl·mysql+mysqldb://scott:tiger@localhost/test·\ |
264 | ····--profile·--num·1000 | 265 | ····--profile·--num·1000 |
265 | See·also | 266 | See·also |
266 | How_can_I_profile_a_SQLAlchemy_powered_application? | 267 | How_can_I_profile_a_SQLAlchemy_powered_application? |
267 | ***·File·Listing¶·*** | 268 | ***·File·Listing¶·*** |
268 | Listing·of·files: | 269 | Listing·of·files: |
270 | ····*·single_inserts.py·-·In·this·series·of·tests,·we’re·looking·at·a·method | ||
271 | ······that·inserts·a·row·within·a·distinct·transaction,·and·afterwards·returns | ||
272 | ······to·essentially·a·“closed”·state.·This·would·be·analogous·to·an·API·call | ||
273 | ······that·starts·up·a·database·connection,·inserts·the·row,·commits·and | ||
274 | ······closes. | ||
269 | 275 | short_selects.py·-·This·series·of·tests·illustrates·different·ways·to·SELECT·a | |
270 | 276 | single·record·by·primary·key | |
271 | _ | 277 | bulk_updates.py·-·This·series·of·tests·will·illustrate·different·ways·to·UPDATE |
278 | a·large·number·of·rows·in·bulk·(under·construction!·there’s·just·one·test·at | ||
279 | the·moment) | ||
272 | large_resultsets.py·-·In·this·series·of·tests,·we·are·looking·at·time·to·load·a | 280 | large_resultsets.py·-·In·this·series·of·tests,·we·are·looking·at·time·to·load·a |
273 | large·number·of·very·small·and·simple·rows. | 281 | large·number·of·very·small·and·simple·rows. |
282 | __main__.py·-·Allows·the·examples/performance·package·to·be·run·as·a·script. | ||
274 | single_inserts.py·-·In·this·series·of·tests,·we’re·looking·at·a·method·that | ||
275 | inserts·a·row·within·a·distinct·transaction,·and·afterwards·returns·to | ||
276 | essentially·a·“closed”·state.·This·would·be·analogous·to·an·API·call·that | ||
277 | starts·up·a·database·connection,·inserts·the·row,·commits·and·closes. | ||
278 | bulk_inserts.py·-·This·series·of·tests·illustrates·different·ways·to·INSERT·a | 283 | bulk_inserts.py·-·This·series·of·tests·illustrates·different·ways·to·INSERT·a |
279 | large·number·of·rows·in·bulk. | 284 | large·number·of·rows·in·bulk. |
280 | bulk_updates.py·-·This·series·of·tests·will·illustrate·different·ways·to·UPDATE | ||
281 | a·large·number·of·rows·in·bulk·(under·construction!·there’s·just·one·test·at | ||
282 | the·moment) | ||
283 | ***·Running·all·tests·with·time¶·*** | 285 | ***·Running·all·tests·with·time¶·*** |
284 | This·is·the·default·form·of·run: | 286 | This·is·the·default·form·of·run: |
285 | $·python·-m·examples.performance·single_inserts | 287 | $·python·-m·examples.performance·single_inserts |
286 | Tests·to·run:·test_orm_commit,·test_bulk_save, | 288 | Tests·to·run:·test_orm_commit,·test_bulk_save, |
287 | ··············test_bulk_insert_dictionaries,·test_core, | 289 | ··············test_bulk_insert_dictionaries,·test_core, |
288 | ··············test_core_query_caching,·test_dbapi_raw_w_connect, | 290 | ··············test_core_query_caching,·test_dbapi_raw_w_connect, |
Offset 424, 20 lines modified | Offset 426, 20 lines modified | ||
424 | test_subqueryload·:·load·everything,·subquery·eager·loading.·(1000·iterations); | 426 | test_subqueryload·:·load·everything,·subquery·eager·loading.·(1000·iterations); |
425 | total·time·2.977696·sec | 427 | total·time·2.977696·sec |
426 | ****·Relationship·Join·Conditions¶·**** | 428 | ****·Relationship·Join·Conditions¶·**** |
427 | Examples·of·various·relationship()·configurations,·which·make·use·of·the | 429 | Examples·of·various·relationship()·configurations,·which·make·use·of·the |
428 | primaryjoin·argument·to·compose·special·types·of·join·conditions. | 430 | primaryjoin·argument·to·compose·special·types·of·join·conditions. |
429 | Listing·of·files: | 431 | Listing·of·files: |
432 | ····*·threeway.py·-·Illustrate·a·“three·way·join”·-·where·a·primary·table·joins | ||
433 | ······to·a·remote·table·via·an·association·table,·but·then·the·primary·table | ||
434 | ······also·needs·to·refer·to·some·columns·in·the·remote·table·directly. | ||
430 | 435 | cast.py·-·Illustrate·a·relationship()·that·joins·two·columns·where·those | |
431 | 436 | columns·are·not·of·the·same·type,·and·a·CAST·must·be·used·on·the·SQL·side·in | |
432 | 437 | order·to·match·them. | |
433 | threeway.py·-·Illustrate·a·“three·way·join”·-·where·a·primary·table·joins·to·a | ||
Max diff block lines reached; 7546/15415 bytes (48.95%) of diff not shown. |
Offset 8497, 20 lines modified | Offset 8497, 20 lines modified | ||
8497 | ········"3414":·[13,·25], | 8497 | ········"3414":·[13,·25], |
8498 | ········"alchemy2":·13, | 8498 | ········"alchemy2":·13, |
8499 | ········"4644":·13, | 8499 | ········"4644":·13, |
8500 | ········"5649":·13, | 8500 | ········"5649":·13, |
8501 | ········"get_sequence_nam":·[13,·48,·52], | 8501 | ········"get_sequence_nam":·[13,·48,·52], |
8502 | ········"2056":·13, | 8502 | ········"2056":·13, |
8503 | ········"4755":·13, | 8503 | ········"4755":·13, |
8504 | ········"4524":·13, | ||
8504 | ········"upfront":·13, | 8505 | ········"upfront":·13, |
8505 | ········"returns_unicode_str":·[13,·48], | 8506 | ········"returns_unicode_str":·[13,·48], |
8506 | ········"returns_condit":·[13,·59], | 8507 | ········"returns_condit":·[13,·59], |
8507 | ········"returns_byt":·[13,·59], | 8508 | ········"returns_byt":·[13,·59], |
8508 | ········"5315":·13, | 8509 | ········"5315":·13, |
8509 | ········"4524":·13, | ||
8510 | ········"hundr":·[13,·21,·24,·25,·31,·76,·136,·137,·155], | 8510 | ········"hundr":·[13,·21,·24,·25,·31,·76,·136,·137,·155], |
8511 | ········"4645":·[13,·25], | 8511 | ········"4645":·[13,·25], |
8512 | ········"4808":·[13,·25], | 8512 | ········"4808":·[13,·25], |
8513 | ········"5004":·[13,·25], | 8513 | ········"5004":·[13,·25], |
8514 | ········"har":·[13,·25], | 8514 | ········"har":·[13,·25], |
8515 | ········"4712":·13, | 8515 | ········"4712":·13, |
8516 | ········"5526":·[13,·25], | 8516 | ········"5526":·[13,·25], |
Offset 12439, 17 lines modified | Offset 12439, 17 lines modified | ||
12439 | ········"n5":·98, | 12439 | ········"n5":·98, |
12440 | ········"add_neighbor":·98, | 12440 | ········"add_neighbor":·98, |
12441 | ········"higher_neighbor":·98, | 12441 | ········"higher_neighbor":·98, |
12442 | ········"directed_graph":·98, | 12442 | ········"directed_graph":·98, |
12443 | ········"supplier":·98, | 12443 | ········"supplier":·98, |
12444 | ········"hasaddress":·98, | 12444 | ········"hasaddress":·98, |
12445 | ········"generic_fk":·98, | 12445 | ········"generic_fk":·98, |
12446 | ········"table_per_rel":·98, | ||
12447 | ········"ror":·98, | ||
12448 | ········"table_per_associ":·98, | 12446 | ········"table_per_associ":·98, |
12447 | ········"ror":·98, | ||
12448 | ········"table_per_rel":·98, | ||
12449 | ········"materialized_path":·98, | 12449 | ········"materialized_path":·98, |
12450 | ········"nested_set":·98, | 12450 | ········"nested_set":·98, |
12451 | ········"single_insert":·98, | 12451 | ········"single_insert":·98, |
12452 | ········"bulk_upd":·98, | 12452 | ········"bulk_upd":·98, |
12453 | ········"test_orm_commit":·98, | 12453 | ········"test_orm_commit":·98, |
12454 | ········"test_bulk_insert_dictionari":·98, | 12454 | ········"test_bulk_insert_dictionari":·98, |
12455 | ········"test_cor":·98, | 12455 | ········"test_cor":·98, |
Offset 12504, 34 lines modified | Offset 12504, 34 lines modified | ||
12504 | ········"sc1":·98, | 12504 | ········"sc1":·98, |
12505 | ········"sc1modifi":·98, | 12505 | ········"sc1modifi":·98, |
12506 | ········"someclasshistori":·98, | 12506 | ········"someclasshistori":·98, |
12507 | ········"__history_mapper__":·98, | 12507 | ········"__history_mapper__":·98, |
12508 | ········"_history_mapp":·98, | 12508 | ········"_history_mapp":·98, |
12509 | ········"somehistoryclass":·98, | 12509 | ········"somehistoryclass":·98, |
12510 | ········"use_mapper_vers":·98, | 12510 | ········"use_mapper_vers":·98, |
12511 | ········"versioned_rows_w_versionid":·98, | ||
12512 | ········"versioned_update_old_row":·98, | 12511 | ········"versioned_update_old_row":·98, |
12513 | ········"versioned_map":·98, | 12512 | ········"versioned_map":·98, |
12513 | ········"versioned_rows_w_versionid":·98, | ||
12514 | ········"breviti":·98, | 12514 | ········"breviti":·98, |
12515 | ········"shrew":·98, | 12515 | ········"shrew":·98, |
12516 | ········"anim":·98, | 12516 | ········"anim":·98, |
12517 | ········"cute":·98, | 12517 | ········"cute":·98, |
12518 | ········"weasel":·98, | 12518 | ········"weasel":·98, |
12519 | ········"poison":·98, | 12519 | ········"poison":·98, |
12520 | ········"animalfact":·98, | 12520 | ········"animalfact":·98, |
12521 | ········"custom_manag":·98, | 12521 | ········"custom_manag":·98, |
12522 | ········"weather":·98, | 12522 | ········"weather":·98, |
12523 | ········"contin":·98, | 12523 | ········"contin":·98, |
12524 | ········"spoken":·98, | 12524 | ········"spoken":·98, |
12525 | ········"separate_databas":·98, | 12525 | ········"separate_databas":·98, |
12526 | ········"separate_t":·98, | ||
12526 | ········"separate_schema_transl":·98, | 12527 | ········"separate_schema_transl":·98, |
12527 | ········"schema_translates_map":·98, | 12528 | ········"schema_translates_map":·98, |
12528 | ········"separate_t":·98, | ||
12529 | ········"temporal_rang":·98, | ||
12530 | ········"filter_publ":·98, | 12529 | ········"filter_publ":·98, |
12530 | ········"temporal_rang":·98, | ||
12531 | ········"demo":·98, | 12531 | ········"demo":·98, |
12532 | ········"datafil":·98, | 12532 | ········"datafil":·98, |
12533 | ········"helloworld":·98, | 12533 | ········"helloworld":·98, |
12534 | ········"local_session_cach":·98, | 12534 | ········"local_session_cach":·98, |
12535 | ········"datamodel":·98, | 12535 | ········"datamodel":·98, |
12536 | ········"postalcod":·98, | 12536 | ········"postalcod":·98, |
12537 | ········"citi":·[98,·124,·133], | 12537 | ········"citi":·[98,·124,·133], |