]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commit
split ReadOnlyColumnCollection from writeable methods
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 29 Jan 2026 22:56:30 +0000 (17:56 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 30 Jan 2026 14:59:36 +0000 (09:59 -0500)
commiteff50d9e9b1261f987850604bfa94334744ed594
treeda48cb52f7adbf5eeb66322b10a58b277cd10f38
parent290378a57a65e0db2862a6fb7f1de8b5d22bac31
split ReadOnlyColumnCollection from writeable methods

The :class:`.ColumnCollection` class hierarchy has been refactored to allow
column names such as ``add``, ``remove``, ``update``, ``extend``, and
``clear`` to be used without conflicts. :class:`.ColumnCollection` is now
an abstract base class, with mutation operations moved to
:class:`.WriteableColumnCollection` and :class:`.DedupeColumnCollection`
subclasses. The :class:`.ReadOnlyColumnCollection` exposed as attributes
such as :attr:`.Table.c` no longer includes mutation methods that raised
:class:`.NotImplementedError`, allowing these common column names to be
accessed naturally, e.g. ``table.c.add``, ``table.c.remove``,
``table.c.update``, etc.

Change-Id: I22da8314fe7c451003e948d774040d86901bbca4
doc/build/changelog/unreleased_21/colcollection.rst [new file with mode: 0644]
lib/sqlalchemy/orm/mapper.py
lib/sqlalchemy/orm/util.py
lib/sqlalchemy/sql/__init__.py
lib/sqlalchemy/sql/base.py
lib/sqlalchemy/sql/dml.py
lib/sqlalchemy/sql/expression.py
lib/sqlalchemy/sql/functions.py
lib/sqlalchemy/sql/selectable.py
test/base/test_utils.py
test/sql/test_metadata.py