]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/log
thirdparty/sqlalchemy/sqlalchemy.git
2 years agoAdd recommendation for URL.create() re: escaping
Gord Thompson [Thu, 24 Nov 2022 17:38:20 +0000 (10:38 -0700)] 
Add recommendation for URL.create() re: escaping

Let users know that URL.create() can build the
whole connection URL instead of making them
escape things like passwords ad-hoc.

includes some general cleanup of URL docstring
by mike

Change-Id: Ic71bb0201fecf30e1db11e006c269f2d041b5439
(cherry picked from commit 14c73685ba909838fb90d762d465e7ae8d067c15)

2 years agoadd new variation helper
Mike Bayer [Sat, 26 Nov 2022 16:03:45 +0000 (11:03 -0500)] 
add new variation helper

I'm using a lot of @testing.combinations with either
a boolean True/False, or a series of string names, each indicating
some case to switch on.  I want a descriptive name in the test
run (not True/False) and I don't want to compare strings.

So make a new helper around @combinations that provides an
object interface that has booleans inside of it, prints nicely
in the test output, raises an error if you name the case
incorrectly.

Before:

test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[False-False-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[False-False-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[False-False-name] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[False-True-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[False-True-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[False-True-name] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[True-False-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[True-False-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[True-False-name] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[True-True-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[True-True-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[True-True-name] PASSED

After:

test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[not_use_add_property-deferred-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[not_use_add_property-deferred-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[not_use_add_property-deferred-name] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[not_use_add_property-not_deferred-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[not_use_add_property-not_deferred-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[not_use_add_property-not_deferred-name] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[use_add_property-deferred-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[use_add_property-deferred-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[use_add_property-deferred-name] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[use_add_property-not_deferred-both] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[use_add_property-not_deferred-key] PASSED
test/orm/declarative/test_typed_mapping.py::MappedColumnTest::test_separate_name[use_add_property-not_deferred-name] PASSED

Change-Id: Idde87632581ee69e0f47360966758583dfd8baab
(cherry picked from commit 3ffa8dccc224d7b7d604bdfb684c437f4cb42f92)

2 years agosort for addresess relationship in new merge test
Mike Bayer [Sat, 26 Nov 2022 15:14:02 +0000 (10:14 -0500)] 
sort for addresess relationship in new merge test

saw a random failure under py2 on 1.4, will backport

Change-Id: I3e2b037bf4211be44e28f85f5e51ffdc218eeb5a
(cherry picked from commit 34e29f7b225cf1305e151af9d03ef95f42a9dbcc)

2 years agoMerge "avoid putting annotated columns in sets" into rel_1_4
mike bayer [Sat, 26 Nov 2022 02:35:11 +0000 (02:35 +0000)] 
Merge "avoid putting annotated columns in sets" into rel_1_4

2 years agoMerge "assert unique constraints received back" into rel_1_4
mike bayer [Sat, 26 Nov 2022 02:32:30 +0000 (02:32 +0000)] 
Merge "assert unique constraints received back" into rel_1_4

2 years agoMerge "add "merge" to viewonly cascades; propagate NO_RAISE when merging" into rel_1_4
mike bayer [Fri, 25 Nov 2022 16:41:51 +0000 (16:41 +0000)] 
Merge "add "merge" to viewonly cascades; propagate NO_RAISE when merging" into rel_1_4

2 years agoassert unique constraints received back
Mike Bayer [Thu, 24 Nov 2022 14:52:12 +0000 (09:52 -0500)] 
assert unique constraints received back

in #8867 we can see our existing uq reflection test is
broken, not detecting a failure to detect constraints

Change-Id: Icada02bc0547c5a3d8c471b80a78a2e72f02647d
(cherry picked from commit f99300c4e8d1317a94cbfeaec6fe22de8f1159f7)

2 years agoFix reflection of constraints in attached schemas
Michael Gorven [Thu, 24 Nov 2022 08:47:26 +0000 (03:47 -0500)] 
Fix reflection of constraints in attached schemas

Backported a fix for SQLite reflection of unique constraints in attached
schemas, released in 2.0 as a small part of :ticket:`4379`. Previously,
unique constraints in attached schemas would be ignored by SQLite
reflection. Pull request courtesy Michael Gorven.

Fixes: #8866
Closes: #8867
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/8867
Pull-request-sha: 94a5736170f5c944d3dad1ef91dc8550c72a4dc5

Change-Id: Id414aeed9d6ce58877d81df2459f6d4f308750a8

2 years agoadd "merge" to viewonly cascades; propagate NO_RAISE when merging
Mike Bayer [Wed, 23 Nov 2022 15:58:28 +0000 (10:58 -0500)] 
add "merge" to viewonly cascades; propagate NO_RAISE when merging

Fixed bug where :meth:`_orm.Session.merge` would fail to preserve the
current loaded contents of relationship attributes that were indicated with
the :paramref:`_orm.relationship.viewonly` parameter, thus defeating
strategies that use :meth:`_orm.Session.merge` to pull fully loaded objects
from caches and other similar techniques. In a related change, fixed issue
where an object that contains a loaded relationship that was nonetheless
configured as ``lazy='raise'`` on the mapping would fail when passed to
:meth:`_orm.Session.merge`; checks for "raise" are now suspended within
the merge process assuming the :paramref:`_orm.Session.merge.load`
parameter remains at its default of ``True``.

Overall, this is a behavioral adjustment to a change introduced in the 1.4
series as of :ticket:`4994`, which took "merge" out of the set of cascades
applied by default to "viewonly" relationships. As "viewonly" relationships
aren't persisted under any circumstances, allowing their contents to
transfer during "merge" does not impact the persistence behavior of the
target object. This allows :meth:`_orm.Session.merge` to correctly suit one
of its use cases, that of adding objects to a :class:`.Session` that were
loaded elsewhere, often for the purposes of restoring from a cache.

Fixes: #8862
Change-Id: I8731c7810460e6a71f8bf5e8ded59142b9b02956
(cherry picked from commit 1e009bf086a42134190030f07068bc463e9a9794)

2 years agoflake8 has very courteously referred us to another pyqca project and closed all comme...
Mike Bayer [Wed, 23 Nov 2022 22:44:30 +0000 (17:44 -0500)] 
flake8 has very courteously referred us to another pyqca project and closed all comments, thank you!  I'll get on that right away

pyqca/flake8-import-order does not seem to have a release or a commit
in the past two years, so while I have created an issue and PR [1] [2],
for now vendor our fork so we can get on with things.

Also fix one issue for flake8 6.0

[1] https://github.com/PyCQA/flake8-import-order/issues/189
[2] https://github.com/PyCQA/flake8-import-order/pull/190

Change-Id: I53045f65b8716cceaf2104fccc1d26f80b398fef
References: https://github.com/PyCQA/flake8/issues/1751
(cherry picked from commit fbec926c4744aa97a48a011939354c8b8f8be566)

2 years agoAdd security warning to serializer extension
Federico Caselli [Mon, 21 Nov 2022 23:07:53 +0000 (00:07 +0100)] 
Add security warning to serializer extension

Change-Id: I5c7c076bc93fc250c05f7996e83359d19d1f3214
(cherry picked from commit 447249e8628ff849758c1a9cdf822ae060b7cb8b)

2 years agoclarify role of `__allow_unmapped__`
Mike Bayer [Sat, 19 Nov 2022 18:10:31 +0000 (13:10 -0500)] 
clarify role of `__allow_unmapped__`

A different note will be needed in the 1.4 version
of these docs.

Fixes: #8845
Change-Id: I48651c64d511684077c80a317349dd230424b575
(cherry picked from commit 46e6693cb3db445f18aa25d5e4ca613504bd12b3)

2 years agoaccommodate NULL format_type()
Mike Bayer [Thu, 17 Nov 2022 01:11:18 +0000 (20:11 -0500)] 
accommodate NULL format_type()

Made an adjustment to how the PostgreSQL dialect considers column types
when it reflects columns from a table, to accommodate for alternative
backends which may return NULL from the PG ``format_type()`` function.

Fixes: #8748
Change-Id: I6178287aac567210a76afaa5805b825daa7fa4db
(cherry picked from commit 200e70b9745f1f344be4a35bb8f2b5f01b40d467)

2 years agoSmall tutorial rewording
Andy Garfield [Tue, 15 Nov 2022 16:28:58 +0000 (11:28 -0500)] 
Small tutorial rewording

The language is this sentence took me a few reads to understand. This is just a rewording.

(cherry picked from commit 36954a3dbb3a528d81c24db6b8698ba1e48d7cb2)

Change-Id: I3d61653b682035bd616f80ed54c83e959cfb74fc

2 years agoExplicitly state what happens if `order_by` is called more than once. (#8791)
Eitan Mosenkis [Mon, 14 Nov 2022 21:11:15 +0000 (23:11 +0200)] 
Explicitly state what happens if `order_by` is called more than once. (#8791)

* Explicitly state what happens if `order_by` is called more than once.

The existing docs cover how to clear existing `order_by` clauses but don't actually describe the behavior of calling `order_by` multiple times with different clauses.

* Also update Select.order_by.

(cherry picked from commit 9237bf15e612ba82555444751bd69dc2a831e7f4)

2 years agoadd informative exception context for literal render
Mike Bayer [Mon, 14 Nov 2022 13:54:56 +0000 (08:54 -0500)] 
add informative exception context for literal render

An informative re-raise is now thrown in the case where any "literal
bindparam" render operation fails, indicating the value itself and
the datatype in use, to assist in debugging when literal params
are being rendered in a statement.

Fixes: #8800
Change-Id: Id658f8b03359312353ddbb0c7563026239579f7b
(cherry picked from commit c7baf6e0aa624c9378c3bc3c4923d1e188d62dc9)

2 years agoavoid putting annotated columns in sets
Mike Bayer [Mon, 14 Nov 2022 18:18:45 +0000 (13:18 -0500)] 
avoid putting annotated columns in sets

backporting a small bit of the changes made for the
2.0 version of #8796.

See if the changes apply cleanly to the 1.4 branch.

Fixes: #8796
Change-Id: I8118511a10beb38c545a55c962a18a77611293af

2 years agoRepair test in 32bit python builds.
Federico Caselli [Sat, 12 Nov 2022 19:15:26 +0000 (20:15 +0100)] 
Repair test in 32bit python builds.

Change-Id: I8287f3e1a975534c8a01a41c9dcc7e5e9f08bb52
(cherry picked from commit 9f4ac8d155f58b59cf314cfbc73195ed51a0c146)

2 years agoVersion 1.4.45 placeholder
Mike Bayer [Sat, 12 Nov 2022 14:13:37 +0000 (09:13 -0500)] 
Version 1.4.45 placeholder

2 years ago- 1.4.44 rel_1_4_44
Mike Bayer [Sat, 12 Nov 2022 13:59:44 +0000 (08:59 -0500)] 
- 1.4.44

2 years agoMerge "backport relevant mypy 0.990 fixes from main" into rel_1_4
mike bayer [Sat, 12 Nov 2022 02:12:08 +0000 (02:12 +0000)] 
Merge "backport relevant mypy 0.990 fixes from main" into rel_1_4

2 years agoMerge "ensure anon_map is passed for most annotated traversals" into rel_1_4
mike bayer [Fri, 11 Nov 2022 21:30:51 +0000 (21:30 +0000)] 
Merge "ensure anon_map is passed for most annotated traversals" into rel_1_4

2 years agobackport relevant mypy 0.990 fixes from main
Mike Bayer [Fri, 11 Nov 2022 21:04:06 +0000 (16:04 -0500)] 
backport relevant mypy 0.990 fixes from main

Changes from ebb54e80a5a52d0cce4cba1abc21c707a42c2c73
which are relevant here.

Adjusted the test suite which tests the Mypy plugin to accommodate for
changes in Mypy 0.990 regarding how it handles message output, which affect
how sys.path is interpreted when determining if notes and errors should be
printed for particular files. The change broke the test suite as the files
within the test directory itself no longer produced messaging when run
under the mypy API.

Change-Id: I1728fd3bd21a4d499db0a4939ee27c67b2c34123

2 years agoMerge "establish consistency for RETURNING column labels" into rel_1_4
mike bayer [Fri, 11 Nov 2022 21:00:31 +0000 (21:00 +0000)] 
Merge "establish consistency for RETURNING column labels" into rel_1_4

2 years agoensure anon_map is passed for most annotated traversals
Mike Bayer [Thu, 10 Nov 2022 22:01:58 +0000 (17:01 -0500)] 
ensure anon_map is passed for most annotated traversals

We can cache the annotated cache key for Table, but
for selectables it's not safe, as it fails to pass the
anon_map along and creates many redudant structures in
observed test scenario.  It is likely safe for a
Column that's mapped to a Table also, however this is
not implemented here.   Will have to see if that part
needs adjusting.

Fixed critical memory issue identified in cache key generation, where for
very large and complex ORM statements that make use of lots of ORM aliases
with subqueries, cache key generation could produce excessively large keys
that were orders of magnitude bigger than the statement itself. Much thanks
to Rollo Konig Brock for their very patient, long term help in finally
identifying this issue.

Also within TypeEngine objects, when we generate elements
for instance variables, skip the None elements at least.
this also saves on tuple complexity.

Fixes: #8790
Change-Id: I448ddbfb45ae0a648815be8dad4faad7d1977427
(cherry picked from commit 88c240d907a9ae3b5caf766009edd196a30cece3)

2 years agoestablish consistency for RETURNING column labels
Mike Bayer [Mon, 7 Nov 2022 23:40:03 +0000 (18:40 -0500)] 
establish consistency for RETURNING column labels

For the PostgreSQL and SQL Server dialects only, adjusted the compiler so
that when rendering column expressions in the RETURNING clause, the "non
anon" label that's used in SELECT statements is suggested for SQL
expression elements that generate a label; the primary example is a SQL
function that may be emitting as part of the column's type, where the label
name should match the column's name by default. This restores a not-well
defined behavior that had changed in version 1.4.21 due to :ticket:`6718`,
:ticket:`6710`. The Oracle dialect has a different RETURNING implementation
and was not affected by this issue. Version 2.0 features an across the
board change for its widely expanded support of RETURNING on other
backends.

Fixed issue in the Oracle dialect where an INSERT statement that used
``insert(some_table).values(...).returning(some_table)`` against a full
:class:`.Table` object at once would fail to execute, raising an exception.

Fixes: #8770
Change-Id: I2ab078a214a778ffe1720dbd864ae4c105a0691d
(cherry picked from commit c8a7b67181d31634355150fc0379ec0e780ff728)

2 years agorepair --disable-asyncio parameter
Mike Bayer [Fri, 11 Nov 2022 14:46:06 +0000 (09:46 -0500)] 
repair --disable-asyncio parameter

Fixed issue where the ``--disable-asyncio`` parameter to the test suite
would fail to not actually run greenlet tests and would also not prevent
the suite from using a "wrapping" greenlet for the whole suite. This
parameter now ensures that no greenlet or asyncio use will occur within the
entire run when set.

Fixes: #8793
Change-Id: I87b510846b2cc24413cd54e7b7136e91aad3c309
(cherry picked from commit 7f7e961f46aeff5895bd34fec9e2e208862d7a6b)

2 years agoblock all maridb-connector testing
Mike Bayer [Fri, 11 Nov 2022 16:21:55 +0000 (11:21 -0500)] 
block all maridb-connector testing

while we wait for this project to fix its install,
ensure CI isn't running it.

Change-Id: Iffc2efa38078a07c6ffc3417246b5b898ecbd53d

2 years agodisable timing intensive on py27
Mike Bayer [Sat, 5 Nov 2022 20:07:49 +0000 (16:07 -0400)] 
disable timing intensive on py27

this includes disabling a very not important test for
automap that's failing on github

Change-Id: Ib91be649ecb07e620060a38a206317dcd6a81899

2 years agogc.collect() in order to ensure GeneratorExit raised on pypy
Mike Bayer [Sat, 5 Nov 2022 14:26:36 +0000 (10:26 -0400)] 
gc.collect() in order to ensure GeneratorExit raised on pypy

Fixes: #8762
Change-Id: Ibf656748ae6a54282ba58e91215e0f7a279b171a
(cherry picked from commit 9febc1a53e4dbb363b1ead65bbe47e0c4f948bae)

2 years agoVersion 1.4.44 placeholder
Mike Bayer [Fri, 4 Nov 2022 21:08:40 +0000 (17:08 -0400)] 
Version 1.4.44 placeholder

2 years ago- 1.4.43 rel_1_4_43
Mike Bayer [Fri, 4 Nov 2022 21:04:01 +0000 (17:04 -0400)] 
- 1.4.43

2 years agotypo
Mike Bayer [Fri, 4 Nov 2022 21:00:29 +0000 (17:00 -0400)] 
typo

Change-Id: I41cb128767c0cba48255cca0904ae1bff1b357ac
(cherry picked from commit 6410e372cb344084ee13942bd5b9eb78b24fc50c)

2 years agofix doc symbols
Mike Bayer [Fri, 4 Nov 2022 20:44:29 +0000 (16:44 -0400)] 
fix doc symbols

for 1.4, these are ambiguous due to the presence of
future names

Change-Id: I3694e75da73fe20c19445007c8823030789fc6c0

2 years agochangelog updates
Mike Bayer [Fri, 4 Nov 2022 20:16:48 +0000 (16:16 -0400)] 
changelog updates

as this release cycle was fairly frenetic, a lot of these
changelogs were very poorly worded (by me).

Change-Id: Idb796cf3e25975fb2f75bacf26f1cb57ef0e4cad
(cherry picked from commit 751469240a1f2908d16ca2b087b5dac55dbdcb47)

2 years agoresolve synonyms in dictionary form of Session.get()
Mike Bayer [Fri, 4 Nov 2022 16:48:43 +0000 (12:48 -0400)] 
resolve synonyms in dictionary form of Session.get()

Improved "dictionary mode" for :meth:`_orm.Session.get` so that synonym
names which refer to primary key attribute names may be indicated in the
named dictionary.

Fixes: #8753
Change-Id: I56112564a5c23b51b26e01c64087cbf4399cd951
(cherry picked from commit 7b6259c0f3ae411976f8febfe41f2c5fc3490b13)

2 years agoMerge "soft close cursor for Query direct iterator interrupted" into rel_1_4
mike bayer [Thu, 3 Nov 2022 22:40:38 +0000 (22:40 +0000)] 
Merge "soft close cursor for Query direct iterator interrupted" into rel_1_4

2 years agosoft close cursor for Query direct iterator interrupted
Mike Bayer [Tue, 1 Nov 2022 19:09:25 +0000 (15:09 -0400)] 
soft close cursor for Query direct iterator interrupted

Fixed issue where the underlying DBAPI cursor would not be closed when
using :class:`_orm.Query` and direct iteration, if a user-defined exception
case were raised within the iteration process, interrupting the iterator
which otherwise is not possible to re-use in this context. When using
:meth:`_orm.Query.yield_per` to create server-side cursors, this would lead
to the usual MySQL-related issues with server side cursors out of sync.

To resolve, a catch for ``GeneratorExit`` is applied within the default
iterator, which applies only in those cases where the interpreter is
calling ``.close()`` on the iterator in any case.

A similar scenario can occur when using :term:`2.x` executions with direct
use of :class:`.Result`, in that case the end-user code has access to the
:class:`.Result` itself and should call :meth:`.Result.close` directly.
Version 2.0 will feature context-manager calling patterns to address this
use case.  However within the 1.4 scope, ensured that ``.close()`` methods
are available on all :class:`.Result` implementations including
:class:`.ScalarResult`, :class:`.MappingResult`.

Fixes: #8710
Change-Id: I3166328bfd3900957eb33cbf1061d0495c9df670

2 years agoMerge "use simple decimal query to detect decimal char" into rel_1_4
mike bayer [Wed, 2 Nov 2022 16:57:07 +0000 (16:57 +0000)] 
Merge "use simple decimal query to detect decimal char" into rel_1_4

2 years agofix event name
Mike Bayer [Wed, 2 Nov 2022 12:39:39 +0000 (08:39 -0400)] 
fix event name

Change-Id: I26af2326034be07f0ebc91dfbf31d00c40acf585
References: #8717
(cherry picked from commit 7249fa4a51f20c6c62ba94241900600023662bdb)

2 years agoscale back warnings for 1.4's bulk methods
Mike Bayer [Wed, 2 Nov 2022 02:57:16 +0000 (22:57 -0400)] 
scale back warnings for 1.4's bulk methods

since these methods have been improved for 2.0, the general
idea is not going away, so remove the warnings indicating
that these features are being removed.

Change-Id: I2c436c2e7f9aeacc9e71c82af4016190314f04ca

2 years agouse simple decimal query to detect decimal char
Mike Bayer [Mon, 31 Oct 2022 19:09:34 +0000 (15:09 -0400)] 
use simple decimal query to detect decimal char

Fixed issue where the ``nls_session_parameters`` view queried on first
connect in order to get the default decimal point character may not be
available depending on Oracle connection modes, and would therefore raise
an error.  The approach to detecting decimal char has been simplified to
test a decimal value directly, instead of reading system views, which
works on any backend / driver.

Fixes: #8744
Change-Id: I39825131c13513798863197d0c180dd5a18b32dc
(cherry picked from commit 12b334417bf67c1ed302d30787e4c2dfae7ee335)

2 years agoMerge "ensure pool.reset event always called for reset" into rel_1_4
mike bayer [Sun, 30 Oct 2022 21:49:33 +0000 (21:49 +0000)] 
Merge "ensure pool.reset event always called for reset" into rel_1_4

2 years agoensure pool.reset event always called for reset
Mike Bayer [Tue, 25 Oct 2022 20:00:50 +0000 (16:00 -0400)] 
ensure pool.reset event always called for reset

Fixed issue where the :meth:`.PoolEvents.reset` event hook would
not be called when a :class:`.Connection` were closed which already
closed its own transaction.  Logic that bypasses the "rollback on return"
behavior of the pool was also skipping the event hook being emitted,
preventing custom pool reset schemes from being used within this hook.
This was a regression that appeared in version 1.4.

For version 1.4, the hook is still not called in the case of an asyncio
connection that is being discarded due to garbage collection. Version 2.0
will feature an improved version of :meth:`.PoolEvents.reset` which also
receives contextual information about the reset, so that comprehensive
"custom connection reset" schemes can be devised.  Existing custom
reset schemes that make use of :meth:`.PoolEvents.checkin` remain
usable as they typically only need to deal with connections that are to
be re-used.

Change-Id: Ie17c4f55d02beb6f570b9de6b3044baffa7d6df6
Fixes: #8717
(cherry picked from commit bb8c36c5d2622e6e7033dc59dc98da0926ba7c00)

2 years agofix test for same mapper to use "isa"
Mike Bayer [Sun, 30 Oct 2022 00:08:25 +0000 (20:08 -0400)] 
fix test for same mapper to use "isa"

Fixed issue in joined eager loading where an assertion fail would occur
with a particular combination of outer/inner joined eager loads in
conjunction with an inherited subclass mapper as the middle target.

Fixes: #8738
Change-Id: I4909e7518302cbb82046e0425abbbdc8eb1c0146
(cherry picked from commit 99e7afb4b2d82baff80f5d1fe1b2d1b21cbbec09)

2 years agoMerge "use only object_id() function for temp tables" into rel_1_4
mike bayer [Sat, 29 Oct 2022 01:36:29 +0000 (01:36 +0000)] 
Merge "use only object_id() function for temp tables" into rel_1_4

2 years agoMerge "ensure _ORMJoin transfers parententity from left side" into rel_1_4
mike bayer [Sat, 29 Oct 2022 01:35:08 +0000 (01:35 +0000)] 
Merge "ensure _ORMJoin transfers parententity from left side" into rel_1_4

2 years agoupdate rel/fk FAQ entry
Mike Bayer [Fri, 28 Oct 2022 16:20:22 +0000 (12:20 -0400)] 
update rel/fk FAQ entry

this entry still made the assumptions of behavior before
ticket #3061, that accessing a non-initialized scalar attribute
on a pending object would populate the attribute with None.
It also used the word "initialize" when referring to a persistent
object which is a misleading term, it's "loaded", even though
in this example it's "loading" the value of None.

Fix up the language to be more consistent with the #3061 change.

Change-Id: I1abd8f1d2e9c44ebc9a29737ea270b338f104a3e
(cherry picked from commit 654d941ce9c571de18aa09a09dc6cd90bf24734c)

2 years agoMerge "apply basic escaping to anon_labels unconditionally" into rel_1_4
mike bayer [Fri, 28 Oct 2022 13:59:16 +0000 (13:59 +0000)] 
Merge "apply basic escaping to anon_labels unconditionally" into rel_1_4

2 years agouse only object_id() function for temp tables
Mike Barry [Wed, 26 Oct 2022 17:40:32 +0000 (13:40 -0400)] 
use only object_id() function for temp tables

Fixed issue with :meth:`.Inspector.has_table` when used against a temporary
table for the SQL Server dialect would fail an invalid object name error on
some Azure variants, due to an unnecessary information schema query that is
not supported on those server versions. Pull request courtesy Mike Barry.

the patch also fills out test support for has_table()
against temp tables, temp views, adding to the has_table() support just
added for views in #8700.

Fixes: #8714
Closes: #8716
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/8716
Pull-request-sha: e2ac7a52e2b09a349a703ba1e1a2911f4d3c0912

Change-Id: Ia73e4e9e977a2d6b7e100abd2f81a8c8777dc9bb
(cherry picked from commit 2af33d79eddc696c0fb1ef749999fa5d0d33f214)

2 years agoopen some compound tests for mysql 8.0.31
Mike Bayer [Fri, 28 Oct 2022 05:49:48 +0000 (01:49 -0400)] 
open some compound tests for mysql 8.0.31

Not sure of exact version but as we have done a major
rebuild of CI, newer mysql 8.0 is passing on these.

Change-Id: Ibcfe0ce519ab6a2941ca514b4254944769b60df4
(cherry picked from commit 50d3b85c693a4ca673bcabd711f130ae58111f16)

2 years agomssql doc updates
Mike Bayer [Fri, 28 Oct 2022 05:49:03 +0000 (01:49 -0400)] 
mssql doc updates

clarify some URL things

Change-Id: Ic162834052f06fd3a6c010ce5d091903fdc65cd8
(cherry picked from commit c262184ae5bac969b18eff8e10ba6d94c229499d)

2 years agoapply basic escaping to anon_labels unconditionally
Mike Bayer [Thu, 27 Oct 2022 13:28:02 +0000 (09:28 -0400)] 
apply basic escaping to anon_labels unconditionally

Fixed issue which prevented the :func:`_sql.literal_column` construct from
working properly within the context of a :class:`.Select` construct as well
as other potential places where "anonymized labels" might be generated, if
the literal expression contained characters which could interfere with
format strings, such as open parenthesis, due to an implementation detail
of the "anonymous label" structure.

Fixes: #8724
Change-Id: I3089124fbd055a011c8a245964258503b717d941
(cherry picked from commit caa9f0ff98d44359f5162bca8e7fe7bcaa2989a7)

2 years agoensure _ORMJoin transfers parententity from left side
Mike Bayer [Thu, 27 Oct 2022 02:59:51 +0000 (22:59 -0400)] 
ensure _ORMJoin transfers parententity from left side

Fixed bug involving :class:`.Select` constructs which used a combination of
:meth:`.Select.select_from` with an ORM entity followed by
:meth:`.Select.join` against the entity sent in
:meth:`.Select.select_from`, as well as using plain
:meth:`.Select.join_from`, which when combined with a columns clause that
didn't explicitly include that entity would then cause "automatic WHERE
criteria" features such as the IN expression required for a single-table
inheritance subclass, as well as the criteria set up by the
:func:`_orm.with_loader_criteria` option, to not be rendered for that
entity. The correct entity is now transferred to the :class:`.Join` object
that's generated internally, so that the criteria against the left
side entity is correctly added.

Fixes: #8721
Change-Id: I8266430063e2c72071b7262fdd5ec5079fbcba3e
(cherry picked from commit 54ecc0fde9851f551c6e467b58d5bf7c4135e0ba)

2 years agoraise for non-Load opt passed to options()
Mike Bayer [Tue, 25 Oct 2022 14:22:14 +0000 (10:22 -0400)] 
raise for non-Load opt passed to options()

Fixed the exception that's raised when the
:func:`_orm.with_loader_criteria` option is attempted to be used within a
specific loader path, like in loader.options().
:func:`_orm.with_loader_criteria` is only intended to be used at the top
level.

Fixes: #8711
Change-Id: Iaa7b13956b808761e618a6be6406e5c82df1c65c
(cherry picked from commit eae9d1420bbfde4dbd835b654e80653cd5ac2155)

2 years agoadd Oracle-specific parameter escapes for expanding params
Mike Bayer [Mon, 24 Oct 2022 23:24:11 +0000 (19:24 -0400)] 
add Oracle-specific parameter escapes for expanding params

Fixed issue where bound parameter names, including those automatically
derived from similarly-named database columns, which contained characters
that normally require quoting with Oracle would not be escaped when using
"expanding parameters" with the Oracle dialect, causing execution errors.
The usual "quoting" for bound parameters used by the Oracle dialect is not
used with the "expanding parameters" architecture, so escaping for a large
range of characters is used instead, now using a list of characters/escapes
that are specific to Oracle.

Fixes: #8708
Change-Id: I90c24e48534e1b3a4c222b3022da58159784d91a
(cherry picked from commit b1cd6e4295b07e01983deb2845f6e22a059f5b76)

2 years agoskip ad-hoc properties within subclass_load_via_in
Mike Bayer [Sun, 23 Oct 2022 23:24:54 +0000 (19:24 -0400)] 
skip ad-hoc properties within subclass_load_via_in

Fixed issue where "selectin_polymorphic" loading for inheritance mappers
would not function correctly if the :param:`_orm.Mapper.polymorphic_on`
parameter referred to a SQL expression that was not directly mapped on the
class.

Fixes: #8704
Change-Id: I1b6be2650895fd18d2c804f6ba96de966d11041a
(cherry picked from commit bd1777426255648215328252795dff24dfd08616)

2 years agotest support for has_table()->view; backport to 1.4
Mike Bayer [Sun, 23 Oct 2022 14:34:33 +0000 (10:34 -0400)] 
test support for has_table()->view; backport to 1.4

For 1.4 only; in 2.0 this just refines the test suite a bit.

Fixed regression which occurred throughout the 1.4 series where the
:meth:`.Inspector.has_table` method, which historically reported on views
as well, stopped working for SQL Server.  The method never worked for
Oracle in this way, so for compatibility within the 1.4 series,
Oracle's dialect remains returning False for ``has_table()`` against a
view within the 1.4 series.

The issue is not present in the 2.0 series which uses a different
reflection architecture, where has_table() reports True for views on all
backends including SQL Server and Oracle. Test support is added within the
1.4 series to ensure ``has_table()`` remains working per spec re: views.

Fixes: #8700
Change-Id: I119a91ec07911edb08cf0799234827fec9ea1195
(cherry picked from commit c02f6b744d304578fe67da2e13d2c02ab71140d2)

2 years agoadd step 6 to migration docs
Mike Bayer [Fri, 21 Oct 2022 16:44:18 +0000 (12:44 -0400)] 
add step 6 to migration docs

Users will need to attend to explicitly annotated models
that don't use Mapped[], for a clean transition from 1.4
to 2.0.

Fixes: #8692
Change-Id: I212018574e752d1109c712ea29ea277be5a13382

2 years agofix missing pool __init__ documentation
Mike Bayer [Fri, 21 Oct 2022 13:26:26 +0000 (09:26 -0400)] 
fix missing pool __init__ documentation

Change-Id: Ic3e7fb3cc4995372646822e40d914b83a7fa78c8
(cherry picked from commit 2fc5cf56a4b146b94b5dd14239a791e354d7ebe4)

2 years agomove API docs downwards
Mike Bayer [Thu, 20 Oct 2022 16:28:29 +0000 (12:28 -0400)] 
move API docs downwards

Sphinx 5.3 (compared to 5.1.1) is now putting all the autodoc
names into the TOC.   So we have to start being more careful
to make sure API docs are well below narrative docs, because
this new style is a wall of text.   i dont yet see any options
to turn it off, but it does seem like a good improvement, just makes
doc organization a more difficult endeavor.

Change-Id: I49428076fef9b96ef1544621de9a9dfca1699dab
(cherry picked from commit b3e1fe7577efa799821a1e3ab6321d712fbfaab6)

2 years agorename tables to _table for basic relationships
Mike Bayer [Wed, 19 Oct 2022 13:23:21 +0000 (09:23 -0400)] 
rename tables to _table for basic relationships

the names "parent" / "child" are confusing for new users
in that they are used for table names as well as
"back_populates='parent'", use a disambiguated name.

In this change, there's now overlap between the
variable named "association_table" and the table name
"association_table".  not sure of a better naming system.

Change-Id: Ic036c8072caf6e9e5fbd1178986353c00b91f43d
References: https://github.com/sqlalchemy/sqlalchemy/discussions/8675#discussioncomment-3915204

2 years agoupdate SEQUENCE docs ahead of default change
Mike Bayer [Mon, 17 Oct 2022 19:09:01 +0000 (15:09 -0400)] 
update SEQUENCE docs ahead of default change

for backport to 1.4 as well, remove references to
Firebird, and also revert "associate Sequence with MetaData"
step as this is not needed usually, just note that schema
is not shared.  encourage users to use IDENTITY instead.

Change-Id: I5d25357042127c9cd1274c9de7abb44a525b0195
(cherry picked from commit 665c94cc2f0340735515c4f4477e11b556d2bcd8)

2 years agoVersion 1.4.43 placeholder
Mike Bayer [Sun, 16 Oct 2022 14:25:36 +0000 (10:25 -0400)] 
Version 1.4.43 placeholder

2 years ago- 1.4.42 rel_1_4_42
Mike Bayer [Sun, 16 Oct 2022 14:12:34 +0000 (10:12 -0400)] 
- 1.4.42

2 years agoadd python 3.11 to supported versions
Mike Bayer [Sun, 16 Oct 2022 14:09:20 +0000 (10:09 -0400)] 
add python 3.11 to supported versions

Change-Id: Ibf699297b12c1c72c570db380282e97adfdef2b9
(cherry picked from commit 7fd8898b10669c8e6b08c5d66c92bdc975aaa353)

2 years agodisable isort in pyproject.toml
Mike Bayer [Sat, 15 Oct 2022 15:12:25 +0000 (11:12 -0400)] 
disable isort in pyproject.toml

disable isort, for IDEs that just default isort to be turned on, e.g. vscode.
we use flake8-import-order for import sorting, using zimports to actually
reformat code.  isort is nicer in many ways but doesn't have our
"import *" fixer and also is not 100% compatible with flake8-import-order.

Change-Id: I8e53d475cdc1d6178e2c9276d2b21d47be207ede
(cherry picked from commit e8da50ce0f0474bc89cee15603931760cb6c55ce)

2 years agofix instances of objects as instances of classes (#8627)
Muhammad Abdur Rakib [Fri, 14 Oct 2022 17:53:49 +0000 (23:53 +0600)] 
fix instances of objects as instances of classes (#8627)

document mentions `creating instances of "User" and "Address" objects` which is a mistake as we create instances or objects from classes.

(cherry picked from commit fe89ffe7563192a0b8f83b045f6e35fbed2a4a19)

2 years agocorrect python compat statement
Mike Bayer [Fri, 14 Oct 2022 15:33:54 +0000 (11:33 -0400)] 
correct python compat statement

2.0 uses 3.7 at a minimum, update verbiage here.

Change-Id: I076e205bbfc9b502f1ac382f6292c290c3fc8c1b
(cherry picked from commit cb0dd78f584cea4f169a47a2f4660300f4a6e081)

2 years agonarrow formatting in table, turn format off
Mike Bayer [Fri, 14 Oct 2022 13:17:09 +0000 (09:17 -0400)] 
narrow formatting in table, turn format off

Change-Id: I0824495e0582657ffb63eaa2466021f56005c81c
References: https://github.com/sqlalchemy/sqlalchemy/discussions/8157#discussioncomment-3878806
(cherry picked from commit 1985cb0f48b298ffc445b052cd62a8d4a81f4e10)

2 years agoMerge "warn for no polymorphic identity w/ poly hierarchy" into rel_1_4
mike bayer [Tue, 11 Oct 2022 22:19:14 +0000 (22:19 +0000)] 
Merge "warn for no polymorphic identity w/ poly hierarchy" into rel_1_4

2 years agosupport multiple files to work correctly w/ pre-commit
Mike Bayer [Tue, 11 Oct 2022 19:32:47 +0000 (15:32 -0400)] 
support multiple files to work correctly w/ pre-commit

Change-Id: I7ddf1848b96105701b733306353ae949a4579339

2 years agowarn for no polymorphic identity w/ poly hierarchy
Mike Bayer [Mon, 10 Oct 2022 18:03:04 +0000 (14:03 -0400)] 
warn for no polymorphic identity w/ poly hierarchy

A warning is emitted when attempting to configure a mapped class within an
inheritance hierarchy where the mapper is not given any polymorphic
identity, however there is a polymorphic discriminator column assigned.
Such classes should be abstract if they never intend to load directly.

Fixes: #7545
Change-Id: I94f04e59736c73e3f39d883a75d763e3f06ecc3d
(cherry picked from commit bf0634131115a76aaca52eebd3c7d3fb52f8258b)

2 years agoremove redundant paragraph
Mike Bayer [Mon, 10 Oct 2022 14:42:59 +0000 (10:42 -0400)] 
remove redundant paragraph

backported from main; see comment at
https://gerrit.sqlalchemy.org/c/sqlalchemy/sqlalchemy/+/4042/52..61/doc/build/orm/queryguide/api.rst#239

Change-Id: I214784ef8f6ff523c3cc55df2318a85d45a0690d

2 years agoMerge "Add format docs to pre-commits" into rel_1_4
mike bayer [Mon, 10 Oct 2022 14:16:29 +0000 (14:16 +0000)] 
Merge "Add format docs to pre-commits" into rel_1_4

2 years agodont mutate bind_arguments incoming dictionary
Mike Bayer [Fri, 7 Oct 2022 15:25:08 +0000 (11:25 -0400)] 
dont mutate bind_arguments incoming dictionary

The :paramref:`_orm.Session.execute.bind_arguments` dictionary is no longer
mutated when passed to :meth:`_orm.Session.execute` and similar; instead,
it's copied to an internal dictionary for state changes. Among other
things, this fixes and issue where the "clause" passed to the
:meth:`_orm.Session.get_bind` method would be incorrectly referring to the
:class:`_sql.Select` construct used for the "fetch" synchronization
strategy, when the actual query being emitted was a :class:`_dml.Delete` or
:class:`_dml.Update`. This would interfere with recipes for "routing
sessions".

Fixes: #8614
Change-Id: I8d237449485c9bbf41db2b29a34b6136aa43b7bc
(cherry picked from commit 3efc9e1df378be8046d4b1f1b624968a62eb100f)

2 years agoAdd format docs to pre-commits
Federico Caselli [Thu, 6 Oct 2022 20:48:21 +0000 (22:48 +0200)] 
Add format docs to pre-commits

Also report changes from main to 1_4

Change-Id: Ia41399155ee0ec1b878aebf18967eabe38f5afd1

2 years agoFix missing column name in 1.x `IS NULL` example (#8595)
Jochen Kupperschmidt [Thu, 6 Oct 2022 19:27:02 +0000 (21:27 +0200)] 
Fix missing column name in 1.x `IS NULL` example (#8595)

2 years agoMerge "experiment w/ docs formatter on SQLA 1.4" into rel_1_4
mike bayer [Wed, 5 Oct 2022 14:56:45 +0000 (14:56 +0000)] 
Merge "experiment w/ docs formatter on SQLA 1.4" into rel_1_4

2 years agoadjust MySQL view reflection for non-standard MySQL variants
John Bodley [Fri, 30 Sep 2022 01:58:58 +0000 (21:58 -0400)] 
adjust MySQL view reflection for non-standard MySQL variants

Adjusted the regular expression used to match "CREATE VIEW" when
testing for views to work more flexibly, no longer requiring the
special keyword "ALGORITHM" in the middle, which was intended to be
optional but was not working correctly.  The change allows view reflection
to work more completely on MySQL-compatible variants such as StarRocks.
Pull request courtesy John Bodley.

Fixes: #8588
Closes: #8589
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/8589
Pull-request-sha: d85b2c5b51e45cec543c9ae9d62d6d659b063354

Change-Id: I173137f0bf68639cad0d5c329055475b40ddb5e4
(cherry picked from commit 9829bc43d69ea5e714014f5ac5f036a94d13bc08)

2 years agoclarify precedence docs
Mike Bayer [Mon, 3 Oct 2022 15:40:27 +0000 (11:40 -0400)] 
clarify precedence docs

Change-Id: I748f2736eb6382c8625b3419a82785b48766d8f7
references: #8584
(cherry picked from commit b295a3b58f13d566c37244448218e4287f5e47ee)

2 years agoexperiment w/ docs formatter on SQLA 1.4
Mike Bayer [Sun, 2 Oct 2022 18:04:43 +0000 (14:04 -0400)] 
experiment w/ docs formatter on SQLA 1.4

Enhanced the "{sql}" thing some more so that it maintains
these tags exactly as they were.

Note that the "{sql}" and "{stop}" tags are intended
to be on the Python code lines, not the SQL lines, so special
handling to find these, preserve them, then add them back
after python code is formatted is added here.

Change-Id: I07acd3ea54608cd63bee8003679f8dff131a90f4

2 years agoadd autobuild; improve a few session docs
Mike Bayer [Fri, 30 Sep 2022 17:07:04 +0000 (13:07 -0400)] 
add autobuild; improve a few session docs

this is from the writeonly patch, some doc edits became
more general so will backport these to 1.4.

Change-Id: I19231e4bcfa33a0742c8995b6059c9a9488b1a6f
(cherry picked from commit abcd088551fda5490ad56c401a8e8260fae0dcfd)

2 years agorewrite the first section of ORM quickstart
Mike Bayer [Thu, 29 Sep 2022 21:32:54 +0000 (17:32 -0400)] 
rewrite the first section of ORM quickstart

Adapted from  1158cf3a872e22e3136cccb05e975d

Change-Id: Ic124321b6d6fb50827be26d1917ce158683ce82f

2 years agoDocument user-defined functions for sqlite
Gord Thompson [Wed, 29 Jun 2022 13:38:38 +0000 (07:38 -0600)] 
Document user-defined functions for sqlite

Change-Id: I64e4d4dce8c5f5aced3190f9e3682c630462a61e
(cherry picked from commit 48a0df55c1cfb8746eec8073c0feb05be1652665)

2 years agoMerge "`aggregate_order_by` now supports cache generation." into rel_1_4
mike bayer [Mon, 26 Sep 2022 02:33:29 +0000 (02:33 +0000)] 
Merge "`aggregate_order_by` now supports cache generation." into rel_1_4

2 years ago`aggregate_order_by` now supports cache generation.
Federico Caselli [Sun, 25 Sep 2022 14:37:15 +0000 (16:37 +0200)] 
`aggregate_order_by` now supports cache generation.

also adjusted CacheKeyFixture to be a general purpose
fixture so that sub-components / dialects can run
their own cache key tests.

Fixes: #8574
Change-Id: I6c66107856aee11e548d357cea77bceee3e316a0
(cherry picked from commit 7980b677085fc759a0406f6778b9729955f3c7f6)

2 years agowarn for local-only column in remote side
Mike Bayer [Sun, 25 Sep 2022 18:56:22 +0000 (14:56 -0400)] 
warn for local-only column in remote side

A warning is emitted in ORM configurations when an explicit
:func:`_orm.remote` annotation is applied to columns that are local to the
immediate mapped class, when the referenced class does not include any of
the same table columns. Ideally this would raise an error at some point as
it's not correct from a mapping point of view.

Fixes: #7094
Fixes: #8575
Change-Id: Ia31be24aebe143161e19dc311b52c08fd5014d33
(cherry picked from commit 29838ef584d49e5ecca08f76e4966454dc7f060f)

2 years agoadd missing changelog for #8569
Mike Bayer [Sat, 24 Sep 2022 15:16:16 +0000 (11:16 -0400)] 
add missing changelog for #8569

Missed this in 57b400f07951f0ae8651ca383.  have no idea how.

Fixes: #8569
Change-Id: I4cec98d8c963930ef822bfd53d8a60a20be02894
(cherry picked from commit 75ab50869b37368f32ec311dfb59777c0c1d1edb)

2 years agoremove should_nest behavior for contains_eager()
Mike Bayer [Fri, 23 Sep 2022 19:17:57 +0000 (15:17 -0400)] 
remove should_nest behavior for contains_eager()

Fixed regression for 1.4 in :func:`_orm.contains_eager` where the "wrap in
subquery" logic of :func:`_orm.joinedload` would be inadvertently triggered
for use of the :func:`_orm.contains_eager` function with similar statements
(e.g. those that use ``distinct()``, ``limit()`` or ``offset()``). This is
not appropriate for :func:`_orm.contains_eager` which has always had the
contract that the user-defined SQL statement is unmodified with the
exception of adding the appropriate columns.

Also includes an adjustment to the assertion in Label._make_proxy()
which was there to prevent a fixed label name from being anonymized;
if the label is already anonymous, the change should proceed.
This logic was being hit before the contains_eager behavior was
adjusted. With the adjustment, this code is not used.

Fixes: #8569
Change-Id: I161e65041c0162fd2b83cbef40f57a50fcfaf0fd
(cherry picked from commit 57b400f07951f0ae8651ca38338ec5be1d222c7e)

2 years agobreak out text() from TextualSelect for col matching
Mike Bayer [Mon, 19 Sep 2022 13:40:40 +0000 (09:40 -0400)] 
break out text() from TextualSelect for col matching

Fixed issue where mixing "*" with additional explicitly-named column
expressions within the columns clause of a :func:`_sql.select` construct
would cause result-column targeting to sometimes consider the label name or
other non-repeated names to be an ambiguous target.

Fixes: #8536
Change-Id: I3c845eaf571033e54c9208762344f67f4351ac3a
(cherry picked from commit 78327d98be9236c61f950526470f29b184dabba6)

2 years agochange verbiage stating exact compliance with RFC-1738
Mike Bayer [Sat, 17 Sep 2022 14:33:55 +0000 (10:33 -0400)] 
change verbiage stating exact compliance with RFC-1738

As long as we aren't using urlparse() to parse URLs,
we are not RFC-1738 compliant.   As we accept underscores
in the scheme and not dashes or dots, we are not
RFC-1738 compliant, so emulate language like
that of PostgreSQL [1] that we "generally follow" this
scheme but include some exceptions.

[1] https://www.postgresql.org/docs/current/libpq-connect.html#id-1.7.3.8.3.6
Fixes: #8519
Change-Id: I2d7e55d9df17aed122cebb2c4c315f56c06a3da5
(cherry picked from commit c88bb2167b1c4b39c7f9378b621bb8d429269d90)

2 years agoremove obtuse section about "bundled bind parameters"
Mike Bayer [Sat, 17 Sep 2022 14:18:56 +0000 (10:18 -0400)] 
remove obtuse section about "bundled bind parameters"

Just looking for basics on insert in the first pages
of the tutorial I see this weird detour into something that
nobody ever uses and definitely isn't going to make sense
to the people I see complaining about our docs on twitter,
remove this.   the tutorial probably needs a big sweep
for wordy obtuse things.  the userbase is changing and
we really have a lot of brand-new-to-programming types coming
in.

Change-Id: I3bb11f0399e55edbb8f874e7eb63c40616b04e8b
(cherry picked from commit f0bcd57f9ed76ba8d871448d821a85089f490b6c)

2 years agoMerge "use get_event_loop() for python 3.6" into rel_1_4
mike bayer [Fri, 16 Sep 2022 22:27:37 +0000 (22:27 +0000)] 
Merge "use get_event_loop() for python 3.6" into rel_1_4

2 years agoMerge "catch exception for system_views also" into rel_1_4
mike bayer [Fri, 16 Sep 2022 22:26:40 +0000 (22:26 +0000)] 
Merge "catch exception for system_views also" into rel_1_4

2 years agofix documentation typos
Federico Caselli [Fri, 16 Sep 2022 21:50:47 +0000 (23:50 +0200)] 
fix documentation typos

Closes #8527
Change-Id: I0354f3953075fa35a84b09ad45fd850d8889c992

2 years agouse get_event_loop() for python 3.6
Mike Bayer [Thu, 15 Sep 2022 22:54:31 +0000 (18:54 -0400)] 
use get_event_loop() for python 3.6

per https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.get_running_loop
the get_event_loop method will eventually be an alias for
get_running_loop.   the latter is not present in python 3.6

Fixes: #8516
Change-Id: Idc9ba0ca5030e7f5878d31a9ab5b5cc5d40f98b9

2 years agoMake 652755e7571c8cc2ec4e8beab8ef6b1f180c496b compatible with py36
Federico Caselli [Thu, 15 Sep 2022 21:38:47 +0000 (23:38 +0200)] 
Make 652755e7571c8cc2ec4e8beab8ef6b1f180c496b compatible with py36

Change-Id: I8072146e9c4405a96b566392afa8e57661aa2a42

2 years agoMerge "Improved usage of ``asyncio.shield()``" into rel_1_4
Federico Caselli [Thu, 15 Sep 2022 20:19:12 +0000 (20:19 +0000)] 
Merge "Improved usage of ``asyncio.shield()``" into rel_1_4

2 years agoMerge "Add type awareness to evaluator" into rel_1_4
mike bayer [Thu, 15 Sep 2022 15:31:52 +0000 (15:31 +0000)] 
Merge "Add type awareness to evaluator" into rel_1_4