46.2 KB
/srv/reproducible-results/rbuild-debian/r-b-build.CtNO9pZ8/b1/sqlalchemy_2.0.32+ds1-1_armhf.changes vs.
/srv/reproducible-results/rbuild-debian/r-b-build.CtNO9pZ8/b2/sqlalchemy_2.0.32+ds1-1_armhf.changes
539 B
Files
    
Offset 1, 5 lines modifiedOffset 1, 5 lines modified
  
1 ·c5a31f72c3839e639a29d56d1717eed3·3956272·doc·optional·python-sqlalchemy-doc_2.0.32+ds1-1_all.deb1 ·324ad48003c07dbdc32d1c960368c38f·3956332·doc·optional·python-sqlalchemy-doc_2.0.32+ds1-1_all.deb
2 ·88c3d6454e6920ef9afc0555ecef5c5d·901840·debug·optional·python3-sqlalchemy-ext-dbgsym_2.0.32+ds1-1_armhf.deb2 ·88c3d6454e6920ef9afc0555ecef5c5d·901840·debug·optional·python3-sqlalchemy-ext-dbgsym_2.0.32+ds1-1_armhf.deb
3 ·9b135e646e1d03381b2c4aa72571f002·123464·python·optional·python3-sqlalchemy-ext_2.0.32+ds1-1_armhf.deb3 ·9b135e646e1d03381b2c4aa72571f002·123464·python·optional·python3-sqlalchemy-ext_2.0.32+ds1-1_armhf.deb
4 ·0955e7f12a0b73c1ab8406c88fbab7d2·1196068·python·optional·python3-sqlalchemy_2.0.32+ds1-1_all.deb4 ·0955e7f12a0b73c1ab8406c88fbab7d2·1196068·python·optional·python3-sqlalchemy_2.0.32+ds1-1_all.deb
45.5 KB
python-sqlalchemy-doc_2.0.32+ds1-1_all.deb
367 B
file list
    
Offset 1, 3 lines modifiedOffset 1, 3 lines modified
1 -rw-r--r--···0········0········0········4·2024-08-23·07:52:58.000000·debian-binary1 -rw-r--r--···0········0········0········4·2024-08-23·07:52:58.000000·debian-binary
2 -rw-r--r--···0········0········0····13924·2024-08-23·07:52:58.000000·control.tar.xz2 -rw-r--r--···0········0········0····13924·2024-08-23·07:52:58.000000·control.tar.xz
3 -rw-r--r--···0········0········0··3942156·2024-08-23·07:52:58.000000·data.tar.xz3 -rw-r--r--···0········0········0··3942216·2024-08-23·07:52:58.000000·data.tar.xz
98.0 B
control.tar.xz
70.0 B
control.tar
48.0 B
./md5sums
30.0 B
./md5sums
Files differ
44.9 KB
data.tar.xz
44.9 KB
data.tar
7.67 KB
./usr/share/doc/python-sqlalchemy-doc/html/changelog/changelog_14.html
    
Offset 9239, 15 lines modifiedOffset 9239, 22 lines modified
9239 <div·class="admonition·seealso">9239 <div·class="admonition·seealso">
9240 <p·class="admonition-title">See·also</p>9240 <p·class="admonition-title">See·also</p>
9241 <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>9241 <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>
9242 </div>9242 </div>
9243 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4710">#4710</a></p>9243 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4710">#4710</a></p>
9244 </p>9244 </p>
9245 </li>9245 </li>
 9246 <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
 9247 connection·that·was·just·opened·in·the·same·checkout·operation.··pre·ping
 9248 only·applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool
 9249 and·is·being·checked·out·again.</p>
 9250 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4524">#4524</a></p>
 9251 </p>
 9252 </li>
