]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
more changelog updates
authorMike Bayer <mike_mp@zzzcomputing.com>
Sat, 27 Jun 2026 16:06:18 +0000 (12:06 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sat, 27 Jun 2026 16:06:18 +0000 (12:06 -0400)
Change-Id: I182aba53fd92baaa132665b6ea49d882acd3b190

doc/build/changelog/migration_21.rst
doc/build/changelog/unreleased_21/11450.rst
doc/build/changelog/unreleased_21/13291.rst
doc/build/changelog/unreleased_21/13333.rst
doc/build/changelog/unreleased_21/13350.rst
doc/build/changelog/unreleased_21/5987.rst
doc/build/changelog/unreleased_21/8068.rst

index 473deeecfabcb2b23e844d144442e21dbd545d9d..7b37de2916033c9a41702ae36445a8506b417154 100644 (file)
@@ -2015,6 +2015,29 @@ A summary of ``odbc_connect`` patterns is as follows::
 :ticket:`11250`
 
 
+.. _change_8430:
+
+Improved reflection performance via native multi-table queries
+--------------------------------------------------------------
+
+The SQL Server dialect now implements native bulk reflection methods,
+including :meth:`.MSDialect.get_multi_columns`,
+:meth:`.MSDialect.get_multi_pk_constraint`,
+:meth:`.MSDialect.get_multi_foreign_keys`,
+:meth:`.MSDialect.get_multi_indexes`, and
+:meth:`.MSDialect.get_multi_table_comment`.  Previously, the SQL Server
+dialect fell back to the default implementation which calls the per-table
+single-reflection methods in a loop, resulting in one round-trip per table
+per object type.  The new implementations issue a single bulk query per
+object type against the ``sys.*`` catalog views, dramatically reducing the
+number of database round trips when reflecting large schemas.  The
+single-table reflection methods are now thin wrappers over the multi-table
+implementations, consistent with the pattern used by the PostgreSQL and Oracle
+dialects.
+
+:ticket:`8430`
+
+
 Oracle Database
 ===============
 
index 3f60d15c3d475ef524eee5a8e28d877471731431..9ec502b929a633bd29bf1456f1e912af2cd04e1f 100644 (file)
@@ -2,6 +2,6 @@
   :tags: feature, orm
   :tickets: 11450
 
-  Added :paramref:`.selectinload.chunksize` parameter to :func`.selectinload`
+  Added :paramref:`.selectinload.chunksize` parameter to :func:`.selectinload`
   allowing users to configure the number of primary keys sent per IN clause
   when loading relationships. Pull request courtesy bekapono.
index 2a8d0b54724735ff6643705d4fc2513998e34b72..f68faba21a05e0f42e1132ae06ba0f74c4422243 100644 (file)
@@ -1,5 +1,5 @@
 .. change::
-    :tags: bug, declarative
+    :tags: bug, orm
     :tickets: 13291
 
     Fixed issue where the declarative class registry would not consider
index 53cf3c999605da6f6c1d27bf031b71303499445b..8fea67cee6b6a48e3de772df0c49860ba8631b31 100644 (file)
@@ -1,5 +1,5 @@
 .. change::
-    :tags: bug, declarative
+    :tags: bug, orm
     :tickets: 13333
 
     A warning is now emitted when a Declarative attribute name is named
index 2959fe2f4d72b46ee5dc7aac1148b7d4df0f7511..710be09752c746d517f67ca21513891c1dfb3649 100644 (file)
@@ -1,5 +1,5 @@
 .. change::
-    :tags: reflection
+    :tags: engine, reflection
     :tickets: 13350
 
     Removed the legacy ``include_columns`` key from the dictionary returned
index 3ff37340f1b1bcaf12b2a0d618876c1647218272..8408a52c6279b852ec5676a0e54b40416d544cdb 100644 (file)
@@ -1,5 +1,5 @@
 .. change::
-  :tags: usecase, orm, performance
+  :tags: orm, performance
   :tickets: 5987
 
   The :func:`.selectinload` loader strategy now selects the ``omit_join``
index dba11f7767b087c735db0d45a9cc3f4243045c73..25eeaadf3cdc6bab3a6292d4baf95f4644d24d02 100644 (file)
@@ -1,5 +1,5 @@
 .. change::
-    :tags: bug, declarative
+    :tags: bug, orm
     :tickets: 8068
 
     Fixed issue where the declarative class resolver would not consider