<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/sqlalchemy.git/lib/sqlalchemy/sql/selectable.py, branch rel_2_0_6</title>
<subtitle>github.com: zzzeek/sqlalchemy.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/'/>
<entry>
<title>resolve select to NULLTYPE if no columns</title>
<updated>2023-03-07T14:03:07+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-03-07T14:03:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=b97b313c6eb7f2fe4b98d011c292de4d258c508c'/>
<id>b97b313c6eb7f2fe4b98d011c292de4d258c508c</id>
<content type='text'>
Fixed regression where the :func:`_sql.select` construct would not be able
to render if it were given no columns and then used in the context of an
EXISTS, raising an internal exception instead. While an empty "SELECT" is
not typically valid SQL, in the context of EXISTS databases such as
PostgreSQL allow it, and in any case the condition now no longer raises
an internal exception.

For this case, also add an extra whitespace trim step for the unusual
case that there are no columns to render.  This is done in such a
way as to not interfere with other test cases that are involving
custom compilation schemes.

Fixes: #9440
Change-Id: If65ba9ce15d371f09b4342ad0669143b7b082a78
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed regression where the :func:`_sql.select` construct would not be able
to render if it were given no columns and then used in the context of an
EXISTS, raising an internal exception instead. While an empty "SELECT" is
not typically valid SQL, in the context of EXISTS databases such as
PostgreSQL allow it, and in any case the condition now no longer raises
an internal exception.

For this case, also add an extra whitespace trim step for the unusual
case that there are no columns to render.  This is done in such a
way as to not interfere with other test cases that are involving
custom compilation schemes.

Fixes: #9440
Change-Id: If65ba9ce15d371f09b4342ad0669143b7b082a78
</pre>
</div>
</content>
</entry>
<entry>
<title>TextualSelect is ReturnsRowsRole</title>
<updated>2023-03-02T15:47:03+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-03-01T16:07:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=45f7b3b8ac9a1b393b45f2f199a88c3bb0c86705'/>
<id>45f7b3b8ac9a1b393b45f2f199a88c3bb0c86705</id>
<content type='text'>
Fixed typing bug where :meth:`_sql.Select.from_statement` would not accept
:func:`_sql.text` or :class:`.TextualSelect` objects as a valid type.
Additionally repaired the :class:`.TextClause.columns` method to have a
return type, which was missing.

Fixes: #9398
Change-Id: I627fc33bf83365e1c7f7c6ed29ea387dfd4a57d8
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixed typing bug where :meth:`_sql.Select.from_statement` would not accept
:func:`_sql.text` or :class:`.TextualSelect` objects as a valid type.
Additionally repaired the :class:`.TextClause.columns` method to have a
return type, which was missing.

Fixes: #9398
Change-Id: I627fc33bf83365e1c7f7c6ed29ea387dfd4a57d8
</pre>
</div>
</content>
</entry>
<entry>
<title>modernize hybrids and apply typing</title>
<updated>2023-02-16T23:01:31+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-02-16T14:39:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=81993801dd39dd4a5973f8500e849f35ac07f2f3'/>
<id>81993801dd39dd4a5973f8500e849f35ac07f2f3</id>
<content type='text'>
Improved the typing support for the :ref:`hybrids_toplevel`
extension, updated all documentation to use ORM Annotated Declarative
mappings, and added a new modifier called :attr:`.hybrid_property.inplace`.
This modifier provides a way to alter the state of a :class:`.hybrid_property`
**in place**, which is essentially what very early versions of hybrids
did, before SQLAlchemy version 1.2.0 :ticket:`3912` changed this to
remove in-place mutation.  This in-place mutation is now restored on an
**opt-in** basis to allow a single hybrid to have multiple methods
set up, without the need to name all the methods the same and without the
need to carefully "chain" differently-named methods in order to maintain
the composition.  Typing tools such as Mypy and Pyright do not allow
same-named methods on a class, so with this change a succinct method
of setting up hybrids with typing support is restored.

Change-Id: Iea88025f023428f9f006846d09fbb4be391f5ebb
References: #9321
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Improved the typing support for the :ref:`hybrids_toplevel`
extension, updated all documentation to use ORM Annotated Declarative
mappings, and added a new modifier called :attr:`.hybrid_property.inplace`.
This modifier provides a way to alter the state of a :class:`.hybrid_property`
**in place**, which is essentially what very early versions of hybrids
did, before SQLAlchemy version 1.2.0 :ticket:`3912` changed this to
remove in-place mutation.  This in-place mutation is now restored on an
**opt-in** basis to allow a single hybrid to have multiple methods
set up, without the need to name all the methods the same and without the
need to carefully "chain" differently-named methods in order to maintain
the composition.  Typing tools such as Mypy and Pyright do not allow
same-named methods on a class, so with this change a succinct method
of setting up hybrids with typing support is restored.