9246 <li><p·class="caption"·id="change-1.4.0b1-54"><span·class="target"·id="change-d3650b27f4c852ac687ea55326051ed0"><strong>[engine]·[change]·[performance]·[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·when9253 <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
9247 running·under·Python·3,·which·for·many·years·has·occurred·in·order·to·test9254 running·under·Python·3,·which·for·many·years·has·occurred·in·order·to·test
9248 the·current·DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode9255 the·current·DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode
9249 or·Py2K·strings·for·the·VARCHAR·and·NVARCHAR·datatypes.··The·check·still9256 or·Py2K·strings·for·the·VARCHAR·and·NVARCHAR·datatypes.··The·check·still
9250 occurs·by·default·under·Python·2,·however·the·mechanism·to·test·the9257 occurs·by·default·under·Python·2,·however·the·mechanism·to·test·the
9251 behavior·will·be·removed·in·SQLAlchemy·2.0·when·Python·2·support·is·also9258 behavior·will·be·removed·in·SQLAlchemy·2.0·when·Python·2·support·is·also
9252 removed.</p>9259 removed.</p>
9253 <p>This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·39260 <p>This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3
Offset 9258, 21 lines modifiedOffset 9265, 14 lines modified
9258 dialect·flags·by·setting·the·dialect·level·flag·<code·class="docutils·literal·notranslate"><span·class="pre">returns_unicode_strings</span></code>9265 dialect·flags·by·setting·the·dialect·level·flag·<code·class="docutils·literal·notranslate"><span·class="pre">returns_unicode_strings</span></code>
9259 to·one·of·<code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_CONDITIONAL</span></code>·or9266 to·one·of·<code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_CONDITIONAL</span></code>·or
9260 <code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_BYTES</span></code>,·both·of·which·will·enable·Unicode·conversion9267 <code·class="xref·py·py-attr·docutils·literal·notranslate"><span·class="pre">String.RETURNS_BYTES</span></code>,·both·of·which·will·enable·Unicode·conversion
9261 even·under·Python·3.</p>9268 even·under·Python·3.</p>
9262 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5315">#5315</a></p>9269 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/5315">#5315</a></p>
9263 </p>9270 </p>
9264 </li>9271 </li>
9265 <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 
9266 connection·that·was·just·opened·in·the·same·checkout·operation.··pre·ping 
9267 only·applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool 
9268 and·is·being·checked·out·again.</p> 
9269 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/4524">#4524</a></p> 
9270 </p> 
9271 </li> 
9272 <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>9272 <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>
9273 feature·such·that·the·processing·of·the·SQL·statement·to·receive·a·specific9273 feature·such·that·the·processing·of·the·SQL·statement·to·receive·a·specific
9274 schema·name·occurs·within·the·execution·phase·of·the·statement,·rather·than9274 schema·name·occurs·within·the·execution·phase·of·the·statement,·rather·than
9275 at·the·compile·phase.···This·is·to·support·the·statement·being·efficiently9275 at·the·compile·phase.···This·is·to·support·the·statement·being·efficiently
9276 cached.···Previously,·the·current·schema·being·rendered·into·the·statement9276 cached.···Previously,·the·current·schema·being·rendered·into·the·statement
9277 for·a·particular·run·would·be·considered·as·part·of·the·cache·key·itself,9277 for·a·particular·run·would·be·considered·as·part·of·the·cache·key·itself,
9278 meaning·that·for·a·run·against·hundreds·of·schemas,·there·would·be·hundreds9278 meaning·that·for·a·run·against·hundreds·of·schemas,·there·would·be·hundreds
3.01 KB
html2text {}
    
Offset 6355, 15 lines modifiedOffset 6355, 21 lines modified
6355 returned·by·the·ResultProxy·is·now·the·LegacyRow·subclass,·which·maintains6355 returned·by·the·ResultProxy·is·now·the·LegacyRow·subclass,·which·maintains
6356 mapping/tuple·hybrid·behavior,·however·the·base·_\x8R_\x8o_\x8w·class·now·behaves·more6356 mapping/tuple·hybrid·behavior,·however·the·base·_\x8R_\x8o_\x8w·class·now·behaves·more
6357 fully·like·a·named·tuple.6357 fully·like·a·named·tuple.
6358 See·also6358 See·also
6359 _\x8R_\x8o_\x8w_\x8P_\x8r_\x8o_\x8x_\x8y_\x8·_\x8i_\x8s_\x8·_\x8n_\x8o_\x8·_\x8l_\x8o_\x8n_\x8g_\x8e_\x8r_\x8·_\x8a_\x8·_\x8“_\x8p_\x8r_\x8o_\x8x_\x8y_\x8”_\x8;_\x8·_\x8i_\x8s_\x8·_\x8n_\x8o_\x8w_\x8·_\x8c_\x8a_\x8l_\x8l_\x8e_\x8d_\x8·_\x8R_\x8o_\x8w_\x8·_\x8a_\x8n_\x8d_\x8·_\x8b_\x8e_\x8h_\x8a_\x8v_\x8e_\x8s_\x8·_\x8l_\x8i_\x8k_\x8e_\x8·_\x8a_\x8n_\x8·_\x8e_\x8n_\x8h_\x8a_\x8n_\x8c_\x8e_\x8d6359 _\x8R_\x8o_\x8w_\x8P_\x8r_\x8o_\x8x_\x8y_\x8·_\x8i_\x8s_\x8·_\x8n_\x8o_\x8·_\x8l_\x8o_\x8n_\x8g_\x8e_\x8r_\x8·_\x8a_\x8·_\x8“_\x8p_\x8r_\x8o_\x8x_\x8y_\x8”_\x8;_\x8·_\x8i_\x8s_\x8·_\x8n_\x8o_\x8w_\x8·_\x8c_\x8a_\x8l_\x8l_\x8e_\x8d_\x8·_\x8R_\x8o_\x8w_\x8·_\x8a_\x8n_\x8d_\x8·_\x8b_\x8e_\x8h_\x8a_\x8v_\x8e_\x8s_\x8·_\x8l_\x8i_\x8k_\x8e_\x8·_\x8a_\x8n_\x8·_\x8e_\x8n_\x8h_\x8a_\x8n_\x8c_\x8e_\x8d
6360 _\x8n_\x8a_\x8m_\x8e_\x8d_\x8·_\x8t_\x8u_\x8p_\x8l_\x8e6360 _\x8n_\x8a_\x8m_\x8e_\x8d_\x8·_\x8t_\x8u_\x8p_\x8l_\x8e
6361 References:·_\x8#_\x84_\x87_\x81_\x806361 References:·_\x8#_\x84_\x87_\x81_\x80
 6362 [\x8[e\x8en\x8ng\x8gi\x8in\x8ne\x8e]\x8]·[\x8[p\x8pe\x8er\x8rf\x8fo\x8or\x8rm\x8ma\x8an\x8nc\x8ce\x8e]\x8]·_\x8
 6363 The·pool·“pre-ping”·feature·has·been·refined·to·not·invoke·for·a·DBAPI
 6364 connection·that·was·just·opened·in·the·same·checkout·operation.·pre·ping·only
 6365 applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool·and·is·being
 6366 checked·out·again.
 6367 References:·_\x8#_\x84_\x85_\x82_\x84
6362 [\x8[e\x8en\x8ng\x8gi\x8in\x8ne\x8e]\x8]·[\x8[c.ch.ha.an.ng.ge.e].]·[.[p.pe.er.rf.fo.or.rm.ma.an.nc.ce\x8e]\x8]·[\x8[p\x8py\x8y3\x83k\x8k]\x8]·_\x86368 [\x8[e\x8en\x8ng\x8gi\x8in\x8ne\x8e]\x8]·[\x8[p.pe.er.rf.fo.or.rm.ma.an.nc.ce.e].]·[.[c.ch.ha.an.ng.ge\x8e]\x8]·[\x8[p\x8py\x8y3\x83k\x8k]\x8]·_\x8
6363 Disabled·the·“unicode·returns”·check·that·runs·on·dialect·startup·when·running6369 Disabled·the·“unicode·returns”·check·that·runs·on·dialect·startup·when·running
6364 under·Python·3,·which·for·many·years·has·occurred·in·order·to·test·the·current6370 under·Python·3,·which·for·many·years·has·occurred·in·order·to·test·the·current
6365 DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode·or·Py2K·strings6371 DBAPI’s·behavior·for·whether·or·not·it·returns·Python·Unicode·or·Py2K·strings
6366 for·the·VARCHAR·and·NVARCHAR·datatypes.·The·check·still·occurs·by·default·under6372 for·the·VARCHAR·and·NVARCHAR·datatypes.·The·check·still·occurs·by·default·under
6367 Python·2,·however·the·mechanism·to·test·the·behavior·will·be·removed·in6373 Python·2,·however·the·mechanism·to·test·the·behavior·will·be·removed·in
6368 SQLAlchemy·2.0·when·Python·2·support·is·also·removed.6374 SQLAlchemy·2.0·when·Python·2·support·is·also·removed.
6369 This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3·is6375 This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3·is
Offset 6371, 20 lines modifiedOffset 6377, 14 lines modified
6371 datatypes.·In·the·unlikely·case·that·a·third·party·DBAPI·does·not·support·this,6377 datatypes.·In·the·unlikely·case·that·a·third·party·DBAPI·does·not·support·this,
6372 the·conversion·logic·within·_\x8S_\x8t_\x8r_\x8i_\x8n_\x8g·is·still·available·and·the·third·party6378 the·conversion·logic·within·_\x8S_\x8t_\x8r_\x8i_\x8n_\x8g·is·still·available·and·the·third·party
6373 dialect·may·specify·this·in·its·upfront·dialect·flags·by·setting·the·dialect6379 dialect·may·specify·this·in·its·upfront·dialect·flags·by·setting·the·dialect
6374 level·flag·returns_unicode_strings·to·one·of·String.RETURNS_CONDITIONAL·or6380 level·flag·returns_unicode_strings·to·one·of·String.RETURNS_CONDITIONAL·or
6375 String.RETURNS_BYTES,·both·of·which·will·enable·Unicode·conversion·even·under6381 String.RETURNS_BYTES,·both·of·which·will·enable·Unicode·conversion·even·under
6376 Python·3.6382 Python·3.
6377 References:·_\x8#_\x85_\x83_\x81_\x856383 References:·_\x8#_\x85_\x83_\x81_\x85
6378 [\x8[e\x8en\x8ng\x8gi\x8in\x8ne\x8e]\x8]·[\x8[p\x8pe\x8er\x8rf\x8fo\x8or\x8rm\x8ma\x8an\x8nc\x8ce\x8e]\x8]·_\x8 
6379 The·pool·“pre-ping”·feature·has·been·refined·to·not·invoke·for·a·DBAPI 
6380 connection·that·was·just·opened·in·the·same·checkout·operation.·pre·ping·only 
6381 applies·to·a·DBAPI·connection·that’s·been·checked·into·the·pool·and·is·being 
6382 checked·out·again. 
6383 References:·_\x8#_\x84_\x85_\x82_\x84 
6384 [\x8[e\x8en\x8ng\x8gi\x8in\x8ne\x8e]\x8]·[\x8[b\x8bu\x8ug\x8g]\x8]·_\x86384 [\x8[e\x8en\x8ng\x8gi\x8in\x8ne\x8e]\x8]·[\x8[b\x8bu\x8ug\x8g]\x8]·_\x8
6385 Revised·the·_\x8C_\x8o_\x8n_\x8n_\x8e_\x8c_\x8t_\x8i_\x8o_\x8n_\x8._\x8e_\x8x_\x8e_\x8c_\x8u_\x8t_\x8i_\x8o_\x8n_\x8__\x8o_\x8p_\x8t_\x8i_\x8o_\x8n_\x8s_\x8._\x8s_\x8c_\x8h_\x8e_\x8m_\x8a_\x8__\x8t_\x8r_\x8a_\x8n_\x8s_\x8l_\x8a_\x8t_\x8e_\x8__\x8m_\x8a_\x8p·feature·such·that6385 Revised·the·_\x8C_\x8o_\x8n_\x8n_\x8e_\x8c_\x8t_\x8i_\x8o_\x8n_\x8._\x8e_\x8x_\x8e_\x8c_\x8u_\x8t_\x8i_\x8o_\x8n_\x8__\x8o_\x8p_\x8t_\x8i_\x8o_\x8n_\x8s_\x8._\x8s_\x8c_\x8h_\x8e_\x8m_\x8a_\x8__\x8t_\x8r_\x8a_\x8n_\x8s_\x8l_\x8a_\x8t_\x8e_\x8__\x8m_\x8a_\x8p·feature·such·that
6386 the·processing·of·the·SQL·statement·to·receive·a·specific·schema·name·occurs6386 the·processing·of·the·SQL·statement·to·receive·a·specific·schema·name·occurs
6387 within·the·execution·phase·of·the·statement,·rather·than·at·the·compile·phase.6387 within·the·execution·phase·of·the·statement,·rather·than·at·the·compile·phase.
6388 This·is·to·support·the·statement·being·efficiently·cached.·Previously,·the6388 This·is·to·support·the·statement·being·efficiently·cached.·Previously,·the
6389 current·schema·being·rendered·into·the·statement·for·a·particular·run·would·be6389 current·schema·being·rendered·into·the·statement·for·a·particular·run·would·be
6390 considered·as·part·of·the·cache·key·itself,·meaning·that·for·a·run·against6390 considered·as·part·of·the·cache·key·itself,·meaning·that·for·a·run·against
7.05 KB
./usr/share/doc/python-sqlalchemy-doc/html/changelog/changelog_20.html
    
Offset 7935, 31 lines modifiedOffset 7935, 31 lines modified
7935 </p>7935 </p>
7936 </li>7936 </li>
7937 <li><p·class="caption"·id="change-2.0.0b1-85"><span·class="target"·id="change-0a487b939ab3ad7ca93ee291b91eb410"><strong>[sqlite]·[usecase]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-0a487b939ab3ad7ca93ee291b91eb410">¶</a></span><p>Added·RETURNING·support·for·the·SQLite·dialect.··SQLite·supports·RETURNING7937 <li><p·class="caption"·id="change-2.0.0b1-85"><span·class="target"·id="change-0a487b939ab3ad7ca93ee291b91eb410"><strong>[sqlite]·[usecase]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-0a487b939ab3ad7ca93ee291b91eb410">¶</a></span><p>Added·RETURNING·support·for·the·SQLite·dialect.··SQLite·supports·RETURNING
7938 since·version·3.35.</p>7938 since·version·3.35.</p>
7939 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/6195">#6195</a></p>7939 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/6195">#6195</a></p>
7940 </p>7940 </p>
7941 </li>7941 </li>
 7942 <li><p·class="caption"·id="change-2.0.0b1-86"><span·class="target"·id="change-ef6ce799a34b30832a9c8115e2afa920"><strong>[sqlite]·[usecase]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-ef6ce799a34b30832a9c8115e2afa920">¶</a></span><p>The·SQLite·dialect·now·supports·UPDATE..FROM·syntax,·for·UPDATE·statements
 7943 that·may·refer·to·additional·tables·within·the·WHERE·criteria·of·the
 7944 statement·without·the·need·to·use·subqueries.·This·syntax·is·invoked
 7945 automatically·when·using·the·<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>·construct·when·more·than
 7946 one·table·or·other·entity·or·selectable·is·used.</p>
 7947 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7185">#7185</a></p>
 7948 </p>
 7949 </li>
7942 <li><p·class="caption"·id="change-2.0.0b1-86"><span·class="target"·id="change-74fee584f531c832d0d97ea94be754b8"><strong>[sqlite]·[usecase]·[performance]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-74fee584f531c832d0d97ea94be754b8">¶</a></span><p>SQLite·datetime,·date,·and·time·datatypes·now·use·Python·standard·lib7950 <li><p·class="caption"·id="change-2.0.0b1-87"><span·class="target"·id="change-74fee584f531c832d0d97ea94be754b8"><strong>[sqlite]·[performance]·[usecase]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-74fee584f531c832d0d97ea94be754b8">¶</a></span><p>SQLite·datetime,·date,·and·time·datatypes·now·use·Python·standard·lib
7943 <code·class="docutils·literal·notranslate"><span·class="pre">fromisoformat()</span></code>·methods·in·order·to·parse·incoming·datetime,·date,·and7951 <code·class="docutils·literal·notranslate"><span·class="pre">fromisoformat()</span></code>·methods·in·order·to·parse·incoming·datetime,·date,·and
7944 time·string·values.·This·improves·performance·vs.·the·previous·regular7952 time·string·values.·This·improves·performance·vs.·the·previous·regular
7945 expression-based·approach,·and·also·automatically·accommodates·for·datetime7953 expression-based·approach,·and·also·automatically·accommodates·for·datetime
7946 and·time·formats·that·contain·either·a·six-digit·“microseconds”·format·or·a7954 and·time·formats·that·contain·either·a·six-digit·“microseconds”·format·or·a
7947 three-digit·“milliseconds”·format.</p>7955 three-digit·“milliseconds”·format.</p>
7948 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7029">#7029</a></p>7956 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7029">#7029</a></p>
7949 </p>7957 </p>
7950 </li>7958 </li>
7951 <li><p·class="caption"·id="change-2.0.0b1-87"><span·class="target"·id="change-ef6ce799a34b30832a9c8115e2afa920"><strong>[sqlite]·[usecase]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-ef6ce799a34b30832a9c8115e2afa920">¶</a></span><p>The·SQLite·dialect·now·supports·UPDATE..FROM·syntax,·for·UPDATE·statements 
7952 that·may·refer·to·additional·tables·within·the·WHERE·criteria·of·the 
7953 statement·without·the·need·to·use·subqueries.·This·syntax·is·invoked 
7954 automatically·when·using·the·<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>·construct·when·more·than 
7955 one·table·or·other·entity·or·selectable·is·used.</p> 
7956 <p>References:·<a·class="reference·external"·href="https://www.sqlalchemy.org/trac/ticket/7185">#7185</a></p> 
7957 </p> 
7958 </li> 
7959 <li><p·class="caption"·id="change-2.0.0b1-88"><span·class="target"·id="change-b11607250a6e056103e2b2d1205be1a8"><strong>[sqlite]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-b11607250a6e056103e2b2d1205be1a8">¶</a></span><p>Removed·the·warning·that·emits·from·the·<a·class="reference·internal"·href="../core/type_basics.html#sqlalchemy.types.Numeric"·title="sqlalchemy.types.Numeric"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Numeric</span></code></a>·type·about7959 <li><p·class="caption"·id="change-2.0.0b1-88"><span·class="target"·id="change-b11607250a6e056103e2b2d1205be1a8"><strong>[sqlite]·[bug]</strong>·<a·class="changelog-reference·headerlink·reference·internal"·href="#change-b11607250a6e056103e2b2d1205be1a8">¶</a></span><p>Removed·the·warning·that·emits·from·the·<a·class="reference·internal"·href="../core/type_basics.html#sqlalchemy.types.Numeric"·title="sqlalchemy.types.Numeric"><code·class="xref·py·py-class·docutils·literal·notranslate"><span·class="pre">Numeric</span></code></a>·type·about
7960 DBAPIs·not·supporting·Decimal·values·natively.·This·warning·was·oriented7960 DBAPIs·not·supporting·Decimal·values·natively.·This·warning·was·oriented
7961 towards·SQLite,·which·does·not·have·any·real·way·without·additional7961 towards·SQLite,·which·does·not·have·any·real·way·without·additional
7962 extensions·or·workarounds·of·handling·precision·numeric·values·more·than·157962 extensions·or·workarounds·of·handling·precision·numeric·values·more·than·15
7963 significant·digits·as·it·only·uses·floating·point·math·to·represent7963 significant·digits·as·it·only·uses·floating·point·math·to·represent
7964 numbers.·As·this·is·a·known·and·documented·limitation·in·SQLite·itself,·and7964 numbers.·As·this·is·a·known·and·documented·limitation·in·SQLite·itself,·and
7965 not·a·quirk·of·the·pysqlite·driver,·there’s·no·need·for·SQLAlchemy·to·warn7965 not·a·quirk·of·the·pysqlite·driver,·there’s·no·need·for·SQLAlchemy·to·warn
2.35 KB
html2text {}
    
Offset 5471, 29 lines modifiedOffset 5471, 29 lines modified
5471 ······See·also5471 ······See·also
5472 ······_\x8R_\x8e_\x8f_\x8l_\x8e_\x8c_\x8t_\x8i_\x8n_\x8g_\x8·_\x8i_\x8n_\x8t_\x8e_\x8r_\x8n_\x8a_\x8l_\x8·_\x8s_\x8c_\x8h_\x8e_\x8m_\x8a_\x8·_\x8t_\x8a_\x8b_\x8l_\x8e_\x8s5472 ······_\x8R_\x8e_\x8f_\x8l_\x8e_\x8c_\x8t_\x8i_\x8n_\x8g_\x8·_\x8i_\x8n_\x8t_\x8e_\x8r_\x8n_\x8a_\x8l_\x8·_\x8s_\x8c_\x8h_\x8e_\x8m_\x8a_\x8·_\x8t_\x8a_\x8b_\x8l_\x8e_\x8s
5473 ······References:·_\x8#_\x88_\x82_\x83_\x845473 ······References:·_\x8#_\x88_\x82_\x83_\x84
5474 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[u\x8us\x8se\x8ec\x8ca\x8as\x8se\x8e]\x8]·_\x85474 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[u\x8us\x8se\x8ec\x8ca\x8as\x8se\x8e]\x8]·_\x8
5475 Added·RETURNING·support·for·the·SQLite·dialect.·SQLite·supports·RETURNING·since5475 Added·RETURNING·support·for·the·SQLite·dialect.·SQLite·supports·RETURNING·since
5476 version·3.35.5476 version·3.35.
5477 References:·_\x8#_\x86_\x81_\x89_\x855477 References:·_\x8#_\x86_\x81_\x89_\x85
5478 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[u\x8us\x8se\x8ec\x8ca\x8as\x8se\x8e]\x8]·[\x8[p\x8pe\x8er\x8rf\x8fo\x8or\x8rm\x8ma\x8an\x8nc\x8ce\x8e]\x8]·_\x8 
5479 SQLite·datetime,·date,·and·time·datatypes·now·use·Python·standard·lib 
5480 fromisoformat()·methods·in·order·to·parse·incoming·datetime,·date,·and·time 
5481 string·values.·This·improves·performance·vs.·the·previous·regular·expression- 
5482 based·approach,·and·also·automatically·accommodates·for·datetime·and·time 
5483 formats·that·contain·either·a·six-digit·“microseconds”·format·or·a·three-digit 
5484 “milliseconds”·format. 
5485 References:·_\x8#_\x87_\x80_\x82_\x89 
5486 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[u\x8us\x8se\x8ec\x8ca\x8as\x8se\x8e]\x8]·_\x85478 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[u\x8us\x8se\x8ec\x8ca\x8as\x8se\x8e]\x8]·_\x8
5487 The·SQLite·dialect·now·supports·UPDATE..FROM·syntax,·for·UPDATE·statements·that5479 The·SQLite·dialect·now·supports·UPDATE..FROM·syntax,·for·UPDATE·statements·that
5488 may·refer·to·additional·tables·within·the·WHERE·criteria·of·the·statement5480 may·refer·to·additional·tables·within·the·WHERE·criteria·of·the·statement
5489 without·the·need·to·use·subqueries.·This·syntax·is·invoked·automatically·when5481 without·the·need·to·use·subqueries.·This·syntax·is·invoked·automatically·when
5490 using·the·_\x8U_\x8p_\x8d_\x8a_\x8t_\x8e·construct·when·more·than·one·table·or·other·entity·or5482 using·the·_\x8U_\x8p_\x8d_\x8a_\x8t_\x8e·construct·when·more·than·one·table·or·other·entity·or
5491 selectable·is·used.5483 selectable·is·used.
5492 References:·_\x8#_\x87_\x81_\x88_\x855484 References:·_\x8#_\x87_\x81_\x88_\x85
 5485 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[p\x8pe\x8er\x8rf\x8fo\x8or\x8rm\x8ma\x8an\x8nc\x8ce\x8e]\x8]·[\x8[u\x8us\x8se\x8ec\x8ca\x8as\x8se\x8e]\x8]·_\x8
 5486 SQLite·datetime,·date,·and·time·datatypes·now·use·Python·standard·lib
 5487 fromisoformat()·methods·in·order·to·parse·incoming·datetime,·date,·and·time
 5488 string·values.·This·improves·performance·vs.·the·previous·regular·expression-
 5489 based·approach,·and·also·automatically·accommodates·for·datetime·and·time
 5490 formats·that·contain·either·a·six-digit·“microseconds”·format·or·a·three-digit
 5491 “milliseconds”·format.
 5492 References:·_\x8#_\x87_\x80_\x82_\x89
