Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
1 | · | 1 | ·034143d3b673d02ed73a1ba5a1b7f1fc·3720236·doc·optional·python-sqlalchemy-doc_1.4.50+ds1-1_all.deb |
2 | ·a35a05381daf16b69a8c4e74b15c6441·62104·debug·optional·python3-sqlalchemy-ext-dbgsym_1.4.50+ds1-1_i386.deb | 2 | ·a35a05381daf16b69a8c4e74b15c6441·62104·debug·optional·python3-sqlalchemy-ext-dbgsym_1.4.50+ds1-1_i386.deb |
3 | ·af1e87ed481dbbc93c449748c4af29ce·21488·python·optional·python3-sqlalchemy-ext_1.4.50+ds1-1_i386.deb | 3 | ·af1e87ed481dbbc93c449748c4af29ce·21488·python·optional·python3-sqlalchemy-ext_1.4.50+ds1-1_i386.deb |
4 | ·7b9b7746123a45060be2c12bd6e80ed4·1009400·python·optional·python3-sqlalchemy_1.4.50+ds1-1_all.deb | 4 | ·7b9b7746123a45060be2c12bd6e80ed4·1009400·python·optional·python3-sqlalchemy_1.4.50+ds1-1_all.deb |
Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | -rw-r--r--···0········0········0········4·2024-01-05·13:47:47.000000·debian-binary | 1 | -rw-r--r--···0········0········0········4·2024-01-05·13:47:47.000000·debian-binary |
2 | -rw-r--r--···0········0········0····133 | 2 | -rw-r--r--···0········0········0····13380·2024-01-05·13:47:47.000000·control.tar.xz |
3 | -rw-r--r--···0········0········0··3706 | 3 | -rw-r--r--···0········0········0··3706664·2024-01-05·13:47:47.000000·data.tar.xz |
Offset 590, 15 lines modified | Offset 590, 15 lines modified | ||
590 | <section·id="changelog"> | 590 | <section·id="changelog"> |
591 | <h1>1.0·Changelog<a·class="headerlink"·href="#changelog"·title="Link·to·this·heading">¶</a></h1> | 591 | <h1>1.0·Changelog<a·class="headerlink"·href="#changelog"·title="Link·to·this·heading">¶</a></h1> |
592 | <section·id="change-1.0.19"> | 592 | <section·id="change-1.0.19"> |
593 | <h2·class="release-version">1.0.19<a·class="headerlink"·href="#change-1.0.19"·title="Link·to·this·heading">¶</a></h2> | 593 | <h2·class="release-version">1.0.19<a·class="headerlink"·href="#change-1.0.19"·title="Link·to·this·heading">¶</a></h2> |
594 | Released:·August·3,·2017<section·id="change-1.0.19-oracle"> | 594 | Released:·August·3,·2017<section·id="change-1.0.19-oracle"> |
595 | <h3>oracle<a·class="headerlink"·href="#change-1.0.19-oracle"·title="Link·to·this·heading">¶</a></h3> | 595 | <h3>oracle<a·class="headerlink"·href="#change-1.0.19-oracle"·title="Link·to·this·heading">¶</a></h3> |
596 | <ul·class="simple"> | 596 | <ul·class="simple"> |
597 | <li><p·class="caption"·id="change-1.0.19-0"><span·class="target"·id="change-ec8fd72ca0ab2d0123169536543fb6cd"><strong>[oracle]·[performance | 597 | <li><p·class="caption"·id="change-1.0.19-0"><span·class="target"·id="change-ec8fd72ca0ab2d0123169536543fb6cd"><strong>[oracle]·[bug]·[performance]·[py2k]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-ec8fd72ca0ab2d0123169536543fb6cd">¶</a></span><p>Fixed·performance·regression·caused·by·the·fix·for·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/3937">#3937</a>·where |
598 | cx_Oracle·as·of·version·5.3·dropped·the·<code·class="docutils·literal·notranslate"><span·class="pre">.UNICODE</span></code>·symbol·from·its | 598 | cx_Oracle·as·of·version·5.3·dropped·the·<code·class="docutils·literal·notranslate"><span·class="pre">.UNICODE</span></code>·symbol·from·its |
599 | namespace,··which·was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being | 599 | namespace,··which·was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being |
600 | turned·on·unconditionally,·which·invokes·functions·on·the·SQLAlchemy | 600 | turned·on·unconditionally,·which·invokes·functions·on·the·SQLAlchemy |
601 | side·which·convert·all·strings·to·unicode·unconditionally·and·causing | 601 | side·which·convert·all·strings·to·unicode·unconditionally·and·causing |
602 | a·performance·impact.··In·fact,·per·cx_Oracle’s·author·the | 602 | a·performance·impact.··In·fact,·per·cx_Oracle’s·author·the |
603 | “WITH_UNICODE”·mode·has·been·removed·entirely·as·of·5.1,·so·the·expensive·unicode | 603 | “WITH_UNICODE”·mode·has·been·removed·entirely·as·of·5.1,·so·the·expensive·unicode |
604 | conversion·functions·are·no·longer·necessary·and·are·disabled·if | 604 | conversion·functions·are·no·longer·necessary·and·are·disabled·if |
Offset 333, 15 lines modified | Offset 333, 15 lines modified | ||
333 | ······················#·oracle | 333 | ······················#·oracle |
334 | ······················#·tests | 334 | ······················#·tests |
335 | ······················#·misc | 335 | ······················#·misc |
336 | ******·1.0·Changelog¶·****** | 336 | ******·1.0·Changelog¶·****** |
337 | *****·1.0.19¶·***** | 337 | *****·1.0.19¶·***** |
338 | Released:·August·3,·2017 | 338 | Released:·August·3,·2017 |
339 | ****·oracle¶·**** | 339 | ****·oracle¶·**** |
340 | ····*·[oracle]·[performance | 340 | ····*·[oracle]·[bug]·[performance]·[py2k]·¶ |
341 | ······Fixed·performance·regression·caused·by·the·fix·for·#3937·where·cx_Oracle | 341 | ······Fixed·performance·regression·caused·by·the·fix·for·#3937·where·cx_Oracle |
342 | ······as·of·version·5.3·dropped·the·.UNICODE·symbol·from·its·namespace,·which | 342 | ······as·of·version·5.3·dropped·the·.UNICODE·symbol·from·its·namespace,·which |
343 | ······was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being·turned·on | 343 | ······was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being·turned·on |
344 | ······unconditionally,·which·invokes·functions·on·the·SQLAlchemy·side·which | 344 | ······unconditionally,·which·invokes·functions·on·the·SQLAlchemy·side·which |
345 | ······convert·all·strings·to·unicode·unconditionally·and·causing·a·performance | 345 | ······convert·all·strings·to·unicode·unconditionally·and·causing·a·performance |
346 | ······impact.·In·fact,·per·cx_Oracle’s·author·the·“WITH_UNICODE”·mode·has·been | 346 | ······impact.·In·fact,·per·cx_Oracle’s·author·the·“WITH_UNICODE”·mode·has·been |
347 | ······removed·entirely·as·of·5.1,·so·the·expensive·unicode·conversion·functions | 347 | ······removed·entirely·as·of·5.1,·so·the·expensive·unicode·conversion·functions |
Offset 875, 15 lines modified | Offset 875, 15 lines modified | ||
875 | </section> | 875 | </section> |
876 | </section> | 876 | </section> |
877 | <section·id="change-1.1.13"> | 877 | <section·id="change-1.1.13"> |
878 | <h2·class="release-version">1.1.13<a·class="headerlink"·href="#change-1.1.13"·title="Link·to·this·heading">¶</a></h2> | 878 | <h2·class="release-version">1.1.13<a·class="headerlink"·href="#change-1.1.13"·title="Link·to·this·heading">¶</a></h2> |
879 | Released:·August·3,·2017<section·id="change-1.1.13-oracle"> | 879 | Released:·August·3,·2017<section·id="change-1.1.13-oracle"> |
880 | <h3>oracle<a·class="headerlink"·href="#change-1.1.13-oracle"·title="Link·to·this·heading">¶</a></h3> | 880 | <h3>oracle<a·class="headerlink"·href="#change-1.1.13-oracle"·title="Link·to·this·heading">¶</a></h3> |
881 | <ul·class="simple"> | 881 | <ul·class="simple"> |
882 | <li><p·class="caption"·id="change-1.1.13-0"><span·class="target"·id="change-91e9180bc7f72ab73ee81944ee6c0b5b"><strong>[oracle]·[performance | 882 | <li><p·class="caption"·id="change-1.1.13-0"><span·class="target"·id="change-91e9180bc7f72ab73ee81944ee6c0b5b"><strong>[oracle]·[bug]·[performance]·[py2k]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-91e9180bc7f72ab73ee81944ee6c0b5b">¶</a></span><p>Fixed·performance·regression·caused·by·the·fix·for·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/3937">#3937</a>·where |
883 | cx_Oracle·as·of·version·5.3·dropped·the·<code·class="docutils·literal·notranslate"><span·class="pre">.UNICODE</span></code>·symbol·from·its | 883 | cx_Oracle·as·of·version·5.3·dropped·the·<code·class="docutils·literal·notranslate"><span·class="pre">.UNICODE</span></code>·symbol·from·its |
884 | namespace,··which·was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being | 884 | namespace,··which·was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being |
885 | turned·on·unconditionally,·which·invokes·functions·on·the·SQLAlchemy | 885 | turned·on·unconditionally,·which·invokes·functions·on·the·SQLAlchemy |
886 | side·which·convert·all·strings·to·unicode·unconditionally·and·causing | 886 | side·which·convert·all·strings·to·unicode·unconditionally·and·causing |
887 | a·performance·impact.··In·fact,·per·cx_Oracle’s·author·the | 887 | a·performance·impact.··In·fact,·per·cx_Oracle’s·author·the |
888 | “WITH_UNICODE”·mode·has·been·removed·entirely·as·of·5.1,·so·the·expensive·unicode | 888 | “WITH_UNICODE”·mode·has·been·removed·entirely·as·of·5.1,·so·the·expensive·unicode |
889 | conversion·functions·are·no·longer·necessary·and·are·disabled·if | 889 | conversion·functions·are·no·longer·necessary·and·are·disabled·if |
Offset 529, 15 lines modified | Offset 529, 15 lines modified | ||
529 | ······left·side·of·the·range·to·be·positive·and·for·the·right·to·be·negative, | 529 | ······left·side·of·the·range·to·be·positive·and·for·the·right·to·be·negative, |
530 | ······e.g.·(1,·3)·is·“1·FOLLOWING·AND·3·FOLLOWING”. | 530 | ······e.g.·(1,·3)·is·“1·FOLLOWING·AND·3·FOLLOWING”. |
531 | ······References:·#4053 | 531 | ······References:·#4053 |
532 | *****·1.1.13¶·***** | 532 | *****·1.1.13¶·***** |
533 | Released:·August·3,·2017 | 533 | Released:·August·3,·2017 |
534 | ****·oracle¶·**** | 534 | ****·oracle¶·**** |
535 | ····*·[oracle]·[performance | 535 | ····*·[oracle]·[bug]·[performance]·[py2k]·¶ |
536 | ······Fixed·performance·regression·caused·by·the·fix·for·#3937·where·cx_Oracle | 536 | ······Fixed·performance·regression·caused·by·the·fix·for·#3937·where·cx_Oracle |
537 | ······as·of·version·5.3·dropped·the·.UNICODE·symbol·from·its·namespace,·which | 537 | ······as·of·version·5.3·dropped·the·.UNICODE·symbol·from·its·namespace,·which |
538 | ······was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being·turned·on | 538 | ······was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being·turned·on |
539 | ······unconditionally,·which·invokes·functions·on·the·SQLAlchemy·side·which | 539 | ······unconditionally,·which·invokes·functions·on·the·SQLAlchemy·side·which |
540 | ······convert·all·strings·to·unicode·unconditionally·and·causing·a·performance | 540 | ······convert·all·strings·to·unicode·unconditionally·and·causing·a·performance |
541 | ······impact.·In·fact,·per·cx_Oracle’s·author·the·“WITH_UNICODE”·mode·has·been | 541 | ······impact.·In·fact,·per·cx_Oracle’s·author·the·“WITH_UNICODE”·mode·has·been |
542 | ······removed·entirely·as·of·5.1,·so·the·expensive·unicode·conversion·functions | 542 | ······removed·entirely·as·of·5.1,·so·the·expensive·unicode·conversion·functions |
Offset 2979, 15 lines modified | Offset 2979, 15 lines modified | ||
2979 | </p> | 2979 | </p> |
2980 | </li> | 2980 | </li> |
2981 | </ul> | 2981 | </ul> |
2982 | </section> | 2982 | </section> |
2983 | <section·id="change-1.2.0b3-oracle"> | 2983 | <section·id="change-1.2.0b3-oracle"> |
2984 | <h3>oracle<a·class="headerlink"·href="#change-1.2.0b3-oracle"·title="Link·to·this·heading">¶</a></h3> | 2984 | <h3>oracle<a·class="headerlink"·href="#change-1.2.0b3-oracle"·title="Link·to·this·heading">¶</a></h3> |
2985 | <ul·class="simple"> | 2985 | <ul·class="simple"> |
2986 | <li><p·class="caption"·id="change-1.2.0b3-43"><span·class="target"·id="change-7cb9a3370310381d19eb1a17c5a84a91"><strong>[oracle]·[performance | 2986 | <li><p·class="caption"·id="change-1.2.0b3-43"><span·class="target"·id="change-7cb9a3370310381d19eb1a17c5a84a91"><strong>[oracle]·[bug]·[performance]·[py2k]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-7cb9a3370310381d19eb1a17c5a84a91">¶</a></span><p>Fixed·performance·regression·caused·by·the·fix·for·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/3937">#3937</a>·where |
2987 | cx_Oracle·as·of·version·5.3·dropped·the·<code·class="docutils·literal·notranslate"><span·class="pre">.UNICODE</span></code>·symbol·from·its | 2987 | cx_Oracle·as·of·version·5.3·dropped·the·<code·class="docutils·literal·notranslate"><span·class="pre">.UNICODE</span></code>·symbol·from·its |
2988 | namespace,··which·was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being | 2988 | namespace,··which·was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being |
2989 | turned·on·unconditionally,·which·invokes·functions·on·the·SQLAlchemy | 2989 | turned·on·unconditionally,·which·invokes·functions·on·the·SQLAlchemy |
2990 | side·which·convert·all·strings·to·unicode·unconditionally·and·causing | 2990 | side·which·convert·all·strings·to·unicode·unconditionally·and·causing |
2991 | a·performance·impact.··In·fact,·per·cx_Oracle’s·author·the | 2991 | a·performance·impact.··In·fact,·per·cx_Oracle’s·author·the |
2992 | “WITH_UNICODE”·mode·has·been·removed·entirely·as·of·5.1,·so·the·expensive·unicode | 2992 | “WITH_UNICODE”·mode·has·been·removed·entirely·as·of·5.1,·so·the·expensive·unicode |
2993 | conversion·functions·are·no·longer·necessary·and·are·disabled·if | 2993 | conversion·functions·are·no·longer·necessary·and·are·disabled·if |
Offset 2003, 15 lines modified | Offset 2003, 15 lines modified | ||
2003 | [mssql]·[bug]·¶ | 2003 | [mssql]·[bug]·¶ |
2004 | Added·a·rule·to·SQL·Server·index·reflection·to·ignore·the·so-called·“heap” | 2004 | Added·a·rule·to·SQL·Server·index·reflection·to·ignore·the·so-called·“heap” |
2005 | index·that·is·implicitly·present·on·a·table·that·does·not·specify·a·clustered | 2005 | index·that·is·implicitly·present·on·a·table·that·does·not·specify·a·clustered |
2006 | index. | 2006 | index. |
2007 | References:·#4059 | 2007 | References:·#4059 |
2008 | ****·oracle¶·**** | 2008 | ****·oracle¶·**** |
2009 | ····*·[oracle]·[performance | 2009 | ····*·[oracle]·[bug]·[performance]·[py2k]·¶ |
2010 | ······Fixed·performance·regression·caused·by·the·fix·for·#3937·where·cx_Oracle | 2010 | ······Fixed·performance·regression·caused·by·the·fix·for·#3937·where·cx_Oracle |
2011 | ······as·of·version·5.3·dropped·the·.UNICODE·symbol·from·its·namespace,·which | 2011 | ······as·of·version·5.3·dropped·the·.UNICODE·symbol·from·its·namespace,·which |
2012 | ······was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being·turned·on | 2012 | ······was·interpreted·as·cx_Oracle’s·“WITH_UNICODE”·mode·being·turned·on |
2013 | ······unconditionally,·which·invokes·functions·on·the·SQLAlchemy·side·which | 2013 | ······unconditionally,·which·invokes·functions·on·the·SQLAlchemy·side·which |
2014 | ······convert·all·strings·to·unicode·unconditionally·and·causing·a·performance | 2014 | ······convert·all·strings·to·unicode·unconditionally·and·causing·a·performance |
2015 | ······impact.·In·fact,·per·cx_Oracle’s·author·the·“WITH_UNICODE”·mode·has·been | 2015 | ······impact.·In·fact,·per·cx_Oracle’s·author·the·“WITH_UNICODE”·mode·has·been |
2016 | ······removed·entirely·as·of·5.1,·so·the·expensive·unicode·conversion·functions | 2016 | ······removed·entirely·as·of·5.1,·so·the·expensive·unicode·conversion·functions |
Offset 1803, 30 lines modified | Offset 1803, 30 lines modified | ||
1803 | </p> | 1803 | </p> |
1804 | </li> | 1804 | </li> |
1805 | </ul> | 1805 | </ul> |
1806 | </section> | 1806 | </section> |
1807 | <section·id="change-1.3.17-oracle"> | 1807 | <section·id="change-1.3.17-oracle"> |
1808 | <h3>oracle<a·class="headerlink"·href="#change-1.3.17-oracle"·title="Link·to·this·heading">¶</a></h3> | 1808 | <h3>oracle<a·class="headerlink"·href="#change-1.3.17-oracle"·title="Link·to·this·heading">¶</a></h3> |
1809 | <ul·class="simple"> | 1809 | <ul·class="simple"> |
1810 | <li><p·class="caption"·id="change-1.3.17-14"><span·class="target"·id="change-aae71399cbb61c78ebaa99fe5ebbc85f"><strong>[oracle]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-aae71399cbb61c78ebaa99fe5ebbc85f">¶</a></span><p>Some·modifications·to·how·the·cx_oracle·dialect·sets·up·per-column | ||
1811 | outputtype·handlers·for·LOB·and·numeric·datatypes·to·adjust·for·potential | ||
1812 | changes·coming·in·cx_Oracle·8.</p> | ||
1813 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5246">#5246</a></p> | ||
1814 | </p> | ||
1815 | </li> | ||
1810 | <li><p·class="caption"·id="change-1.3.17-1 | 1816 | <li><p·class="caption"·id="change-1.3.17-15"><span·class="target"·id="change-cc5a1743d1951d72594d609e6e1a5c99"><strong>[oracle]·[bug]·[performance]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-cc5a1743d1951d72594d609e6e1a5c99">¶</a></span><p>Changed·the·implementation·of·fetching·CLOB·and·BLOB·objects·to·use |
1811 | cx_Oracle’s·native·implementation·which·fetches·CLOB/BLOB·objects·inline | 1817 | cx_Oracle’s·native·implementation·which·fetches·CLOB/BLOB·objects·inline |
1812 | with·other·result·columns,·rather·than·performing·a·separate·fetch.·As | 1818 | with·other·result·columns,·rather·than·performing·a·separate·fetch.·As |
1813 | always,·this·can·be·disabled·by·setting·auto_convert_lobs·to·False.</p> | 1819 | always,·this·can·be·disabled·by·setting·auto_convert_lobs·to·False.</p> |
1814 | <p>As·part·of·this·change,·the·behavior·of·a·CLOB·that·was·given·a·blank | 1820 | <p>As·part·of·this·change,·the·behavior·of·a·CLOB·that·was·given·a·blank |
1815 | string·on·INSERT·now·returns·None·on·SELECT,·which·is·now·consistent·with | 1821 | string·on·INSERT·now·returns·None·on·SELECT,·which·is·now·consistent·with |
1816 | that·of·VARCHAR·on·Oracle.</p> | 1822 | that·of·VARCHAR·on·Oracle.</p> |
1817 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5314">#5314</a></p> | 1823 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5314">#5314</a></p> |
1818 | </p> | 1824 | </p> |
1819 | </li> | 1825 | </li> |
1820 | <li><p·class="caption"·id="change-1.3.17-15"><span·class="target"·id="change-aae71399cbb61c78ebaa99fe5ebbc85f"><strong>[oracle]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-aae71399cbb61c78ebaa99fe5ebbc85f">¶</a></span><p>Some·modifications·to·how·the·cx_oracle·dialect·sets·up·per-column | ||
1821 | outputtype·handlers·for·LOB·and·numeric·datatypes·to·adjust·for·potential | ||
1822 | changes·coming·in·cx_Oracle·8.</p> | ||
1823 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5246">#5246</a></p> | ||
1824 | </p> | ||
1825 | </li> | ||
1826 | </ul> | 1826 | </ul> |
1827 | </section> | 1827 | </section> |
1828 | <section·id="change-1.3.17-firebird"> | 1828 | <section·id="change-1.3.17-firebird"> |
1829 | <h3>firebird<a·class="headerlink"·href="#change-1.3.17-firebird"·title="Link·to·this·heading">¶</a></h3> | 1829 | <h3>firebird<a·class="headerlink"·href="#change-1.3.17-firebird"·title="Link·to·this·heading">¶</a></h3> |
1830 | <ul·class="simple"> | 1830 | <ul·class="simple"> |
1831 | <li><p·class="caption"·id="change-1.3.17-16"><span·class="target"·id="change-3d26d8810b452ce62aee1841b6a4725d"><strong>[firebird]·[change]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-3d26d8810b452ce62aee1841b6a4725d">¶</a></span><p>Adjusted·dialect·loading·for·<code·class="docutils·literal·notranslate"><span·class="pre">firebird://</span></code>·URIs·so·the·external | 1831 | <li><p·class="caption"·id="change-1.3.17-16"><span·class="target"·id="change-3d26d8810b452ce62aee1841b6a4725d"><strong>[firebird]·[change]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-3d26d8810b452ce62aee1841b6a4725d">¶</a></span><p>Adjusted·dialect·loading·for·<code·class="docutils·literal·notranslate"><span·class="pre">firebird://</span></code>·URIs·so·the·external |
1832 | sqlalchemy-firebird·dialect·will·be·used·if·it·has·been·installed, | 1832 | sqlalchemy-firebird·dialect·will·be·used·if·it·has·been·installed, |
Offset 1214, 28 lines modified | Offset 1214, 28 lines modified | ||
1214 | [mssql]·[bug]·[reflection]·¶ | 1214 | [mssql]·[bug]·[reflection]·¶ |
1215 | Fix·a·regression·introduced·by·the·reflection·of·computed·column·in·MSSQL·when | 1215 | Fix·a·regression·introduced·by·the·reflection·of·computed·column·in·MSSQL·when |
1216 | using·SQL·server·versions·before·2012,·which·does·not·support·the·concat | 1216 | using·SQL·server·versions·before·2012,·which·does·not·support·the·concat |
1217 | function. | 1217 | function. |
1218 | References:·#5271 | 1218 | References:·#5271 |
1219 | ****·oracle¶·**** | 1219 | ****·oracle¶·**** |
1220 | ····*·[oracle]·[ | 1220 | ····*·[oracle]·[bug]·¶ |
1221 | ······Some·modifications·to·how·the·cx_oracle·dialect·sets·up·per-column | ||
1222 | ······outputtype·handlers·for·LOB·and·numeric·datatypes·to·adjust·for·potential | ||
1223 | ······changes·coming·in·cx_Oracle·8. | ||
1221 | ······Changed·the·implementation·of·fetching·CLOB·and·BLOB·objects·to·use | ||
1222 | ······cx_Oracle’s·native·implementation·which·fetches·CLOB/BLOB·objects·inline | ||
1223 | ······with·other·result·columns,·rather·than·performing·a·separate·fetch.·As | ||
1224 | ······always,·this·can·be·disabled·by·setting·auto_convert_lobs·to·False. | ||
1225 | ······As·part·of·this·change,·the·behavior·of·a·CLOB·that·was·given·a·blank | ||
1226 | ······string·on·INSERT·now·returns·None·on·SELECT,·which·is·now·consistent·with | ||
1227 | ······that·of·VARCHAR·on·Oracle. | ||
1228 | ······References:·#5 | 1224 | ······References:·#5246 |
1229 | [oracle]·[bug]·¶ | ||
1230 | Some·modifications·to·how·the·cx_oracle·dialect·sets·up·per-column·outputtype | ||
1231 | handlers·for·LOB·and·numeric·datatypes·to·adjust·for·potential·changes·coming | ||
1232 | 1225 | [oracle]·[bug]·[performance]·¶ | |
1226 | Changed·the·implementation·of·fetching·CLOB·and·BLOB·objects·to·use·cx_Oracle’s | ||
1227 | native·implementation·which·fetches·CLOB/BLOB·objects·inline·with·other·result | ||
1228 | columns,·rather·than·performing·a·separate·fetch.·As·always,·this·can·be | ||
1229 | disabled·by·setting·auto_convert_lobs·to·False. | ||
1230 | As·part·of·this·change,·the·behavior·of·a·CLOB·that·was·given·a·blank·string·on | ||
1231 | INSERT·now·returns·None·on·SELECT,·which·is·now·consistent·with·that·of·VARCHAR | ||
1232 | on·Oracle. | ||
1233 | References:·#5 | 1233 | References:·#5314 |
1234 | ****·firebird¶·**** | 1234 | ****·firebird¶·**** |
1235 | ····*·[firebird]·[change]·¶ | 1235 | ····*·[firebird]·[change]·¶ |
1236 | ······Adjusted·dialect·loading·for·firebird://·URIs·so·the·external·sqlalchemy- | 1236 | ······Adjusted·dialect·loading·for·firebird://·URIs·so·the·external·sqlalchemy- |
1237 | ······firebird·dialect·will·be·used·if·it·has·been·installed,·otherwise·fall | 1237 | ······firebird·dialect·will·be·used·if·it·has·been·installed,·otherwise·fall |
1238 | ······back·to·the·(now·deprecated)·internal·Firebird·dialect. | 1238 | ······back·to·the·(now·deprecated)·internal·Firebird·dialect. |
1239 | ······References:·#5278 | 1239 | ······References:·#5278 |
Offset 2857, 36 lines modified | Offset 2857, 36 lines modified | ||
2857 | attributes·and·entities·that·are·installed·as·part·of·an·<a·class="reference·internal"·href="../core/dml.html#sqlalchemy.sql.expression.Insert"·title="sqlalchemy.sql.expression.Insert"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Insert</span></code></a>, | 2857 | attributes·and·entities·that·are·installed·as·part·of·an·<a·class="reference·internal"·href="../core/dml.html#sqlalchemy.sql.expression.Insert"·title="sqlalchemy.sql.expression.Insert"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Insert</span></code></a>, |
2858 | <a·class="reference·internal"·href="../core/dml.html#sqlalchemy.sql.expression.Update"·title="sqlalchemy.sql.expression.Update"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Update</span></code></a>,·or·<a·class="reference·internal"·href="../core/dml.html#sqlalchemy.sql.expression.Delete"·title="sqlalchemy.sql.expression.Delete"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Delete</span></code></a>·construct.·The | 2858 | <a·class="reference·internal"·href="../core/dml.html#sqlalchemy.sql.expression.Update"·title="sqlalchemy.sql.expression.Update"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Update</span></code></a>,·or·<a·class="reference·internal"·href="../core/dml.html#sqlalchemy.sql.expression.Delete"·title="sqlalchemy.sql.expression.Delete"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Delete</span></code></a>·construct.·The |
2859 | <a·class="reference·internal"·href="../core/selectable.html#sqlalchemy.sql.expression.Select.column_descriptions"·title="sqlalchemy.sql.expression.Select.column_descriptions"><code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">Select.column_descriptions</span></code></a>·accessor·is·also·now·implemented·for | 2859 | <a·class="reference·internal"·href="../core/selectable.html#sqlalchemy.sql.expression.Select.column_descriptions"·title="sqlalchemy.sql.expression.Select.column_descriptions"><code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">Select.column_descriptions</span></code></a>·accessor·is·also·now·implemented·for |
2860 | Core-only·selectables.</p> | 2860 | Core-only·selectables.</p> |
2861 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7861">#7861</a></p> | 2861 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7861">#7861</a></p> |
2862 | </p> | 2862 | </p> |
2863 | </li> | 2863 | </li> |
2864 | <li><p·class="caption"·id="change-1.4.33-2"><span·class="target"·id="change-9e8374aab257ac3366e02a4907fc449a"><strong>[orm]·[performance]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-9e8374aab257ac3366e02a4907fc449a">¶</a></span><p>Improvements·in·memory·usage·by·the·ORM,·removing·a·significant·set·of | ||
2865 | intermediary·expression·objects·that·are·typically·stored·when·a·copy·of·an | ||
2866 | expression·object·is·created.·These·clones·have·been·greatly·reduced, | ||
2867 | reducing·the·number·of·total·expression·objects·stored·in·memory·by | ||
2868 | ORM·mappings·by·about·30%.</p> | ||
2869 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7823">#7823</a></p> | ||
2870 | </p> | ||
2871 | </li> | ||
2872 | <li><p·class="caption"·id="change-1.4.33- | 2864 | <li><p·class="caption"·id="change-1.4.33-2"><span·class="target"·id="change-6e997a9f24c37627b3bc1af26a5a2c9d"><strong>[orm]·[bug]·[regression]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-6e997a9f24c37627b3bc1af26a5a2c9d">¶</a></span><p>Fixed·regression·in·“dynamic”·loader·strategy·where·the |
2873 | <a·class="reference·internal"·href="../orm/query.html#sqlalchemy.orm.Query.filter_by"·title="sqlalchemy.orm.Query.filter_by"><code·class="xref·py·py-meth·docutils·literal·notranslate"><span·class="pre">Query.filter_by()</span></code></a>·method·would·not·be·given·an·appropriate | 2865 | <a·class="reference·internal"·href="../orm/query.html#sqlalchemy.orm.Query.filter_by"·title="sqlalchemy.orm.Query.filter_by"><code·class="xref·py·py-meth·docutils·literal·notranslate"><span·class="pre">Query.filter_by()</span></code></a>·method·would·not·be·given·an·appropriate |
2874 | entity·to·filter·from,·in·the·case·where·a·“secondary”·table·were·present | 2866 | entity·to·filter·from,·in·the·case·where·a·“secondary”·table·were·present |
2875 | in·the·relationship·being·queried·and·the·mapping·were·against·something | 2867 | in·the·relationship·being·queried·and·the·mapping·were·against·something |
2876 | complex·such·as·a·“with·polymorphic”.</p> | 2868 | complex·such·as·a·“with·polymorphic”.</p> |
2877 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7868">#7868</a></p> | 2869 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7868">#7868</a></p> |
2878 | </p> | 2870 | </p> |
2879 | </li> | 2871 | </li> |
2880 | <li><p·class="caption"·id="change-1.4.33- | 2872 | <li><p·class="caption"·id="change-1.4.33-3"><span·class="target"·id="change-4964a00cd636f3fbb10595151e1fb258"><strong>[orm]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-4964a00cd636f3fbb10595151e1fb258">¶</a></span><p>Fixed·bug·where·<a·class="reference·internal"·href="../orm/composites.html#sqlalchemy.orm.composite"·title="sqlalchemy.orm.composite"><code·class="xref·py·py-func·docutils·literal·notranslate"><span·class="pre">composite()</span></code></a>·attributes·would·not·work·in |
2881 | conjunction·with·the·<a·class="reference·internal"·href="../orm/inheritance_loading.html#sqlalchemy.orm.selectin_polymorphic"·title="sqlalchemy.orm.selectin_polymorphic"><code·class="xref·py·py-func·docutils·literal·notranslate"><span·class="pre">selectin_polymorphic()</span></code></a>·loader·strategy·for | 2873 | conjunction·with·the·<a·class="reference·internal"·href="../orm/inheritance_loading.html#sqlalchemy.orm.selectin_polymorphic"·title="sqlalchemy.orm.selectin_polymorphic"><code·class="xref·py·py-func·docutils·literal·notranslate"><span·class="pre">selectin_polymorphic()</span></code></a>·loader·strategy·for |
2882 | joined·table·inheritance.</p> | 2874 | joined·table·inheritance.</p> |
2883 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7801">#7801</a></p> | 2875 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7801">#7801</a></p> |
2884 | </p> | 2876 | </p> |
2885 | </li> | 2877 | </li> |
2878 | <li><p·class="caption"·id="change-1.4.33-4"><span·class="target"·id="change-9e8374aab257ac3366e02a4907fc449a"><strong>[orm]·[bug]·[performance]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-9e8374aab257ac3366e02a4907fc449a">¶</a></span><p>Improvements·in·memory·usage·by·the·ORM,·removing·a·significant·set·of | ||
2879 | intermediary·expression·objects·that·are·typically·stored·when·a·copy·of·an | ||
2880 | expression·object·is·created.·These·clones·have·been·greatly·reduced, | ||
2881 | reducing·the·number·of·total·expression·objects·stored·in·memory·by | ||
2882 | ORM·mappings·by·about·30%.</p> | ||
2883 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7823">#7823</a></p> | ||
2884 | </p> | ||
2885 | </li> | ||
2886 | <li><p·class="caption"·id="change-1.4.33-5"><span·class="target"·id="change-cd2db57c1e1cd1330ba16d255c704a3d"><strong>[orm]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-cd2db57c1e1cd1330ba16d255c704a3d">¶</a></span><p>Fixed·issue·where·the·<a·class="reference·internal"·href="../orm/inheritance_loading.html#sqlalchemy.orm.selectin_polymorphic"·title="sqlalchemy.orm.selectin_polymorphic"><code·class="xref·py·py-func·docutils·literal·notranslate"><span·class="pre">selectin_polymorphic()</span></code></a>·loader·option·would | 2886 | <li><p·class="caption"·id="change-1.4.33-5"><span·class="target"·id="change-cd2db57c1e1cd1330ba16d255c704a3d"><strong>[orm]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-cd2db57c1e1cd1330ba16d255c704a3d">¶</a></span><p>Fixed·issue·where·the·<a·class="reference·internal"·href="../orm/inheritance_loading.html#sqlalchemy.orm.selectin_polymorphic"·title="sqlalchemy.orm.selectin_polymorphic"><code·class="xref·py·py-func·docutils·literal·notranslate"><span·class="pre">selectin_polymorphic()</span></code></a>·loader·option·would |
2887 | not·work·with·joined·inheritance·mappers·that·don’t·have·a·fixed | 2887 | not·work·with·joined·inheritance·mappers·that·don’t·have·a·fixed |
2888 | “polymorphic_on”·column.···Additionally·added·test·support·for·a·wider | 2888 | “polymorphic_on”·column.···Additionally·added·test·support·for·a·wider |
2889 | variety·of·usage·patterns·with·this·construct.</p> | 2889 | variety·of·usage·patterns·with·this·construct.</p> |
2890 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7799">#7799</a></p> | 2890 | <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7799">#7799</a></p> |
2891 | </p> | 2891 | </p> |
2892 | </li> | 2892 | </li> |
Offset 1998, 31 lines modified | Offset 1998, 31 lines modified | ||
1998 | [orm]·[usecase]·¶ | 1998 | [orm]·[usecase]·¶ |
1999 | Added·new·attributes·UpdateBase.returning_column_descriptions·and | 1999 | Added·new·attributes·UpdateBase.returning_column_descriptions·and |
2000 | UpdateBase.entity_description·to·allow·for·inspection·of·ORM·attributes·and | 2000 | UpdateBase.entity_description·to·allow·for·inspection·of·ORM·attributes·and |
2001 | entities·that·are·installed·as·part·of·an·Insert,·Update,·or·Delete·construct. | 2001 | entities·that·are·installed·as·part·of·an·Insert,·Update,·or·Delete·construct. |
2002 | The·Select.column_descriptions·accessor·is·also·now·implemented·for·Core-only | 2002 | The·Select.column_descriptions·accessor·is·also·now·implemented·for·Core-only |
2003 | selectables. | 2003 | selectables. |
2004 | References:·#7861 | 2004 | References:·#7861 |
2005 | [orm]·[performance]·[bug]·¶ | ||
2006 | Improvements·in·memory·usage·by·the·ORM,·removing·a·significant·set·of | ||
2007 | intermediary·expression·objects·that·are·typically·stored·when·a·copy·of·an | ||
2008 | expression·object·is·created.·These·clones·have·been·greatly·reduced,·reducing | ||
2009 | the·number·of·total·expression·objects·stored·in·memory·by·ORM·mappings·by | ||
2010 | about·30%. | ||
2011 | References:·#7823 | ||
2012 | [orm]·[bug]·[regression]·¶ | 2005 | [orm]·[bug]·[regression]·¶ |
2013 | Fixed·regression·in·“dynamic”·loader·strategy·where·the·Query.filter_by() | 2006 | Fixed·regression·in·“dynamic”·loader·strategy·where·the·Query.filter_by() |
2014 | method·would·not·be·given·an·appropriate·entity·to·filter·from,·in·the·case | 2007 | method·would·not·be·given·an·appropriate·entity·to·filter·from,·in·the·case |
2015 | where·a·“secondary”·table·were·present·in·the·relationship·being·queried·and | 2008 | where·a·“secondary”·table·were·present·in·the·relationship·being·queried·and |
2016 | the·mapping·were·against·something·complex·such·as·a·“with·polymorphic”. | 2009 | the·mapping·were·against·something·complex·such·as·a·“with·polymorphic”. |
2017 | References:·#7868 | 2010 | References:·#7868 |
2018 | [orm]·[bug]·¶ | 2011 | [orm]·[bug]·¶ |
2019 | Fixed·bug·where·composite()·attributes·would·not·work·in·conjunction·with·the | 2012 | Fixed·bug·where·composite()·attributes·would·not·work·in·conjunction·with·the |
2020 | selectin_polymorphic()·loader·strategy·for·joined·table·inheritance. | 2013 | selectin_polymorphic()·loader·strategy·for·joined·table·inheritance. |
2021 | References:·#7801 | 2014 | References:·#7801 |
2015 | [orm]·[bug]·[performance]·¶ | ||
2016 | Improvements·in·memory·usage·by·the·ORM,·removing·a·significant·set·of | ||
2017 | intermediary·expression·objects·that·are·typically·stored·when·a·copy·of·an | ||
2018 | expression·object·is·created.·These·clones·have·been·greatly·reduced,·reducing | ||
2019 | the·number·of·total·expression·objects·stored·in·memory·by·ORM·mappings·by | ||
2020 | about·30%. | ||
2021 | References:·#7823 | ||
2022 | [orm]·[bug]·¶ | 2022 | [orm]·[bug]·¶ |
2023 | Fixed·issue·where·the·selectin_polymorphic()·loader·option·would·not·work·with | 2023 | Fixed·issue·where·the·selectin_polymorphic()·loader·option·would·not·work·with |
2024 | joined·inheritance·mappers·that·don’t·have·a·fixed·“polymorphic_on”·column. | 2024 | joined·inheritance·mappers·that·don’t·have·a·fixed·“polymorphic_on”·column. |
2025 | Additionally·added·test·support·for·a·wider·variety·of·usage·patterns·with·this | 2025 | Additionally·added·test·support·for·a·wider·variety·of·usage·patterns·with·this |
2026 | construct. | 2026 | construct. |
2027 | References:·#7799 | 2027 | References:·#7799 |
2028 | [orm]·[bug]·¶ | 2028 | [orm]·[bug]·¶ |
Offset 308, 46 lines modified | Offset 308, 46 lines modified | ||
308 | </section> | 308 | </section> |
309 | <section·id="module-examples.association"> | 309 | <section·id="module-examples.association"> |
310 | <span·id="associations"></span><span·id="examples-associations"></span><h3>Associations<a·class="headerlink"·href="#module-examples.association"·title="Link·to·this·heading">¶</a></h3> | 310 | <span·id="associations"></span><span·id="examples-associations"></span><h3>Associations<a·class="headerlink"·href="#module-examples.association"·title="Link·to·this·heading">¶</a></h3> |
311 | <p>Examples·illustrating·the·usage·of·the·“association·object”·pattern, | 311 | <p>Examples·illustrating·the·usage·of·the·“association·object”·pattern, |
312 | where·an·intermediary·class·mediates·the·relationship·between·two | 312 | where·an·intermediary·class·mediates·the·relationship·between·two |
313 | classes·that·are·associated·in·a·many-to-many·pattern.</p> | 313 | classes·that·are·associated·in·a·many-to-many·pattern.</p> |
314 | <p>Listing·of·files:<ul·class="simple"> | 314 | <p>Listing·of·files:<ul·class="simple"> |
315 | <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 | ||
316 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python | ||
317 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers | ||
318 | as·values,·which·conceal·the·underlying·mapped·classes.</p> | ||
319 | </p></li> | ||
320 | <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 | 315 | <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 |
321 | “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price | 316 | “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price |
322 | with·each·via·an·association·object·called·“OrderItem”</p> | 317 | with·each·via·an·association·object·called·“OrderItem”</p> |
323 | </p></li> | 318 | </p></li> |
324 | <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 | 319 | <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 |
325 | 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 | 320 | 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 |
326 | to·<code·class="docutils·literal·notranslate"><span·class="pre">OrderItem</span></code>·optional.</p> | 321 | to·<code·class="docutils·literal·notranslate"><span·class="pre">OrderItem</span></code>·optional.</p> |
327 | </p></li> | 322 | </p></li> |
323 | <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 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python | ||
325 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers | ||
326 | as·values,·which·conceal·the·underlying·mapped·classes.</p> | ||
327 | </p></li> | ||
328 | </ul> | 328 | </ul> |
329 | </p> | 329 | </p> |
330 | </section> | 330 | </section> |
331 | <section·id="module-examples.asyncio"> | 331 | <section·id="module-examples.asyncio"> |
332 | <span·id="asyncio-integration"></span><span·id="examples-asyncio"></span><h3>Asyncio·Integration<a·class="headerlink"·href="#module-examples.asyncio"·title="Link·to·this·heading">¶</a></h3> | 332 | <span·id="asyncio-integration"></span><span·id="examples-asyncio"></span><h3>Asyncio·Integration<a·class="headerlink"·href="#module-examples.asyncio"·title="Link·to·this·heading">¶</a></h3> |
333 | <p>Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.</p> | 333 | <p>Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.</p> |
334 | <p>Listing·of·files:<ul·class="simple"> | 334 | <p>Listing·of·files:<ul·class="simple"> |
335 | <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 | for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.</p> | ||
337 | </p></li> | ||
338 | <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 | 335 | <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 |
339 | for·asynchronous·ORM·use.</p> | 336 | for·asynchronous·ORM·use.</p> |
340 | </p></li> | 337 | </p></li> |
341 | <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/basic.html">basic.py</a>·-·Illustrates·the·asyncio·engine·/·connection·interface.</p> | ||
342 | </p></li> | ||
343 | <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> | 338 | <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 | along·many·asyncio·database·connections,·merging·ORM·results·into·a·single | 339 | along·many·asyncio·database·connections,·merging·ORM·results·into·a·single |
345 | <code·class="docutils·literal·notranslate"><span·class="pre">AsyncSession</span></code>.</p> | 340 | <code·class="docutils·literal·notranslate"><span·class="pre">AsyncSession</span></code>.</p> |
346 | </p></li> | 341 | </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> | ||
343 | </p></li> | ||
344 | <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 | ||
345 | for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.</p> | ||
346 | </p></li> | ||
347 | </ul> | 347 | </ul> |
348 | </p> | 348 | </p> |
349 | </section> | 349 | </section> |
350 | <section·id="module-examples.graphs"> | 350 | <section·id="module-examples.graphs"> |
351 | <span·id="directed-graphs"></span><h3>Directed·Graphs<a·class="headerlink"·href="#module-examples.graphs"·title="Link·to·this·heading">¶</a></h3> | 351 | <span·id="directed-graphs"></span><h3>Directed·Graphs<a·class="headerlink"·href="#module-examples.graphs"·title="Link·to·this·heading">¶</a></h3> |
352 | <p>An·example·of·persistence·for·a·directed·graph·structure.···The | 352 | <p>An·example·of·persistence·for·a·directed·graph·structure.···The |
353 | graph·is·stored·as·a·collection·of·edges,·each·referencing·both·a | 353 | graph·is·stored·as·a·collection·of·edges,·each·referencing·both·a |
Offset 123, 37 lines modified | Offset 123, 36 lines modified | ||
123 | ····*·adjacency_list.py | 123 | ····*·adjacency_list.py |
124 | ****·Associations¶·**** | 124 | ****·Associations¶·**** |
125 | Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an | 125 | Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an |
126 | intermediary·class·mediates·the·relationship·between·two·classes·that·are | 126 | intermediary·class·mediates·the·relationship·between·two·classes·that·are |
127 | associated·in·a·many-to-many·pattern. | 127 | associated·in·a·many-to-many·pattern. |
128 | Listing·of·files: | 128 | Listing·of·files: |
129 | ····*·dict_of_sets_with_default.py·-·An·advanced·association·proxy·example | ||
130 | ······which·illustrates·nesting·of·association·proxies·to·produce·multi-level | ||
131 | ······Python·collections,·in·this·case·a·dictionary·with·string·keys·and·sets | ||
132 | ······of·integers·as·values,·which·conceal·the·underlying·mapped·classes. | ||
133 | basic_association.py·-·Illustrate·a·many-to-many·relationship·between·an | 129 | ····*·basic_association.py·-·Illustrate·a·many-to-many·relationship·between·an |
134 | “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price | 130 | ······“Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price |
135 | each·via·an·association·object·called·“OrderItem” | 131 | ······with·each·via·an·association·object·called·“OrderItem” |
136 | proxied_association.py·-·Same·example·as·basic_association,·adding·in·usage·of | 132 | proxied_association.py·-·Same·example·as·basic_association,·adding·in·usage·of |
137 | sqlalchemy.ext.associationproxy·to·make·explicit·references·to·OrderItem | 133 | sqlalchemy.ext.associationproxy·to·make·explicit·references·to·OrderItem |
138 | optional. | 134 | optional. |
135 | dict_of_sets_with_default.py·-·An·advanced·association·proxy·example·which | ||
136 | illustrates·nesting·of·association·proxies·to·produce·multi-level·Python | ||
137 | collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers·as | ||
138 | values,·which·conceal·the·underlying·mapped·classes. | ||
139 | ****·Asyncio·Integration¶·**** | 139 | ****·Asyncio·Integration¶·**** |
140 | Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy. | 140 | Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy. |
141 | Listing·of·files: | 141 | Listing·of·files: |
142 | ····*·greenlet_orm.py·-·Illustrates·use·of·the | ||
143 | ······sqlalchemy.ext.asyncio.AsyncSession·object·for·asynchronous·ORM·use, | ||
144 | ······including·the·optional·run_sync()·method. | ||
145 | async_orm.py·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession | 142 | ····*·async_orm.py·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession |
146 | object·for·asynchronous·ORM·use. | 143 | ······object·for·asynchronous·ORM·use. |
147 | basic.py·-·Illustrates·the·asyncio·engine·/·connection·interface. | ||
148 | gather_orm_statements.py·-·Illustrates·how·to·run·many·statements·concurrently | 144 | gather_orm_statements.py·-·Illustrates·how·to·run·many·statements·concurrently |
149 | using·asyncio.gather()·along·many·asyncio·database·connections,·merging·ORM | 145 | using·asyncio.gather()·along·many·asyncio·database·connections,·merging·ORM |
150 | results·into·a·single·AsyncSession. | 146 | results·into·a·single·AsyncSession. |
147 | basic.py·-·Illustrates·the·asyncio·engine·/·connection·interface. | ||
148 | greenlet_orm.py·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession | ||
149 | object·for·asynchronous·ORM·use,·including·the·optional·run_sync()·method. | ||
151 | ****·Directed·Graphs¶·**** | 150 | ****·Directed·Graphs¶·**** |
152 | An·example·of·persistence·for·a·directed·graph·structure.·The·graph·is·stored | 151 | 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 | 152 | as·a·collection·of·edges,·each·referencing·both·a·“lower”·and·an·“upper”·node |
154 | in·a·table·of·nodes.·Basic·persistence·and·querying·for·lower-·and·upper- | 153 | in·a·table·of·nodes.·Basic·persistence·and·querying·for·lower-·and·upper- |
155 | neighbors·are·illustrated: | 154 | neighbors·are·illustrated: |
156 | n2·=·Node(2) | 155 | n2·=·Node(2) |
Offset 7086, 17 lines modified | Offset 7086, 17 lines modified | ||
7086 | ········"4138":·12, | 7086 | ········"4138":·12, |
7087 | ········"5265":·12, | 7087 | ········"5265":·12, |
7088 | ········"5266":·12, | 7088 | ········"5266":·12, |
7089 | ········"td":·[12,·63], | 7089 | ········"td":·[12,·63], |
7090 | ········"protocol":·[12,·17,·48,·51,·55,·59,·65,·66,·80,·102,·113], | 7090 | ········"protocol":·[12,·17,·48,·51,·55,·59,·65,·66,·80,·102,·113], |
7091 | ········"5255":·12, | 7091 | ········"5255":·12, |
7092 | ········"5271":·12, | 7092 | ········"5271":·12, |
7093 | ········"5314":·12, | ||
7094 | ········"outputtyp":·12, | 7093 | ········"outputtyp":·12, |
7095 | ········"5246":·12, | 7094 | ········"5246":·12, |
7095 | ········"5314":·12, | ||
7096 | ········"5278":·12, | 7096 | ········"5278":·12, |
7097 | ········"planner":·[12,·23,·67], | 7097 | ········"planner":·[12,·23,·67], |
7098 | ········"5162":·12, | 7098 | ········"5162":·12, |
7099 | ········"slot":·[12,·56,·87,·91], | 7099 | ········"slot":·[12,·56,·87,·91], |
7100 | ········"5228":·12, | 7100 | ········"5228":·12, |
7101 | ········"5210":·12, | 7101 | ········"5210":·12, |
7102 | ········"eval":·[12,·75,·84,·124,·140], | 7102 | ········"eval":·[12,·75,·84,·124,·140], |