Change-Id: Iea88025f023428f9f006846d09fbb4be391f5ebb
References: #9321
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove `typing.Self` workaround</title>
<updated>2023-02-08T14:23:40+00:00</updated>
<author>
<name>Yurii Karabas</name>
<email>1998uriyyo@gmail.com</email>
</author>
<published>2023-02-07T22:43:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=7e4c4b8d5c18100b0db58f4d29fac5494fc95b52'/>
<id>7e4c4b8d5c18100b0db58f4d29fac5494fc95b52</id>
<content type='text'>
Remove ``typing.Self`` workaround, now using :pep:`673` for most methods
that return ``Self``. Pull request courtesy Yurii Karabas.

Fixes: #9254
Closes: #9255
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/9255
Pull-request-sha: 2947df8ada79f5c3afe9c838e65993302199c2f7

Change-Id: Ic32015ad52e95a61f3913d43ea436aa9402804df
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove ``typing.Self`` workaround, now using :pep:`673` for most methods
that return ``Self``. Pull request courtesy Yurii Karabas.

Fixes: #9254
Closes: #9255
Pull-request: https://github.com/sqlalchemy/sqlalchemy/pull/9255
Pull-request-sha: 2947df8ada79f5c3afe9c838e65993302199c2f7

Change-Id: Ic32015ad52e95a61f3913d43ea436aa9402804df
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed typing of limit, offset and fetch to allow ``None``.</title>
<updated>2023-01-31T20:20:26+00:00</updated>
<author>
<name>Federico Caselli</name>
<email>cfederico87@gmail.com</email>
</author>
<published>2023-01-31T20:20:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=ceb0eb44ce2da4b7161b7a115525ed6bccf08cbc'/>
<id>ceb0eb44ce2da4b7161b7a115525ed6bccf08cbc</id>
<content type='text'>
Fixes: #9183
Change-Id: I1ac3e3698034826122ea8a0cdc9f8f55a10ed6c1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: #9183
Change-Id: I1ac3e3698034826122ea8a0cdc9f8f55a10ed6c1
</pre>
</div>
</content>
</entry>
<entry>
<title>fix post-production typo for #9174</title>
<updated>2023-01-30T17:23:06+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-01-30T17:23:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=bcb5c850f2a5279bf7a97af6fbf99cc63dffd62f'/>
<id>bcb5c850f2a5279bf7a97af6fbf99cc63dffd62f</id>
<content type='text'>
merged in cae662a6383d3ae8f3673c70c3118ea3a1a1606e with one
typo fix afterwards

Fixes: #9174
Change-Id: I5a525da8a95f40c75da627fed49ce828bd498248
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
merged in cae662a6383d3ae8f3673c70c3118ea3a1a1606e with one
typo fix afterwards

Fixes: #9174
Change-Id: I5a525da8a95f40c75da627fed49ce828bd498248
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "fix post-production typo for #9174"</title>
<updated>2023-01-30T17:21:59+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-01-30T17:21:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=e17a81107db99300abef404b33d075a0238c2290'/>
<id>e17a81107db99300abef404b33d075a0238c2290</id>
<content type='text'>
This reverts commit 3b60c3f53eab8ee5896b3fde525bcf31d4233658.

some scratch code for isolation levels got pushed :(
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 3b60c3f53eab8ee5896b3fde525bcf31d4233658.

some scratch code for isolation levels got pushed :(
</pre>
</div>
</content>
</entry>
<entry>
<title>fix post-production typo for #9174</title>
<updated>2023-01-30T17:21:02+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-01-30T17:21:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=3b60c3f53eab8ee5896b3fde525bcf31d4233658'/>
<id>3b60c3f53eab8ee5896b3fde525bcf31d4233658</id>
<content type='text'>
merged in cae662a6383d3ae8f3673c70c3118ea3a1a1606e with one
typo fix afterwards

Fixes: #9174
Change-Id: I5a525da8a95f40c75da627fed49ce828bd498248
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
merged in cae662a6383d3ae8f3673c70c3118ea3a1a1606e with one
typo fix afterwards

Fixes: #9174
Change-Id: I5a525da8a95f40c75da627fed49ce828bd498248
</pre>
</div>
</content>
</entry>
<entry>
<title>allow single tables and entities for "of"</title>
<updated>2023-01-29T14:54:25+00:00</updated>
<author>
<name>Mike Bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-01-29T04:41:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=cae662a6383d3ae8f3673c70c3118ea3a1a1606e'/>
<id>cae662a6383d3ae8f3673c70c3118ea3a1a1606e</id>
<content type='text'>
Opened up typing on :meth:`.Select.with_for_update.of` to also accept table
and mapped class arguments, as seems to be available for the MySQL dialect.

Fixes: #9174
Change-Id: I15659d7084657564bd5a2aa55ef0e4db51b91247
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Opened up typing on :meth:`.Select.with_for_update.of` to also accept table
and mapped class arguments, as seems to be available for the MySQL dialect.

Fixes: #9174
Change-Id: I15659d7084657564bd5a2aa55ef0e4db51b91247
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Type annotations for sqlalchemy.sql.selectable" into main</title>
<updated>2023-01-13T19:28:33+00:00</updated>
<author>
<name>mike bayer</name>
<email>mike_mp@zzzcomputing.com</email>
</author>
<published>2023-01-13T19:28:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/sqlalchemy.git/commit/?id=5be715d63ba60f065a6339de5de564cc26058545'/>
<id>5be715d63ba60f065a6339de5de564cc26058545</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