5493 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[b\x8bu\x8ug\x8g]\x8]·_\x85493 [\x8[s\x8sq\x8ql\x8li\x8it\x8te\x8e]\x8]·[\x8[b\x8bu\x8ug\x8g]\x8]·_\x8
5494 Removed·the·warning·that·emits·from·the·_\x8N_\x8u_\x8m_\x8e_\x8r_\x8i_\x8c·type·about·DBAPIs·not5494 Removed·the·warning·that·emits·from·the·_\x8N_\x8u_\x8m_\x8e_\x8r_\x8i_\x8c·type·about·DBAPIs·not
5495 supporting·Decimal·values·natively.·This·warning·was·oriented·towards·SQLite,5495 supporting·Decimal·values·natively.·This·warning·was·oriented·towards·SQLite,
5496 which·does·not·have·any·real·way·without·additional·extensions·or·workarounds5496 which·does·not·have·any·real·way·without·additional·extensions·or·workarounds
5497 of·handling·precision·numeric·values·more·than·15·significant·digits·as·it·only5497 of·handling·precision·numeric·values·more·than·15·significant·digits·as·it·only
5498 uses·floating·point·math·to·represent·numbers.·As·this·is·a·known·and5498 uses·floating·point·math·to·represent·numbers.·As·this·is·a·known·and
5499 documented·limitation·in·SQLite·itself,·and·not·a·quirk·of·the·pysqlite·driver,5499 documented·limitation·in·SQLite·itself,·and·not·a·quirk·of·the·pysqlite·driver,
30.2 KB
./usr/share/doc/python-sqlalchemy-doc/html/orm/examples.html
Ordering differences only
    
