Offset 1, 5 lines modified | Offset 1, 5 lines modified | ||
1 | · | 1 | ·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.deb | 2 | ·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.deb | 3 | ·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.deb | 4 | ·0955e7f12a0b73c1ab8406c88fbab7d2·1196068·python·optional·python3-sqlalchemy_2.0.32+ds1-1_all.deb |
Offset 1, 3 lines modified | Offset 1, 3 lines modified | ||
1 | -rw-r--r--···0········0········0········4·2024-08-23·07:52:58.000000·debian-binary | 1 | -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.xz | 2 | -rw-r--r--···0········0········0····13924·2024-08-23·07:52:58.000000·control.tar.xz |
3 | -rw-r--r--···0········0········0··3942 | 3 | -rw-r--r--···0········0········0··3942216·2024-08-23·07:52:58.000000·data.tar.xz |
Offset 9239, 15 lines modified | Offset 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-5 | 9253 | <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·test | 9254 | 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·Unicode | 9255 | 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·still | 9256 | or·Py2K·strings·for·the·VARCHAR·and·NVARCHAR·datatypes.··The·check·still |
9250 | occurs·by·default·under·Python·2,·however·the·mechanism·to·test·the | 9257 | 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·also | 9258 | 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·3 | 9260 | <p>This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3 |
Offset 9258, 21 lines modified | Offset 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>·or | 9266 | 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·conversion | 9267 | <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·specific | 9273 | 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·than | 9274 | schema·name·occurs·within·the·execution·phase·of·the·statement,·rather·than |
9275 | at·the·compile·phase.···This·is·to·support·the·statement·being·efficiently | 9275 | at·the·compile·phase.···This·is·to·support·the·statement·being·efficiently |
9276 | cached.···Previously,·the·current·schema·being·rendered·into·the·statement | 9276 | 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·hundreds | 9278 | meaning·that·for·a·run·against·hundreds·of·schemas,·there·would·be·hundreds |
Offset 6355, 15 lines modified | Offset 6355, 21 lines modified | ||
6355 | returned·by·the·ResultProxy·is·now·the·LegacyRow·subclass,·which·maintains | 6355 | 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·more | 6356 | 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·also | 6358 | 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_\x8d | 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_\x8d |
6360 | _\x8n_\x8a_\x8m_\x8e_\x8d_\x8·_\x8t_\x8u_\x8p_\x8l_\x8e | 6360 | _\x8n_\x8a_\x8m_\x8e_\x8d_\x8·_\x8t_\x8u_\x8p_\x8l_\x8e |
6361 | References:·_\x8#_\x84_\x87_\x81_\x80 | 6361 | 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[ | 6368 | [\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·running | 6369 | 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·current | 6370 | 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·strings | 6371 | 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·under | 6372 | 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·in | 6373 | 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·is | 6375 | This·logic·was·very·effective·when·it·was·needed,·however·now·that·Python·3·is |
Offset 6371, 20 lines modified | Offset 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·party | 6378 | 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·dialect | 6379 | 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·or | 6380 | level·flag·returns_unicode_strings·to·one·of·String.RETURNS_CONDITIONAL·or |
6375 | String.RETURNS_BYTES,·both·of·which·will·enable·Unicode·conversion·even·under | 6381 | String.RETURNS_BYTES,·both·of·which·will·enable·Unicode·conversion·even·under |
6376 | Python·3. | 6382 | Python·3. |
6377 | References:·_\x8#_\x85_\x83_\x81_\x85 | 6383 | 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]·_\x8¶ | 6384 | [\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·that | 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·that |
6386 | the·processing·of·the·SQL·statement·to·receive·a·specific·schema·name·occurs | 6386 | 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,·the | 6388 | This·is·to·support·the·statement·being·efficiently·cached.·Previously,·the |
6389 | current·schema·being·rendered·into·the·statement·for·a·particular·run·would·be | 6389 | 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·against | 6390 | considered·as·part·of·the·cache·key·itself,·meaning·that·for·a·run·against |
Offset 7935, 31 lines modified | Offset 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·RETURNING | 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·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-8 | 7950 | <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,·and | 7951 | <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·regular | 7952 | time·string·values.·This·improves·performance·vs.·the·previous·regular |
7945 | expression-based·approach,·and·also·automatically·accommodates·for·datetime | 7953 | expression-based·approach,·and·also·automatically·accommodates·for·datetime |
7946 | and·time·formats·that·contain·either·a·six-digit·“microseconds”·format·or·a | 7954 | 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·about | 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·about |
7960 | DBAPIs·not·supporting·Decimal·values·natively.·This·warning·was·oriented | 7960 | DBAPIs·not·supporting·Decimal·values·natively.·This·warning·was·oriented |
7961 | towards·SQLite,·which·does·not·have·any·real·way·without·additional | 7961 | towards·SQLite,·which·does·not·have·any·real·way·without·additional |
7962 | extensions·or·workarounds·of·handling·precision·numeric·values·more·than·15 | 7962 | extensions·or·workarounds·of·handling·precision·numeric·values·more·than·15 |
7963 | significant·digits·as·it·only·uses·floating·point·math·to·represent | 7963 | significant·digits·as·it·only·uses·floating·point·math·to·represent |
7964 | numbers.·As·this·is·a·known·and·documented·limitation·in·SQLite·itself,·and | 7964 | 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·warn | 7965 | not·a·quirk·of·the·pysqlite·driver,·there’s·no·need·for·SQLAlchemy·to·warn |
Offset 5471, 29 lines modified | Offset 5471, 29 lines modified | ||
5471 | ······See·also | 5471 | ······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_\x8s | 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_\x8s |
5473 | ······References:·_\x8#_\x88_\x82_\x83_\x84 | 5473 | ······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]·_\x8¶ | 5474 | [\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·since | 5475 | 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_\x85 | 5477 | 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]·_\x8¶ | 5478 | [\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·that | 5479 | The·SQLite·dialect·now·supports·UPDATE..FROM·syntax,·for·UPDATE·statements·that |
5488 | may·refer·to·additional·tables·within·the·WHERE·criteria·of·the·statement | 5480 | may·refer·to·additional·tables·within·the·WHERE·criteria·of·the·statement |
5489 | without·the·need·to·use·subqueries.·This·syntax·is·invoked·automatically·when | 5481 | 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·or | 5482 | 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_\x85 | 5484 | 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]·_\x8¶ | 5493 | [\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·not | 5494 | 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·workarounds | 5496 | 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·only | 5497 | 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·and | 5498 | 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, |
Offset 299, 42 lines modified | Offset 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·two | 303 | 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·an | 311 | <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·price | 312 | “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·in | 315 | <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·references | 316 | 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·object | 326 | <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>·object | 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>·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·single | 338 | 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 modified | Offset 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·row | 486 | <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·a | 487 | within·a·distinct·transaction,·and·afterwards·returns·to·essentially·a |
486 | “closed”·state.···This·would·be·analogous·to·an·API·call·that·starts·up | 488 | “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·number | 491 | <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·number | 497 | <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/ | 500 | <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 | o | 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 modified | Offset 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·queries | 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·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·the | 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·the |
764 | concept·of·a·“vertical·table”·structure,·like·those·illustrated·in | 764 | 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,·turning | 767 | <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·new | 768 | 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 | 771 | <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·new | 772 | 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 modified | Offset 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-table | 819 | <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. |
Offset 96, 32 lines modified | Offset 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_\x8y | 97 | ····*·_\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·an | 99 | Examples·illustrating·the·usage·of·the·“association·object”·pattern,·where·an |
100 | intermediary·class·mediates·the·relationship·between·two·classes·that·are | 100 | 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 | 107 | _\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 | 108 | “Order”·and·a·collection·of·“Item”·objects,·associating·a·purchase·price·with | |
105 | 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·of | 110 | _\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·OrderItem | 111 | _\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·t | 116 | ····*·_.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 | 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.AsyncSession | 122 | _\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·concurrently | 124 | _\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·ORM | 125 | 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·stored | 128 | An·example·of·persistence·for·a·directed·graph·structure.·The·graph·is·stored |
Offset 220, 29 lines modified | Offset 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·1000 | 223 | ····--profile·--num·1000 |
223 | See·also | 224 | 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 | 230 | _.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 | 231 | inserts·a·row·within·a·distinct·transaction,·and·afterwards·returns·to | |
229 | 232 | essentially·a·“closed”·state.·This·would·be·analogous·to·an·API·call·that | |
230 | 233 | 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·UPDATE | 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·UPDATE |
235 | a·large·number·of·rows·in·bulk·(under·construction!·there’s·just·one·test·at | 235 | 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·a | 237 | _\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_inserts | 245 | $·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_pool | 249 | ··············test_dbapi_raw_w_pool |
Offset 476, 20 lines modified | Offset 477, 20 lines modified | ||
476 | ······technique·of·versioned_rows.py,·but·also·emits·an·UPDATE·on·the·o\x8ol\x8ld\x8d·row | 477 | ······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·a | 478 | ······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·most | 479 | ······_\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·the | 481 | _\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_\x8l | 482 | 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·on | 484 | _\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·an | 492 | 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”·technique | 493 | 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·the | 494 | 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·structures | 496 | document·management·systems·in·order·to·represent·user-created·structures |
Offset 517, 28 lines modified | Offset 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·inheritance | 521 | 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·management | 529 | 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 | 534 | _.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 | 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_\x8r | 536 | _\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·that | 537 | _\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·to | 540 | 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. |