Offset 299, 42 lines modifiedOffset 299, 42 lines modified
299 </section>299 </section>
300 <section·id="module-examples.association">300 <section·id="module-examples.association">
301 <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>301 <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>
302 <p>Examples·illustrating·the·usage·of·the·“association·object”·pattern,302 <p>Examples·illustrating·the·usage·of·the·“association·object”·pattern,
303 where·an·intermediary·class·mediates·the·relationship·between·two303 where·an·intermediary·class·mediates·the·relationship·between·two
304 classes·that·are·associated·in·a·many-to-many·pattern.</p>304 classes·that·are·associated·in·a·many-to-many·pattern.</p>
305 <p>Listing·of·files:<ul·class="simple">305 <p>Listing·of·files:<ul·class="simple">
 306 <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
 307 illustrates·nesting·of·association·proxies·to·produce·multi-level·Python
 308 collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers
 309 as·values,·which·conceal·the·underlying·mapped·classes.</p>
 310 </p></li>
306 <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·an311 <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
307 “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price312 “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price
308 with·each·via·an·association·object·called·“OrderItem”</p>313 with·each·via·an·association·object·called·“OrderItem”</p>
309 </p></li>314 </p></li>
310 <li><p><p><a·class="reference·external"·href="../_modules/examples/association/proxied_association.html">proxied_association.py</a>·-·Same·example·as·basic_association,·adding·in315 <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
311 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·references316 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
312 to·<code·class="docutils·literal·notranslate"><span·class="pre">OrderItem</span></code>·optional.</p>317 to·<code·class="docutils·literal·notranslate"><span·class="pre">OrderItem</span></code>·optional.</p>
313 </p></li>318 </p></li>
314 <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 
315 illustrates·nesting·of·association·proxies·to·produce·multi-level·Python 
316 collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers 
317 as·values,·which·conceal·the·underlying·mapped·classes.</p> 
318 </p></li> 
319 </ul>319 </ul>
320 </p>320 </p>
321 </section>321 </section>
322 <section·id="module-examples.asyncio">322 <section·id="module-examples.asyncio">
323 <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>323 <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>
324 <p>Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.</p>324 <p>Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.</p>
325 <p>Listing·of·files:<ul·class="simple">325 <p>Listing·of·files:<ul·class="simple">
326 <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/async_orm_writeonly.html">async_orm_writeonly.py</a>·-·Illustrates·using·<strong>write·only·relationships</strong>·for·simpler·handling 
327 of·ORM·collections·under·asyncio.</p> 
328 </p></li> 
329 <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·object326 <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
330 for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.</p>327 for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.</p>
331 </p></li>328 </p></li>
332 <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/basic.html">basic.py</a>·-·Illustrates·the·asyncio·engine·/·connection·interface.</p>329 <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/basic.html">basic.py</a>·-·Illustrates·the·asyncio·engine·/·connection·interface.</p>
333 </p></li>330 </p></li>
 331 <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/async_orm_writeonly.html">async_orm_writeonly.py</a>·-·Illustrates·using·<strong>write·only·relationships</strong>·for·simpler·handling
 332 of·ORM·collections·under·asyncio.</p>
 333 </p></li>
334 <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/async_orm.html">async_orm.py</a>·-·Illustrates·use·of·the·<code·class="docutils·literal·notranslate"><span·class="pre">sqlalchemy.ext.asyncio.AsyncSession</span></code>·object334 <li><p><p><a·class="reference·external"·href="../_modules/examples/asyncio/async_orm.html">async_orm.py</a>·-·Illustrates·use·of·the·<code·class="docutils·literal·notranslate"><span·class="pre">sqlalchemy.ext.asyncio.AsyncSession</span></code>·object
335 for·asynchronous·ORM·use.</p>335 for·asynchronous·ORM·use.</p>
336 </p></li>336 </p></li>
337 <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>337 <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 along·many·asyncio·database·connections,·merging·ORM·results·into·a·single338 along·many·asyncio·database·connections,·merging·ORM·results·into·a·single
339 <code·class="docutils·literal·notranslate"><span·class="pre">AsyncSession</span></code>.</p>339 <code·class="docutils·literal·notranslate"><span·class="pre">AsyncSession</span></code>.</p>
340 </p></li>340 </p></li>
Offset 477, 32 lines modifiedOffset 477, 32 lines modified
477 <div·class="admonition·seealso">477 <div·class="admonition·seealso">
478 <p·class="admonition-title">See·also</p>478 <p·class="admonition-title">See·also</p>
479 <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>479 <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>
480 </div>480 </div>
481 <section·id="file-listing">481 <section·id="file-listing">
482 <h4>File·Listing<a·class="headerlink"·href="#file-listing"·title="Link·to·this·heading">¶</a></h4>482 <h4>File·Listing<a·class="headerlink"·href="#file-listing"·title="Link·to·this·heading">¶</a></h4>
483 <p>Listing·of·files:<ul·class="simple">483 <p>Listing·of·files:<ul·class="simple">
 484 <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>
 485 </p></li>
484 <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·row486 <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
485 within·a·distinct·transaction,·and·afterwards·returns·to·essentially·a487 within·a·distinct·transaction,·and·afterwards·returns·to·essentially·a
486 “closed”·state.···This·would·be·analogous·to·an·API·call·that·starts·up488 “closed”·state.···This·would·be·analogous·to·an·API·call·that·starts·up
487 a·database·connection,·inserts·the·row,·commits·and·closes.</p>489 a·database·connection,·inserts·the·row,·commits·and·closes.</p>
488 </p></li>490 </p></li>
489 <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 
490 record·by·primary·key</p> 
491 </p></li> 
492 <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·number491 <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
493 of·rows·in·bulk·(under·construction!·there’s·just·one·test·at·the·moment)</p>492 of·rows·in·bulk·(under·construction!·there’s·just·one·test·at·the·moment)</p>
494 </p></li>493 </p></li>
 494 <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
 495 of·rows·in·bulk.</p>
 496 </p></li>
495 <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·number497 <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
496 of·very·small·and·simple·rows.</p>498 of·very·small·and·simple·rows.</p>
497 </p></li>499 </p></li>
498 <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> 
499 </p></li> 
500 <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·number500 <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
501 of·rows·in·bulk.</p>501 record·by·primary·key</p>
502 </p></li>502 </p></li>
503 </ul>503 </ul>
504 </p>504 </p>
505 </section>505 </section>
506 <section·id="running-all-tests-with-time">506 <section·id="running-all-tests-with-time">
507 <h4>Running·all·tests·with·time<a·class="headerlink"·href="#running-all-tests-with-time"·title="Link·to·this·heading">¶</a></h4>507 <h4>Running·all·tests·with·time<a·class="headerlink"·href="#running-all-tests-with-time"·title="Link·to·this·heading">¶</a></h4>
508 <p>This·is·the·default·form·of·run:</p>508 <p>This·is·the·default·form·of·run:</p>
Offset 760, 19 lines modifiedOffset 760, 19 lines modified
760 Also·includes·a·<a·class="reference·internal"·href="events.html#sqlalchemy.orm.SessionEvents.do_orm_execute"·title="sqlalchemy.orm.SessionEvents.do_orm_execute"><code·class="xref·py·py-meth·docutils·literal·notranslate"><span·class="pre">SessionEvents.do_orm_execute()</span></code></a>·hook·to·limit·queries760 Also·includes·a·<a·class="reference·internal"·href="events.html#sqlalchemy.orm.SessionEvents.do_orm_execute"·title="sqlalchemy.orm.SessionEvents.do_orm_execute"><code·class="xref·py·py-meth·docutils·literal·notranslate"><span·class="pre">SessionEvents.do_orm_execute()</span></code></a>·hook·to·limit·queries
761 to·only·the·most·recent·version.</p>761 to·only·the·most·recent·version.</p>
762 </p></li>762 </p></li>
763 <li><p><p><a·class="reference·external"·href="../_modules/examples/versioned_rows/versioned_map.html">versioned_map.py</a>·-·A·variant·of·the·versioned_rows·example·built·around·the763 <li><p><p><a·class="reference·external"·href="../_modules/examples/versioned_rows/versioned_map.html">versioned_map.py</a>·-·A·variant·of·the·versioned_rows·example·built·around·the
764 concept·of·a·“vertical·table”·structure,·like·those·illustrated·in764 concept·of·a·“vertical·table”·structure,·like·those·illustrated·in
765 <a·class="reference·internal"·href="#examples-vertical-tables"><span·class="std·std-ref">Vertical·Attribute·Mapping</span></a>·examples.</p>765 <a·class="reference·internal"·href="#examples-vertical-tables"><span·class="std·std-ref">Vertical·Attribute·Mapping</span></a>·examples.</p>
766 </p></li>766 </p></li>
767 <li><p><p><a·class="reference·external"·href="../_modules/examples/versioned_rows/versioned_rows.html">versioned_rows.py</a>·-·Illustrates·a·method·to·intercept·changes·on·objects,·turning767 <li><p><p><a·class="reference·external"·href="../_modules/examples/versioned_rows/versioned_rows_w_versionid.html">versioned_rows_w_versionid.py</a>·-·Illustrates·a·method·to·intercept·changes·on·objects,·turning
768 an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,·so·that·a·new768 an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,·so·that·a·new
769 row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.</p>769 row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.</p>
770 </p></li>770 </p></li>
771 <li><p><p><a·class="reference·external"·href="../_modules/examples/versioned_rows/versioned_rows_w_versionid.html">versioned_rows_w_versionid.py</a>·-·Illustrates·a·method·to·intercept·changes·on·objects,·turning771 <li><p><p><a·class="reference·external"·href="../_modules/examples/versioned_rows/versioned_rows.html">versioned_rows.py</a>·-·Illustrates·a·method·to·intercept·changes·on·objects,·turning
772 an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,·so·that·a·new772 an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,·so·that·a·new
773 row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.</p>773 row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.</p>
774 </p></li>774 </p></li>
775 </ul>775 </ul>
776 </p>776 </p>
777 </section>777 </section>
778 </section>778 </section>
Offset 817, 40 lines modifiedOffset 817, 40 lines modified
817 <section·id="module-examples.inheritance">817 <section·id="module-examples.inheritance">
818 <span·id="basic-inheritance-mappings"></span><h3>Basic·Inheritance·Mappings<a·class="headerlink"·href="#module-examples.inheritance"·title="Link·to·this·heading">¶</a></h3>818 <span·id="basic-inheritance-mappings"></span><h3>Basic·Inheritance·Mappings<a·class="headerlink"·href="#module-examples.inheritance"·title="Link·to·this·heading">¶</a></h3>
819 <p>Working·examples·of·single-table,·joined-table,·and·concrete-table819 <p>Working·examples·of·single-table,·joined-table,·and·concrete-table
820 inheritance·as·described·in·<a·class="reference·internal"·href="inheritance.html"><span·class="std·std-ref">Mapping·Class·Inheritance·Hierarchies</span></a>.</p>820 inheritance·as·described·in·<a·class="reference·internal"·href="inheritance.html"><span·class="std·std-ref">Mapping·Class·Inheritance·Hierarchies</span></a>.</p>
821 <p>Listing·of·files:<ul·class="simple">821 <p>Listing·of·files:<ul·class="simple">
822 <li><p><p><a·class="reference·external"·href="../_modules/examples/inheritance/concrete.html">concrete.py</a>·-·Concrete-table·(table-per-class)·inheritance·example.</p>822 <li><p><p><a·class="reference·external"·href="../_modules/examples/inheritance/concrete.html">concrete.py</a>·-·Concrete-table·(table-per-class)·inheritance·example.</p>
823 </p></li>823 </p></li>
824 <li><p><p><a·class="reference·external"·href="../_modules/examples/inheritance/joined.html">joined.py</a>·-·Joined-table·(table-per-subclass)·inheritance·example.</p> 
825 </p></li> 
826 <li><p><p><a·class="reference·external"·href="../_modules/examples/inheritance/single.html">single.py</a>·-·Single-table·(table-per-hierarchy)·inheritance·example.</p>824 <li><p><p><a·class="reference·external"·href="../_modules/examples/inheritance/single.html">single.py</a>·-·Single-table·(table-per-hierarchy)·inheritance·example.</p>
827 </p></li>825 </p></li>
 826 <li><p><p><a·class="reference·external"·href="../_modules/examples/inheritance/joined.html">joined.py</a>·-·Joined-table·(table-per-subclass)·inheritance·example.</p>
 827 </p></li>
828 </ul>828 </ul>
829 </p>829 </p>
830 </section>830 </section>
831 </section>831 </section>
832 <section·id="special-apis">832 <section·id="special-apis">
Max diff block lines reached; 6432/17061 bytes (37.70%) of diff not shown.
13.4 KB
html2text {}
    
Offset 96, 32 lines modifiedOffset 96, 33 lines modified
96 Listing·of·files:96 Listing·of·files:
97 ····*·_\x8a_\x8d_\x8j_\x8a_\x8c_\x8e_\x8n_\x8c_\x8y_\x8__\x8l_\x8i_\x8s_\x8t_\x8._\x8p_\x8y97 ····*·_\x8a_\x8d_\x8j_\x8a_\x8c_\x8e_\x8n_\x8c_\x8y_\x8__\x8l_\x8i_\x8s_\x8t_\x8._\x8p_\x8y
98 *\x8**\x8**\x8**\x8*·A\x8As\x8ss\x8so\x8oc\x8ci\x8ia\x8at\x8ti\x8io\x8on\x8ns\x8s_\x8?\x8·*\x8**\x8**\x8**\x8*98 *\x8**\x8**\x8**\x8*·A\x8As\x8ss\x8so\x8oc\x8ci\x8ia\x8at\x8ti\x8io\x8on\x8ns\x8s_\x8?\x8·*\x8**\x8**\x8**\x8*
99 Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an99 Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an
100 intermediary·class·mediates·the·relationship·between·two·classes·that·are100 intermediary·class·mediates·the·relationship·between·two·classes·that·are
101 associated·in·a·many-to-many·pattern.101 associated·in·a·many-to-many·pattern.
102 Listing·of·files:102 Listing·of·files:
 103 ····*·_\x8d_\x8i_\x8c_\x8t_\x8__\x8o_\x8f_\x8__\x8s_\x8e_\x8t_\x8s_\x8__\x8w_\x8i_\x8t_\x8h_\x8__\x8d_\x8e_\x8f_\x8a_\x8u_\x8l_\x8t_\x8._\x8p_\x8y·-·An·advanced·association·proxy·example
 104 ······which·illustrates·nesting·of·association·proxies·to·produce·multi-level
 105 ······Python·collections,·in·this·case·a·dictionary·with·string·keys·and·sets
 106 ······of·integers·as·values,·which·conceal·the·underlying·mapped·classes.
103 ····*·_\x8b_\x8a_\x8s_\x8i_\x8c_\x8__\x8a_\x8s_\x8s_\x8o_\x8c_\x8i_\x8a_\x8t_\x8i_\x8o_\x8n_\x8._\x8p_\x8y·-·Illustrate·a·many-to-many·relationship·between·an107 _\x8b_\x8a_\x8s_\x8i_\x8c_\x8__\x8a_\x8s_\x8s_\x8o_\x8c_\x8i_\x8a_\x8t_\x8i_\x8o_\x8n_\x8._\x8p_\x8y·-·Illustrate·a·many-to-many·relationship·between·an
104 ······“Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price108 “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price·with
105 ······with·each·via·an·association·object·called·“OrderItem”109 each·via·an·association·object·called·“OrderItem”
106 _\x8p_\x8r_\x8o_\x8x_\x8i_\x8e_\x8d_\x8__\x8a_\x8s_\x8s_\x8o_\x8c_\x8i_\x8a_\x8t_\x8i_\x8o_\x8n_\x8._\x8p_\x8y·-·Same·example·as·basic_association,·adding·in·usage·of110 _\x8p_\x8r_\x8o_\x8x_\x8i_\x8e_\x8d_\x8__\x8a_\x8s_\x8s_\x8o_\x8c_\x8i_\x8a_\x8t_\x8i_\x8o_\x8n_\x8._\x8p_\x8y·-·Same·example·as·basic_association,·adding·in·usage·of
107 _\x8s_\x8q_\x8l_\x8a_\x8l_\x8c_\x8h_\x8e_\x8m_\x8y_\x8._\x8e_\x8x_\x8t_\x8._\x8a_\x8s_\x8s_\x8o_\x8c_\x8i_\x8a_\x8t_\x8i_\x8o_\x8n_\x8p_\x8r_\x8o_\x8x_\x8y·to·make·explicit·references·to·OrderItem111 _\x8s_\x8q_\x8l_\x8a_\x8l_\x8c_\x8h_\x8e_\x8m_\x8y_\x8._\x8e_\x8x_\x8t_\x8._\x8a_\x8s_\x8s_\x8o_\x8c_\x8i_\x8a_\x8t_\x8i_\x8o_\x8n_\x8p_\x8r_\x8o_\x8x_\x8y·to·make·explicit·references·to·OrderItem
108 optional.112 optional.
109 _\x8d_\x8i_\x8c_\x8t_\x8__\x8o_\x8f_\x8__\x8s_\x8e_\x8t_\x8s_\x8__\x8w_\x8i_\x8t_\x8h_\x8__\x8d_\x8e_\x8f_\x8a_\x8u_\x8l_\x8t_\x8._\x8p_\x8y·-·An·advanced·association·proxy·example·which 
110 illustrates·nesting·of·association·proxies·to·produce·multi-level·Python 
111 collections,·in·this·case·a·dictionary·with·string·keys·and·sets·of·integers·as 
112 values,·which·conceal·the·underlying·mapped·classes. 
113 *\x8**\x8**\x8**\x8*·A\x8As\x8sy\x8yn\x8nc\x8ci\x8io\x8o·I\x8In\x8nt\x8te\x8eg\x8gr\x8ra\x8at\x8ti\x8io\x8on\x8n_\x8?\x8·*\x8**\x8**\x8**\x8*113 *\x8**\x8**\x8**\x8*·A\x8As\x8sy\x8yn\x8nc\x8ci\x8io\x8o·I\x8In\x8nt\x8te\x8eg\x8gr\x8ra\x8at\x8ti\x8io\x8on\x8n_\x8?\x8·*\x8**\x8**\x8**\x8*
114 Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.114 Examples·illustrating·the·asyncio·engine·feature·of·SQLAlchemy.
115 Listing·of·files:115 Listing·of·files:
116 ····*·_\x8a_\x8s_\x8y_\x8n_\x8c_\x8__\x8o_\x8r_\x8m_\x8__\x8w_\x8r_\x8i_\x8t_\x8e_\x8o_\x8n_\x8l_\x8y_\x8._\x8p_\x8y·-·Illustrates·using·w\x8wr\x8ri\x8it\x8te\x8e·o\x8on\x8nl\x8ly\x8y·r\x8re\x8el\x8la\x8at\x8ti\x8io\x8on\x8ns\x8sh\x8hi\x8ip\x8ps\x8s·for 
117 ······simpler·handling·of·ORM·collections·under·asyncio. 
118 _.g_.r_.e_.e_.n_.l_.e_.t_.__.o_.r_.m_.._.p_.y·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession116 ····*·_.g_.r_.e_.e_.n_.l_.e_.t_.__.o_.r_.m_.._.p_.y·-·Illustrates·use·of·the
 117 ······sqlalchemy.ext.asyncio.AsyncSession·object·for·asynchronous·ORM·use,
119 object·for·asynchronous·ORM·use,·including·the·optional·run_sync()·method.118 ······including·the·optional·run_sync()·method.
120 _\x8b_\x8a_\x8s_\x8i_\x8c_\x8._\x8p_\x8y·-·Illustrates·the·asyncio·engine·/·connection·interface.119 _\x8b_\x8a_\x8s_\x8i_\x8c_\x8._\x8p_\x8y·-·Illustrates·the·asyncio·engine·/·connection·interface.
 120 _\x8a_\x8s_\x8y_\x8n_\x8c_\x8__\x8o_\x8r_\x8m_\x8__\x8w_\x8r_\x8i_\x8t_\x8e_\x8o_\x8n_\x8l_\x8y_\x8._\x8p_\x8y·-·Illustrates·using·w\x8wr\x8ri\x8it\x8te\x8e·o\x8on\x8nl\x8ly\x8y·r\x8re\x8el\x8la\x8at\x8ti\x8io\x8on\x8ns\x8sh\x8hi\x8ip\x8ps\x8s·for·simpler
 121 handling·of·ORM·collections·under·asyncio.
121 _\x8a_\x8s_\x8y_\x8n_\x8c_\x8__\x8o_\x8r_\x8m_\x8._\x8p_\x8y·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession122 _\x8a_\x8s_\x8y_\x8n_\x8c_\x8__\x8o_\x8r_\x8m_\x8._\x8p_\x8y·-·Illustrates·use·of·the·sqlalchemy.ext.asyncio.AsyncSession
122 object·for·asynchronous·ORM·use.123 object·for·asynchronous·ORM·use.
123 _\x8g_\x8a_\x8t_\x8h_\x8e_\x8r_\x8__\x8o_\x8r_\x8m_\x8__\x8s_\x8t_\x8a_\x8t_\x8e_\x8m_\x8e_\x8n_\x8t_\x8s_\x8._\x8p_\x8y·-·Illustrates·how·to·run·many·statements·concurrently124 _\x8g_\x8a_\x8t_\x8h_\x8e_\x8r_\x8__\x8o_\x8r_\x8m_\x8__\x8s_\x8t_\x8a_\x8t_\x8e_\x8m_\x8e_\x8n_\x8t_\x8s_\x8._\x8p_\x8y·-·Illustrates·how·to·run·many·statements·concurrently
124 using·asyncio.gather()·along·many·asyncio·database·connections,·merging·ORM125 using·asyncio.gather()·along·many·asyncio·database·connections,·merging·ORM
125 results·into·a·single·AsyncSession.126 results·into·a·single·AsyncSession.
126 *\x8**\x8**\x8**\x8*·D\x8Di\x8ir\x8re\x8ec\x8ct\x8te\x8ed\x8d·G\x8Gr\x8ra\x8ap\x8ph\x8hs\x8s_\x8?\x8·*\x8**\x8**\x8**\x8*127 *\x8**\x8**\x8**\x8*·D\x8Di\x8ir\x8re\x8ec\x8ct\x8te\x8ed\x8d·G\x8Gr\x8ra\x8ap\x8ph\x8hs\x8s_\x8?\x8·*\x8**\x8**\x8**\x8*
127 An·example·of·persistence·for·a·directed·graph·structure.·The·graph·is·stored128 An·example·of·persistence·for·a·directed·graph·structure.·The·graph·is·stored
Offset 220, 29 lines modifiedOffset 221, 29 lines modified
220 $·python·-m·examples.performance·bulk_inserts·\221 $·python·-m·examples.performance·bulk_inserts·\
221 ····--dburl·mysql+mysqldb://scott:tiger@localhost/test·\222 ····--dburl·mysql+mysqldb://scott:tiger@localhost/test·\
222 ····--profile·--num·1000223 ····--profile·--num·1000
223 See·also224 See·also
224 _\x8H_\x8o_\x8w_\x8·_\x8c_\x8a_\x8n_\x8·_\x8I_\x8·_\x8p_\x8r_\x8o_\x8f_\x8i_\x8l_\x8e_\x8·_\x8a_\x8·_\x8S_\x8Q_\x8L_\x8A_\x8l_\x8c_\x8h_\x8e_\x8m_\x8y_\x8·_\x8p_\x8o_\x8w_\x8e_\x8r_\x8e_\x8d_\x8·_\x8a_\x8p_\x8p_\x8l_\x8i_\x8c_\x8a_\x8t_\x8i_\x8o_\x8n_\x8?225 _\x8H_\x8o_\x8w_\x8·_\x8c_\x8a_\x8n_\x8·_\x8I_\x8·_\x8p_\x8r_\x8o_\x8f_\x8i_\x8l_\x8e_\x8·_\x8a_\x8·_\x8S_\x8Q_\x8L_\x8A_\x8l_\x8c_\x8h_\x8e_\x8m_\x8y_\x8·_\x8p_\x8o_\x8w_\x8e_\x8r_\x8e_\x8d_\x8·_\x8a_\x8p_\x8p_\x8l_\x8i_\x8c_\x8a_\x8t_\x8i_\x8o_\x8n_\x8?
225 *\x8**\x8**\x8*·F\x8Fi\x8il\x8le\x8e·L\x8Li\x8is\x8st\x8ti\x8in\x8ng\x8g_\x8?\x8·*\x8**\x8**\x8*226 *\x8**\x8**\x8*·F\x8Fi\x8il\x8le\x8e·L\x8Li\x8is\x8st\x8ti\x8in\x8ng\x8g_\x8?\x8·*\x8**\x8**\x8*
226 Listing·of·files:227 Listing·of·files:
 228 ····*·_\x8__\x8__\x8m_\x8a_\x8i_\x8n_\x8__\x8__\x8._\x8p_\x8y·-·Allows·the·examples/performance·package·to·be·run·as·a
 229 ······script.
227 ····*·_.s_.i_.n_.g_.l_.e_.__.i_.n_.s_.e_.r_.t_.s_.._.p_.y·-·In·this·series·of·tests,·we’re·looking·at·a·method230 _.s_.i_.n_.g_.l_.e_.__.i_.n_.s_.e_.r_.t_.s_.._.p_.y·-·In·this·series·of·tests,·we’re·looking·at·a·method·that
228 ······that·inserts·a·row·within·a·distinct·transaction,·and·afterwards·returns231 inserts·a·row·within·a·distinct·transaction,·and·afterwards·returns·to
229 ······to·essentially·a·“closed”·state.·This·would·be·analogous·to·an·API·call232 essentially·a·“closed”·state.·This·would·be·analogous·to·an·API·call·that
230 ······that·starts·up·a·database·connection,·inserts·the·row,·commits·and233 starts·up·a·database·connection,·inserts·the·row,·commits·and·closes.
231 ······closes. 
232 _\x8s_\x8h_\x8o_\x8r_\x8t_\x8__\x8s_\x8e_\x8l_\x8e_\x8c_\x8t_\x8s_\x8._\x8p_\x8y·-·This·series·of·tests·illustrates·different·ways·to·SELECT·a 
233 single·record·by·primary·key 
234 _\x8b_\x8u_\x8l_\x8k_\x8__\x8u_\x8p_\x8d_\x8a_\x8t_\x8e_\x8s_\x8._\x8p_\x8y·-·This·series·of·tests·will·illustrate·different·ways·to·UPDATE234 _\x8b_\x8u_\x8l_\x8k_\x8__\x8u_\x8p_\x8d_\x8a_\x8t_\x8e_\x8s_\x8._\x8p_\x8y·-·This·series·of·tests·will·illustrate·different·ways·to·UPDATE
235 a·large·number·of·rows·in·bulk·(under·construction!·there’s·just·one·test·at235 a·large·number·of·rows·in·bulk·(under·construction!·there’s·just·one·test·at
236 the·moment)236 the·moment)
237 _\x8l_\x8a_\x8r_\x8g_\x8e_\x8__\x8r_\x8e_\x8s_\x8u_\x8l_\x8t_\x8s_\x8e_\x8t_\x8s_\x8._\x8p_\x8y·-·In·this·series·of·tests,·we·are·looking·at·time·to·load·a 
238 large·number·of·very·small·and·simple·rows. 
239 _\x8__\x8__\x8m_\x8a_\x8i_\x8n_\x8__\x8__\x8._\x8p_\x8y·-·Allows·the·examples/performance·package·to·be·run·as·a·script. 
240 _\x8b_\x8u_\x8l_\x8k_\x8__\x8i_\x8n_\x8s_\x8e_\x8r_\x8t_\x8s_\x8._\x8p_\x8y·-·This·series·of·tests·illustrates·different·ways·to·INSERT·a237 _\x8b_\x8u_\x8l_\x8k_\x8__\x8i_\x8n_\x8s_\x8e_\x8r_\x8t_\x8s_\x8._\x8p_\x8y·-·This·series·of·tests·illustrates·different·ways·to·INSERT·a
241 large·number·of·rows·in·bulk.238 large·number·of·rows·in·bulk.
 239 _\x8l_\x8a_\x8r_\x8g_\x8e_\x8__\x8r_\x8e_\x8s_\x8u_\x8l_\x8t_\x8s_\x8e_\x8t_\x8s_\x8._\x8p_\x8y·-·In·this·series·of·tests,·we·are·looking·at·time·to·load·a
 240 large·number·of·very·small·and·simple·rows.
 241 _\x8s_\x8h_\x8o_\x8r_\x8t_\x8__\x8s_\x8e_\x8l_\x8e_\x8c_\x8t_\x8s_\x8._\x8p_\x8y·-·This·series·of·tests·illustrates·different·ways·to·SELECT·a
 242 single·record·by·primary·key
242 *\x8**\x8**\x8*·R\x8Ru\x8un\x8nn\x8ni\x8in\x8ng\x8g·a\x8al\x8ll\x8l·t\x8te\x8es\x8st\x8ts\x8s·w\x8wi\x8it\x8th\x8h·t\x8ti\x8im\x8me\x8e_\x8?\x8·*\x8**\x8**\x8*243 *\x8**\x8**\x8*·R\x8Ru\x8un\x8nn\x8ni\x8in\x8ng\x8g·a\x8al\x8ll\x8l·t\x8te\x8es\x8st\x8ts\x8s·w\x8wi\x8it\x8th\x8h·t\x8ti\x8im\x8me\x8e_\x8?\x8·*\x8**\x8**\x8*
243 This·is·the·default·form·of·run:244 This·is·the·default·form·of·run:
244 $·python·-m·examples.performance·single_inserts245 $·python·-m·examples.performance·single_inserts
245 Tests·to·run:·test_orm_commit,·test_bulk_save,246 Tests·to·run:·test_orm_commit,·test_bulk_save,
246 ··············test_bulk_insert_dictionaries,·test_core,247 ··············test_bulk_insert_dictionaries,·test_core,
247 ··············test_core_query_caching,·test_dbapi_raw_w_connect,248 ··············test_core_query_caching,·test_dbapi_raw_w_connect,
248 ··············test_dbapi_raw_w_pool249 ··············test_dbapi_raw_w_pool
Offset 476, 20 lines modifiedOffset 477, 20 lines modified
476 ······technique·of·versioned_rows.py,·but·also·emits·an·UPDATE·on·the·o\x8ol\x8ld\x8d·row477 ······technique·of·versioned_rows.py,·but·also·emits·an·UPDATE·on·the·o\x8ol\x8ld\x8d·row
477 ······to·affect·a·change·in·timestamp.·Also·includes·a478 ······to·affect·a·change·in·timestamp.·Also·includes·a
478 ······_\x8S_\x8e_\x8s_\x8s_\x8i_\x8o_\x8n_\x8E_\x8v_\x8e_\x8n_\x8t_\x8s_\x8._\x8d_\x8o_\x8__\x8o_\x8r_\x8m_\x8__\x8e_\x8x_\x8e_\x8c_\x8u_\x8t_\x8e_\x8(_\x8)·hook·to·limit·queries·to·only·the·most479 ······_\x8S_\x8e_\x8s_\x8s_\x8i_\x8o_\x8n_\x8E_\x8v_\x8e_\x8n_\x8t_\x8s_\x8._\x8d_\x8o_\x8__\x8o_\x8r_\x8m_\x8__\x8e_\x8x_\x8e_\x8c_\x8u_\x8t_\x8e_\x8(_\x8)·hook·to·limit·queries·to·only·the·most
479 ······recent·version.480 ······recent·version.
480 _\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8e_\x8d_\x8__\x8m_\x8a_\x8p_\x8._\x8p_\x8y·-·A·variant·of·the·versioned_rows·example·built·around·the481 _\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8e_\x8d_\x8__\x8m_\x8a_\x8p_\x8._\x8p_\x8y·-·A·variant·of·the·versioned_rows·example·built·around·the
481 concept·of·a·“vertical·table”·structure,·like·those·illustrated·in·_\x8V_\x8e_\x8r_\x8t_\x8i_\x8c_\x8a_\x8l482 concept·of·a·“vertical·table”·structure,·like·those·illustrated·in·_\x8V_\x8e_\x8r_\x8t_\x8i_\x8c_\x8a_\x8l
482 _\x8A_\x8t_\x8t_\x8r_\x8i_\x8b_\x8u_\x8t_\x8e_\x8·_\x8M_\x8a_\x8p_\x8p_\x8i_\x8n_\x8g·examples.483 _\x8A_\x8t_\x8t_\x8r_\x8i_\x8b_\x8u_\x8t_\x8e_\x8·_\x8M_\x8a_\x8p_\x8p_\x8i_\x8n_\x8g·examples.
483 _\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8e_\x8d_\x8__\x8r_\x8o_\x8w_\x8s_\x8._\x8p_\x8y·-·Illustrates·a·method·to·intercept·changes·on·objects, 
484 turning·an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,·so·that·a 
485 new·row·is·inserted·with·the·new·data,·keeping·the·old·row·intact. 
486 _\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8e_\x8d_\x8__\x8r_\x8o_\x8w_\x8s_\x8__\x8w_\x8__\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8i_\x8d_\x8._\x8p_\x8y·-·Illustrates·a·method·to·intercept·changes·on484 _\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8e_\x8d_\x8__\x8r_\x8o_\x8w_\x8s_\x8__\x8w_\x8__\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8i_\x8d_\x8._\x8p_\x8y·-·Illustrates·a·method·to·intercept·changes·on
487 objects,·turning·an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,485 objects,·turning·an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,
488 so·that·a·new·row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.486 so·that·a·new·row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.
 487 _\x8v_\x8e_\x8r_\x8s_\x8i_\x8o_\x8n_\x8e_\x8d_\x8__\x8r_\x8o_\x8w_\x8s_\x8._\x8p_\x8y·-·Illustrates·a·method·to·intercept·changes·on·objects,
 488 turning·an·UPDATE·statement·on·a·single·row·into·an·INSERT·statement,·so·that·a
 489 new·row·is·inserted·with·the·new·data,·keeping·the·old·row·intact.
489 *\x8**\x8**\x8**\x8*·V\x8Ve\x8er\x8rt\x8ti\x8ic\x8ca\x8al\x8l·A\x8At\x8tt\x8tr\x8ri\x8ib\x8bu\x8ut\x8te\x8e·M\x8Ma\x8ap\x8pp\x8pi\x8in\x8ng\x8g_\x8?\x8·*\x8**\x8**\x8**\x8*490 *\x8**\x8**\x8**\x8*·V\x8Ve\x8er\x8rt\x8ti\x8ic\x8ca\x8al\x8l·A\x8At\x8tt\x8tr\x8ri\x8ib\x8bu\x8ut\x8te\x8e·M\x8Ma\x8ap\x8pp\x8pi\x8in\x8ng\x8g_\x8?\x8·*\x8**\x8**\x8**\x8*
490 Illustrates·“vertical·table”·mappings.491 Illustrates·“vertical·table”·mappings.
491 A·“vertical·table”·refers·to·a·technique·where·individual·attributes·of·an492 A·“vertical·table”·refers·to·a·technique·where·individual·attributes·of·an
492 object·are·stored·as·distinct·rows·in·a·table.·The·“vertical·table”·technique493 object·are·stored·as·distinct·rows·in·a·table.·The·“vertical·table”·technique
493 is·used·to·persist·objects·which·can·have·a·varied·set·of·attributes,·at·the494 is·used·to·persist·objects·which·can·have·a·varied·set·of·attributes,·at·the
494 expense·of·simple·query·control·and·brevity.·It·is·commonly·found·in·content/495 expense·of·simple·query·control·and·brevity.·It·is·commonly·found·in·content/
495 document·management·systems·in·order·to·represent·user-created·structures496 document·management·systems·in·order·to·represent·user-created·structures
Offset 517, 28 lines modifiedOffset 518, 28 lines modified
517 dictionary.518 dictionary.
518 *\x8**\x8**\x8**\x8**\x8*·I\x8In\x8nh\x8he\x8er\x8ri\x8it\x8ta\x8an\x8nc\x8ce\x8e·M\x8Ma\x8ap\x8pp\x8pi\x8in\x8ng\x8g·R\x8Re\x8ec\x8ci\x8ip\x8pe\x8es\x8s_\x8?\x8·*\x8**\x8**\x8**\x8**\x8*519 *\x8**\x8**\x8**\x8**\x8*·I\x8In\x8nh\x8he\x8er\x8ri\x8it\x8ta\x8an\x8nc\x8ce\x8e·M\x8Ma\x8ap\x8pp\x8pi\x8in\x8ng\x8g·R\x8Re\x8ec\x8ci\x8ip\x8pe\x8es\x8s_\x8?\x8·*\x8**\x8**\x8**\x8**\x8*
519 *\x8**\x8**\x8**\x8*·B\x8Ba\x8as\x8si\x8ic\x8c·I\x8In\x8nh\x8he\x8er\x8ri\x8it\x8ta\x8an\x8nc\x8ce\x8e·M\x8Ma\x8ap\x8pp\x8pi\x8in\x8ng\x8gs\x8s_\x8?\x8·*\x8**\x8**\x8**\x8*520 *\x8**\x8**\x8**\x8*·B\x8Ba\x8as\x8si\x8ic\x8c·I\x8In\x8nh\x8he\x8er\x8ri\x8it\x8ta\x8an\x8nc\x8ce\x8e·M\x8Ma\x8ap\x8pp\x8pi\x8in\x8ng\x8gs\x8s_\x8?\x8·*\x8**\x8**\x8**\x8*
520 Working·examples·of·single-table,·joined-table,·and·concrete-table·inheritance521 Working·examples·of·single-table,·joined-table,·and·concrete-table·inheritance
521 as·described·in·_\x8M_\x8a_\x8p_\x8p_\x8i_\x8n_\x8g_\x8·_\x8C_\x8l_\x8a_\x8s_\x8s_\x8·_\x8I_\x8n_\x8h_\x8e_\x8r_\x8i_\x8t_\x8a_\x8n_\x8c_\x8e_\x8·_\x8H_\x8i_\x8e_\x8r_\x8a_\x8r_\x8c_\x8h_\x8i_\x8e_\x8s.522 as·described·in·_\x8M_\x8a_\x8p_\x8p_\x8i_\x8n_\x8g_\x8·_\x8C_\x8l_\x8a_\x8s_\x8s_\x8·_\x8I_\x8n_\x8h_\x8e_\x8r_\x8i_\x8t_\x8a_\x8n_\x8c_\x8e_\x8·_\x8H_\x8i_\x8e_\x8r_\x8a_\x8r_\x8c_\x8h_\x8i_\x8e_\x8s.
522 Listing·of·files:523 Listing·of·files:
523 ····*·_\x8c_\x8o_\x8n_\x8c_\x8r_\x8e_\x8t_\x8e_\x8._\x8p_\x8y·-·Concrete-table·(table-per-class)·inheritance·example.524 ····*·_\x8c_\x8o_\x8n_\x8c_\x8r_\x8e_\x8t_\x8e_\x8._\x8p_\x8y·-·Concrete-table·(table-per-class)·inheritance·example.
524 _\x8j_\x8o_\x8i_\x8n_\x8e_\x8d_\x8._\x8p_\x8y·-·Joined-table·(table-per-subclass)·inheritance·example. 
525 _\x8s_\x8i_\x8n_\x8g_\x8l_\x8e_\x8._\x8p_\x8y·-·Single-table·(table-per-hierarchy)·inheritance·example.525 _\x8s_\x8i_\x8n_\x8g_\x8l_\x8e_\x8._\x8p_\x8y·-·Single-table·(table-per-hierarchy)·inheritance·example.
 526 _\x8j_\x8o_\x8i_\x8n_\x8e_\x8d_\x8._\x8p_\x8y·-·Joined-table·(table-per-subclass)·inheritance·example.
526 *\x8**\x8**\x8**\x8**\x8*·S\x8Sp\x8pe\x8ec\x8ci\x8ia\x8al\x8l·A\x8AP\x8PI\x8Is\x8s_\x8?\x8·*\x8**\x8**\x8**\x8**\x8*527 *\x8**\x8**\x8**\x8**\x8*·S\x8Sp\x8pe\x8ec\x8ci\x8ia\x8al\x8l·A\x8AP\x8PI\x8Is\x8s_\x8?\x8·*\x8**\x8**\x8**\x8**\x8*
527 *\x8**\x8**\x8**\x8*·A\x8At\x8tt\x8tr\x8ri\x8ib\x8bu\x8ut\x8te\x8e·I\x8In\x8ns\x8st\x8tr\x8ru\x8um\x8me\x8en\x8nt\x8ta\x8at\x8ti\x8io\x8on\x8n_\x8?\x8·*\x8**\x8**\x8**\x8*528 *\x8**\x8**\x8**\x8*·A\x8At\x8tt\x8tr\x8ri\x8ib\x8bu\x8ut\x8te\x8e·I\x8In\x8ns\x8st\x8tr\x8ru\x8um\x8me\x8en\x8nt\x8ta\x8at\x8ti\x8io\x8on\x8n_\x8?\x8·*\x8**\x8**\x8**\x8*
528 Examples·illustrating·modifications·to·SQLAlchemy’s·attribute·management529 Examples·illustrating·modifications·to·SQLAlchemy’s·attribute·management
529 system.530 system.
530 Listing·of·files:531 Listing·of·files:
 532 ····*·_\x8c_\x8u_\x8s_\x8t_\x8o_\x8m_\x8__\x8m_\x8a_\x8n_\x8a_\x8g_\x8e_\x8m_\x8e_\x8n_\x8t_\x8._\x8p_\x8y·-·Illustrates·customized·class·instrumentation,
 533 ······using·the·_\x8s_\x8q_\x8l_\x8a_\x8l_\x8c_\x8h_\x8e_\x8m_\x8y_\x8._\x8e_\x8x_\x8t_\x8._\x8i_\x8n_\x8s_\x8t_\x8r_\x8u_\x8m_\x8e_\x8n_\x8t_\x8a_\x8t_\x8i_\x8o_\x8n·extension·package.
531 ····*·_.l_.i_.s_.t_.e_.n_.__.f_.o_.r_.__.e_.v_.e_.n_.t_.s_.._.p_.y·-·Illustrates·how·to·attach·events·to·all534 _.l_.i_.s_.t_.e_.n_.__.f_.o_.r_.__.e_.v_.e_.n_.t_.s_.._.p_.y·-·Illustrates·how·to·attach·events·to·all·instrumented
532 ······instrumented·attributes·and·listen·for·change·events.535 attributes·and·listen·for·change·events.
533 _\x8a_\x8c_\x8t_\x8i_\x8v_\x8e_\x8__\x8c_\x8o_\x8l_\x8u_\x8m_\x8n_\x8__\x8d_\x8e_\x8f_\x8a_\x8u_\x8l_\x8t_\x8s_\x8._\x8p_\x8y·-·Illustrates·use·of·the·_\x8A_\x8t_\x8t_\x8r_\x8i_\x8b_\x8u_\x8t_\x8e_\x8E_\x8v_\x8e_\x8n_\x8t_\x8s_\x8._\x8i_\x8n_\x8i_\x8t_\x8__\x8s_\x8c_\x8a_\x8l_\x8a_\x8r536 _\x8a_\x8c_\x8t_\x8i_\x8v_\x8e_\x8__\x8c_\x8o_\x8l_\x8u_\x8m_\x8n_\x8__\x8d_\x8e_\x8f_\x8a_\x8u_\x8l_\x8t_\x8s_\x8._\x8p_\x8y·-·Illustrates·use·of·the·_\x8A_\x8t_\x8t_\x8r_\x8i_\x8b_\x8u_\x8t_\x8e_\x8E_\x8v_\x8e_\x8n_\x8t_\x8s_\x8._\x8i_\x8n_\x8i_\x8t_\x8__\x8s_\x8c_\x8a_\x8l_\x8a_\x8r
534 _\x8(_\x8)·event,·in·conjunction·with·Core·column·defaults·to·provide·ORM·objects·that537 _\x8(_\x8)·event,·in·conjunction·with·Core·column·defaults·to·provide·ORM·objects·that
535 automatically·produce·the·default·value·when·an·un-set·attribute·is·accessed.538 automatically·produce·the·default·value·when·an·un-set·attribute·is·accessed.
536 _\x8c_\x8u_\x8s_\x8t_\x8o_\x8m_\x8__\x8m_\x8a_\x8n_\x8a_\x8g_\x8e_\x8m_\x8e_\x8n_\x8t_\x8._\x8p_\x8y·-·Illustrates·customized·class·instrumentation,·using·the 
537 _\x8s_\x8q_\x8l_\x8a_\x8l_\x8c_\x8h_\x8e_\x8m_\x8y_\x8._\x8e_\x8x_\x8t_\x8._\x8i_\x8n_\x8s_\x8t_\x8r_\x8u_\x8m_\x8e_\x8n_\x8t_\x8a_\x8t_\x8i_\x8o_\x8n·extension·package. 
538 *\x8**\x8**\x8**\x8*·H\x8Ho\x8or\x8ri\x8iz\x8zo\x8on\x8nt\x8ta\x8al\x8l·S\x8Sh\x8ha\x8ar\x8rd\x8di\x8in\x8ng\x8g_\x8?\x8·*\x8**\x8**\x8**\x8*539 *\x8**\x8**\x8**\x8*·H\x8Ho\x8or\x8ri\x8iz\x8zo\x8on\x8nt\x8ta\x8al\x8l·S\x8Sh\x8ha\x8ar\x8rd\x8di\x8in\x8ng\x8g_\x8?\x8·*\x8**\x8**\x8**\x8*
539 A·basic·example·of·using·the·SQLAlchemy·Sharding·API.·Sharding·refers·to540 A·basic·example·of·using·the·SQLAlchemy·Sharding·API.·Sharding·refers·to
540 horizontally·scaling·data·across·multiple·databases.541 horizontally·scaling·data·across·multiple·databases.
Max diff block lines reached; 3075/13667 bytes (22.50%) of diff not shown.