# Table of Contents - [ SQLAlchemy ORM — SQLAlchemy 2.0 Documentation ](#-sqlalchemy-orm-sqlalchemy-2-0-documentation-) - [ Overview — SQLAlchemy 2.0 Documentation ](#-overview-sqlalchemy-2-0-documentation-) - [ ORM Querying Guide — SQLAlchemy 2.0 Documentation ](#-orm-querying-guide-sqlalchemy-2-0-documentation-) - [ ORM Examples — SQLAlchemy 2.0 Documentation ](#-orm-examples-sqlalchemy-2-0-documentation-) - [ Appendix: Copyright — SQLAlchemy 2.0 Documentation ](#-appendix-copyright-sqlalchemy-2-0-documentation-) - [ Using the Session — SQLAlchemy 2.0 Documentation ](#-using-the-session-sqlalchemy-2-0-documentation-) - [ Events and Internals — SQLAlchemy 2.0 Documentation ](#-events-and-internals-sqlalchemy-2-0-documentation-) - [ Relationship Configuration — SQLAlchemy 2.0 Documentation ](#-relationship-configuration-sqlalchemy-2-0-documentation-) - [ ORM Exceptions — SQLAlchemy 2.0 Documentation ](#-orm-exceptions-sqlalchemy-2-0-documentation-) - [ ORM Extensions — SQLAlchemy 2.0 Documentation ](#-orm-extensions-sqlalchemy-2-0-documentation-) - [ Adjacency List Relationships — SQLAlchemy 2.0 Documentation ](#-adjacency-list-relationships-sqlalchemy-2-0-documentation-) - [ Using the legacy ‘backref’ relationship parameter — SQLAlchemy 2.0 Documentation ](#-using-the-legacy-backref-relationship-parameter-sqlalchemy-2-0-documentation-) - [ Special Relationship Persistence Patterns — SQLAlchemy 2.0 Documentation ](#-special-relationship-persistence-patterns-sqlalchemy-2-0-documentation-) - [ Transactions and Connection Management — SQLAlchemy 2.0 Documentation ](#-transactions-and-connection-management-sqlalchemy-2-0-documentation-) - [ Alternate Class Instrumentation — SQLAlchemy 2.0 Documentation ](#-alternate-class-instrumentation-sqlalchemy-2-0-documentation-) - [ Indexable — SQLAlchemy 2.0 Documentation ](#-indexable-sqlalchemy-2-0-documentation-) - [ Horizontal Sharding — SQLAlchemy 2.0 Documentation ](#-horizontal-sharding-sqlalchemy-2-0-documentation-) - [ Table of Contents — SQLAlchemy 2.0 Documentation ](#-table-of-contents-sqlalchemy-2-0-documentation-) - [ Table of Contents — SQLAlchemy 2.1 Documentation ](#-table-of-contents-sqlalchemy-2-1-documentation-) - [ Table of Contents — SQLAlchemy 1.4 Documentation ](#-table-of-contents-sqlalchemy-1-4-documentation-) - [ Table of Contents — SQLAlchemy 1.3 Documentation ](#-table-of-contents-sqlalchemy-1-3-documentation-) - [ Index — SQLAlchemy 2.1 Documentation ](#-index-sqlalchemy-2-1-documentation-) - [ Establishing Connectivity - the Engine — SQLAlchemy 2.0 Documentation ](#-establishing-connectivity-the-engine-sqlalchemy-2-0-documentation-) - [ Index — SQLAlchemy 2.0 Documentation ](#-index-sqlalchemy-2-0-documentation-) - [ Index — SQLAlchemy 1.4 Documentation ](#-index-sqlalchemy-1-4-documentation-) - [ Index — SQLAlchemy 1.3 Documentation ](#-index-sqlalchemy-1-3-documentation-) - [ Overview — SQLAlchemy 2.1 Documentation ](#-overview-sqlalchemy-2-1-documentation-) - [ SQL Statements and Expressions API — SQLAlchemy 2.0 Documentation ](#-sql-statements-and-expressions-api-sqlalchemy-2-0-documentation-) - [ Working with Transactions and the DBAPI — SQLAlchemy 2.0 Documentation ](#-working-with-transactions-and-the-dbapi-sqlalchemy-2-0-documentation-) - [ Core API Basics — SQLAlchemy 2.0 Documentation ](#-core-api-basics-sqlalchemy-2-0-documentation-) - [ Runtime Inspection API — SQLAlchemy 2.0 Documentation ](#-runtime-inspection-api-sqlalchemy-2-0-documentation-) - [ Tracking queries, object and Session Changes with Events — SQLAlchemy 1.4 Documentation ](#-tracking-queries-object-and-session-changes-with-events-sqlalchemy-1-4-documentation-) - [ Session API — SQLAlchemy 1.4 Documentation ](#-session-api-sqlalchemy-1-4-documentation-) - [ Expression Serializer Extension — SQLAlchemy 1.4 Documentation ](#-expression-serializer-extension-sqlalchemy-1-4-documentation-) - [ Operator Reference — SQLAlchemy 1.4 Documentation ](#-operator-reference-sqlalchemy-1-4-documentation-) - [ SQL Expression Language Foundational Constructs — SQLAlchemy 1.4 Documentation ](#-sql-expression-language-foundational-constructs-sqlalchemy-1-4-documentation-) - [ Visitor and Traversal Utilities — SQLAlchemy 1.4 Documentation ](#-visitor-and-traversal-utilities-sqlalchemy-1-4-documentation-) - [ SQL and Generic Functions — SQLAlchemy 1.4 Documentation ](#-sql-and-generic-functions-sqlalchemy-1-4-documentation-) - [ Custom Types — SQLAlchemy 1.4 Documentation ](#-custom-types-sqlalchemy-1-4-documentation-) - [ The Type Hierarchy — SQLAlchemy 1.4 Documentation ](#-the-type-hierarchy-sqlalchemy-1-4-documentation-) - [ Base Type API — SQLAlchemy 1.4 Documentation ](#-base-type-api-sqlalchemy-1-4-documentation-) - [ Engine and Connection Use — SQLAlchemy 1.4 Documentation ](#-engine-and-connection-use-sqlalchemy-1-4-documentation-) - [ Installation — SQLAlchemy 1.4 Documentation ](#-installation-sqlalchemy-1-4-documentation-) - [ MetaData / Schema — SQLAlchemy 1.4 Documentation ](#-metadata-schema-sqlalchemy-1-4-documentation-) - [ Third Party Integration Issues — SQLAlchemy 1.4 Documentation ](#-third-party-integration-issues-sqlalchemy-1-4-documentation-) - [ ORM Configuration — SQLAlchemy 1.4 Documentation ](#-orm-configuration-sqlalchemy-1-4-documentation-) --- # SQLAlchemy ORM — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html "SQLAlchemy 2.0 Documentation") * [Overview](https://docs.sqlalchemy.org/en/20/intro.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html) * **SQLAlchemy ORM**[¶](https://docs.sqlalchemy.org/en/20/orm/#) * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/20/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/20/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/20/changelog/index.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Further Reading](https://docs.sqlalchemy.org/en/20/tutorial/further_reading.html "previous chapter") * **Next:** [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * **On this page:** * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/#sqlalchemy-orm) SQLAlchemy ORM[¶](https://docs.sqlalchemy.org/en/20/orm/#sqlalchemy-orm "Link to this heading") ================================================================================================ Here, the Object Relational Mapper is introduced and fully described. If you want to work with higher-level SQL which is constructed automatically for you, as well as automated persistence of Python objects, proceed first to the tutorial. * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [Declare Models](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#declare-models) * [Create an Engine](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#create-an-engine) * [Emit CREATE TABLE DDL](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#emit-create-table-ddl) * [Create Objects and Persist](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#create-objects-and-persist) * [Simple SELECT](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#simple-select) * [SELECT with JOIN](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#select-with-join) * [Make Changes](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#make-changes) * [Some Deletes](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#some-deletes) * [Learn the above concepts in depth](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#learn-the-above-concepts-in-depth) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [ORM Mapped Class Overview](https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html) * [Mapping Classes with Declarative](https://docs.sqlalchemy.org/en/20/orm/declarative_mapping.html) * [Integration with dataclasses and attrs](https://docs.sqlalchemy.org/en/20/orm/dataclasses.html) * [SQL Expressions as Mapped Attributes](https://docs.sqlalchemy.org/en/20/orm/mapped_sql_expr.html) * [Changing Attribute Behavior](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html) * [Composite Column Types](https://docs.sqlalchemy.org/en/20/orm/composites.html) * [Mapping Class Inheritance Hierarchies](https://docs.sqlalchemy.org/en/20/orm/inheritance.html) * [Non-Traditional Mappings](https://docs.sqlalchemy.org/en/20/orm/nonstandard_mappings.html) * [Configuring a Version Counter](https://docs.sqlalchemy.org/en/20/orm/versioning.html) * [Class Mapping API](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html) * [Writing SELECT statements for Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html) * [ORM-Enabled INSERT, UPDATE, and DELETE statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html) * [Column Loading Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html) * [ORM API Features for Querying](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html) * [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/20/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html) * [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) * [Mapping Recipes](https://docs.sqlalchemy.org/en/20/orm/examples.html#mapping-recipes) * [Inheritance Mapping Recipes](https://docs.sqlalchemy.org/en/20/orm/examples.html#inheritance-mapping-recipes) * [Special APIs](https://docs.sqlalchemy.org/en/20/orm/examples.html#special-apis) * [Extending the ORM](https://docs.sqlalchemy.org/en/20/orm/examples.html#extending-the-orm) Previous: [Further Reading](https://docs.sqlalchemy.org/en/20/tutorial/further_reading.html "previous chapter") Next: [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Overview — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html "SQLAlchemy 2.0 Documentation") * **Overview**[¶](https://docs.sqlalchemy.org/en/20/intro.html#) * [Documentation Overview](https://docs.sqlalchemy.org/en/20/intro.html#documentation-overview) * [Code Examples](https://docs.sqlalchemy.org/en/20/intro.html#code-examples) * [Installation Guide](https://docs.sqlalchemy.org/en/20/intro.html#installation-guide) * [Supported Platforms](https://docs.sqlalchemy.org/en/20/intro.html#supported-platforms) * [AsyncIO Support](https://docs.sqlalchemy.org/en/20/intro.html#asyncio-support) * [Supported Installation Methods](https://docs.sqlalchemy.org/en/20/intro.html#supported-installation-methods) * [Install via pip](https://docs.sqlalchemy.org/en/20/intro.html#install-via-pip) * [Installing manually from the source distribution](https://docs.sqlalchemy.org/en/20/intro.html#installing-manually-from-the-source-distribution) * [Building the Cython Extensions](https://docs.sqlalchemy.org/en/20/intro.html#building-the-cython-extensions) * [Installing a Database API](https://docs.sqlalchemy.org/en/20/intro.html#installing-a-database-api) * [Checking the Installed SQLAlchemy Version](https://docs.sqlalchemy.org/en/20/intro.html#checking-the-installed-sqlalchemy-version) * [Next Steps](https://docs.sqlalchemy.org/en/20/intro.html#next-steps) * [1.x to 2.0 Migration](https://docs.sqlalchemy.org/en/20/intro.html#x-to-2-0-migration) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/20/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/20/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/20/changelog/index.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Table of Contents](https://docs.sqlalchemy.org/en/20/contents.html "previous chapter") * **Next:** [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * **On this page:** * [Overview](https://docs.sqlalchemy.org/en/20/intro.html#overview) * [Documentation Overview](https://docs.sqlalchemy.org/en/20/intro.html#documentation-overview) * [Code Examples](https://docs.sqlalchemy.org/en/20/intro.html#code-examples) * [Installation Guide](https://docs.sqlalchemy.org/en/20/intro.html#installation-guide) * [Supported Platforms](https://docs.sqlalchemy.org/en/20/intro.html#supported-platforms) * [AsyncIO Support](https://docs.sqlalchemy.org/en/20/intro.html#asyncio-support) * [Supported Installation Methods](https://docs.sqlalchemy.org/en/20/intro.html#supported-installation-methods) * [Install via pip](https://docs.sqlalchemy.org/en/20/intro.html#install-via-pip) * [Installing manually from the source distribution](https://docs.sqlalchemy.org/en/20/intro.html#installing-manually-from-the-source-distribution) * [Building the Cython Extensions](https://docs.sqlalchemy.org/en/20/intro.html#building-the-cython-extensions) * [Installing a Database API](https://docs.sqlalchemy.org/en/20/intro.html#installing-a-database-api) * [Checking the Installed SQLAlchemy Version](https://docs.sqlalchemy.org/en/20/intro.html#checking-the-installed-sqlalchemy-version) * [Next Steps](https://docs.sqlalchemy.org/en/20/intro.html#next-steps) * [1.x to 2.0 Migration](https://docs.sqlalchemy.org/en/20/intro.html#x-to-2-0-migration) Overview[¶](https://docs.sqlalchemy.org/en/20/intro.html#overview "Link to this heading") ========================================================================================== The SQLAlchemy SQL Toolkit and Object Relational Mapper is a comprehensive set of tools for working with databases and Python. It has several distinct areas of functionality which can be used individually or combined together. Its major components are illustrated below, with component dependencies organized into layers: ![_images/sqla_arch_small.png](https://docs.sqlalchemy.org/en/20/_images/sqla_arch_small.png) Above, the two most significant front-facing portions of SQLAlchemy are the **Object Relational Mapper (ORM)** and the **Core**. Core contains the breadth of SQLAlchemy’s SQL and database integration and description services, the most prominent part of this being the **SQL Expression Language**. The SQL Expression Language is a toolkit on its own, independent of the ORM package, which provides a system of constructing SQL expressions represented by composable objects, which can then be “executed” against a target database within the scope of a specific transaction, returning a result set. Inserts, updates and deletes (i.e. [DML](https://docs.sqlalchemy.org/en/20/glossary.html#term-DML) ) are achieved by passing SQL expression objects representing these statements along with dictionaries that represent parameters to be used with each statement. The ORM builds upon Core to provide a means of working with a domain object model mapped to a database schema. When using the ORM, SQL statements are constructed in mostly the same way as when using Core, however the task of DML, which here refers to the persistence of business objects in a database, is automated using a pattern called [unit of work](https://docs.sqlalchemy.org/en/20/glossary.html#term-unit-of-work) , which translates changes in state against mutable objects into INSERT, UPDATE and DELETE constructs which are then invoked in terms of those objects. SELECT statements are also augmented by ORM-specific automations and object-centric querying capabilities. Whereas working with Core and the SQL Expression language presents a schema-centric view of the database, along with a programming paradigm that is oriented around immutability, the ORM builds on top of this a domain-centric view of the database with a programming paradigm that is more explicitly object-oriented and reliant upon mutability. Since a relational database is itself a mutable service, the difference is that Core/SQL Expression language is command oriented whereas the ORM is state oriented. Documentation Overview[¶](https://docs.sqlalchemy.org/en/20/intro.html#documentation-overview "Link to this heading") ---------------------------------------------------------------------------------------------------------------------- The documentation is separated into four sections: * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) - this all-new tutorial for the 1.4/2.0 series of SQLAlchemy introduces the entire library holistically, starting from a description of Core and working more and more towards ORM-specific concepts. New users, as well as users coming from the 1.x series of SQLAlchemy, should start here. * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html) - In this section, reference documentation for the ORM is presented. * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html) - Here, reference documentation for everything else within Core is presented. SQLAlchemy engine, connection, and pooling services are also described here. * [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) - Provides reference documentation for all [dialect](https://docs.sqlalchemy.org/en/20/glossary.html#term-dialect) implementations, including [DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI) specifics. Code Examples[¶](https://docs.sqlalchemy.org/en/20/intro.html#code-examples "Link to this heading") ---------------------------------------------------------------------------------------------------- Working code examples, mostly regarding the ORM, are included in the SQLAlchemy distribution. A description of all the included example applications is at [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) . There is also a wide variety of examples involving both core SQLAlchemy constructs as well as the ORM on the wiki. See [Theatrum Chemicum](https://www.sqlalchemy.org/trac/wiki/UsageRecipes) . Installation Guide[¶](https://docs.sqlalchemy.org/en/20/intro.html#installation-guide "Link to this heading") -------------------------------------------------------------------------------------------------------------- ### Supported Platforms[¶](https://docs.sqlalchemy.org/en/20/intro.html#supported-platforms "Link to this heading") SQLAlchemy supports the following platforms: * cPython 3.7 and higher * Python-3 compatible versions of [PyPy](http://pypy.org/) Changed in version 2.0: SQLAlchemy now targets Python 3.7 and above. ### AsyncIO Support[¶](https://docs.sqlalchemy.org/en/20/intro.html#asyncio-support "Link to this heading") SQLAlchemy’s `asyncio` support depends upon the [greenlet](https://pypi.org/project/greenlet/) project. This dependency will be installed by default on common machine platforms, however is not supported on every architecture and also may not install by default on less common architectures. See the section [Asyncio Platform Installation Notes (Including Apple M1)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#asyncio-install) for additional details on ensuring asyncio support is present. ### Supported Installation Methods[¶](https://docs.sqlalchemy.org/en/20/intro.html#supported-installation-methods "Link to this heading") SQLAlchemy installation is via standard Python methodologies that are based on [setuptools](https://pypi.org/project/setuptools/) , either by referring to `setup.py` directly or by using [pip](https://pypi.org/project/pip/) or other setuptools-compatible approaches. ### Install via pip[¶](https://docs.sqlalchemy.org/en/20/intro.html#install-via-pip "Link to this heading") When `pip` is available, the distribution can be downloaded from PyPI and installed in one step: pip install SQLAlchemy This command will download the latest **released** version of SQLAlchemy from the [Python Cheese Shop](https://pypi.org/project/SQLAlchemy) and install it to your system. For most common platforms, a Python Wheel file will be downloaded which provides native Cython / C extensions prebuilt. In order to install the latest **prerelease** version, such as `2.0.0b1`, pip requires that the `--pre` flag be used: pip install --pre SQLAlchemy Where above, if the most recent version is a prerelease, it will be installed instead of the latest released version. ### Installing manually from the source distribution[¶](https://docs.sqlalchemy.org/en/20/intro.html#installing-manually-from-the-source-distribution "Link to this heading") When not installing from pip, the source distribution may be installed using the `setup.py` script: python setup.py install The source install is platform agnostic and will install on any platform regardless of whether or not Cython / C build tools are installed. As the next section [Building the Cython Extensions](https://docs.sqlalchemy.org/en/20/intro.html#c-extensions) details, `setup.py` will attempt to build using Cython / C if possible but will fall back to a pure Python installation otherwise. ### Building the Cython Extensions[¶](https://docs.sqlalchemy.org/en/20/intro.html#building-the-cython-extensions "Link to this heading") SQLAlchemy includes [Cython](https://cython.org/) extensions which provide an extra speed boost within various areas, with a current emphasis on the speed of Core result sets. Changed in version 2.0: The SQLAlchemy C extensions have been rewritten using Cython. `setup.py` will automatically build the extensions if an appropriate platform is detected, assuming the Cython package is installed. A complete manual build looks like: \# cd into SQLAlchemy source distribution cd path/to/sqlalchemy # install cython pip install cython # optionally build Cython extensions ahead of install python setup.py build\_ext # run the install python setup.py install Source builds may also be performed using [**PEP 517**](https://peps.python.org/pep-0517/) techniques, such as using [build](https://pypi.org/project/build/) : \# cd into SQLAlchemy source distribution cd path/to/sqlalchemy # install build pip install build # build source / wheel dists python -m build If the build of the Cython extensions fails due to Cython not being installed, a missing compiler or other issue, the setup process will output a warning message and re-run the build without the Cython extensions upon completion, reporting final status. To run the build/install without even attempting to compile the Cython extensions, the `DISABLE_SQLALCHEMY_CEXT` environment variable may be specified. The use case for this is either for special testing circumstances, or in the rare case of compatibility/build issues not overcome by the usual “rebuild” mechanism: export DISABLE\_SQLALCHEMY\_CEXT=1; python setup.py install ### Installing a Database API[¶](https://docs.sqlalchemy.org/en/20/intro.html#installing-a-database-api "Link to this heading") SQLAlchemy is designed to operate with a [DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI) implementation built for a particular database, and includes support for the most popular databases. The individual database sections in [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) enumerate the available DBAPIs for each database, including external links. ### Checking the Installed SQLAlchemy Version[¶](https://docs.sqlalchemy.org/en/20/intro.html#checking-the-installed-sqlalchemy-version "Link to this heading") This documentation covers SQLAlchemy version 2.0. If you’re working on a system that already has SQLAlchemy installed, check the version from your Python prompt like this: \>>> import sqlalchemy \>>> sqlalchemy.\_\_version\_\_ 2.0.0 ### Next Steps[¶](https://docs.sqlalchemy.org/en/20/intro.html#next-steps "Link to this heading") With SQLAlchemy installed, new and old users alike can [Proceed to the SQLAlchemy Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) . 1.x to 2.0 Migration[¶](https://docs.sqlalchemy.org/en/20/intro.html#x-to-2-0-migration "Link to this heading") ---------------------------------------------------------------------------------------------------------------- Notes on the new API released in SQLAlchemy 2.0 is available here at [SQLAlchemy 2.0 - Major Migration Guide](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html) . Previous: [Table of Contents](https://docs.sqlalchemy.org/en/20/contents.html "previous chapter") Next: [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # ORM Querying Guide — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * **ORM Querying Guide**[¶](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html#) * [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html) * [Writing SELECT statements for Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html) * [ORM-Enabled INSERT, UPDATE, and DELETE statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html) * [Column Loading Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html) * [ORM API Features for Querying](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html) * [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html "previous chapter") * **Next:** [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * **On this page:** * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html#orm-querying-guide) ORM Querying Guide[¶](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html#orm-querying-guide "Link to this heading") ============================================================================================================================= This section provides an overview of emitting queries with the SQLAlchemy ORM using [2.0 style](https://docs.sqlalchemy.org/en/20/glossary.html#term-2.0-style) usage. Readers of this section should be familiar with the SQLAlchemy overview at [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) , and in particular most of the content here expands upon the content at [Using SELECT Statements](https://docs.sqlalchemy.org/en/20/tutorial/data_select.html#tutorial-selecting-data) . For users of SQLAlchemy 1.x In the SQLAlchemy 2.x series, SQL SELECT statements for the ORM are constructed using the same [`select()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") construct as is used in Core, which is then invoked in terms of a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") using the [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method (as are the [`update()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.update "sqlalchemy.sql.expression.update") and [`delete()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.delete "sqlalchemy.sql.expression.delete") constructs now used for the [ORM-Enabled INSERT, UPDATE, and DELETE statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#orm-expression-update-delete) feature). However, the legacy [`Query`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") object, which performs these same steps as more of an “all-in-one” object, continues to remain available as a thin facade over this new system, to support applications that were built on the 1.x series without the need for wholesale replacement of all queries. For reference on this object, see the section [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html) . * [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html) * [Selecting ORM Entities and Attributes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-orm-entities-and-attributes) * [Selecting ORM Entities](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-orm-entities) * [Selecting Multiple ORM Entities Simultaneously](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-multiple-orm-entities-simultaneously) * [Selecting Individual Attributes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-individual-attributes) * [Grouping Selected Attributes with Bundles](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#grouping-selected-attributes-with-bundles) * [Selecting ORM Aliases](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-orm-aliases) * [Getting ORM Results from Textual Statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#getting-orm-results-from-textual-statements) * [Selecting Entities from Subqueries](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-entities-from-subqueries) * [Selecting Entities from UNIONs and other set operations](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#selecting-entities-from-unions-and-other-set-operations) * [Joins](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#joins) * [Simple Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#simple-relationship-joins) * [Chaining Multiple Joins](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#chaining-multiple-joins) * [Joins to a Target Entity](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#joins-to-a-target-entity) * [Joins to a Target with an ON Clause](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#joins-to-a-target-with-an-on-clause) * [Combining Relationship with Custom ON Criteria](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#combining-relationship-with-custom-on-criteria) * [Using Relationship to join between aliased targets](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#using-relationship-to-join-between-aliased-targets) * [Joining to Subqueries](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#joining-to-subqueries) * [Joining to Subqueries along Relationship paths](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#joining-to-subqueries-along-relationship-paths) * [Subqueries that Refer to Multiple Entities](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#subqueries-that-refer-to-multiple-entities) * [Setting the leftmost FROM clause in a join](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#setting-the-leftmost-from-clause-in-a-join) * [Relationship WHERE Operators](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#relationship-where-operators) * [EXISTS forms: has() / any()](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#exists-forms-has-any) * [Relationship Instance Comparison Operators](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#relationship-instance-comparison-operators) * [Writing SELECT statements for Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html) * [SELECTing from the base class vs. specific sub-classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#selecting-from-the-base-class-vs-specific-sub-classes) * [Using selectin\_polymorphic()](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#using-selectin-polymorphic) * [Applying selectin\_polymorphic() to an existing eager load](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#applying-selectin-polymorphic-to-an-existing-eager-load) * [Applying loader options to the subclasses loaded by selectin\_polymorphic](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#applying-loader-options-to-the-subclasses-loaded-by-selectin-polymorphic) * [Configuring selectin\_polymorphic() on mappers](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#configuring-selectin-polymorphic-on-mappers) * [Using with\_polymorphic()](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#using-with-polymorphic) * [Filtering Subclass Attributes with with\_polymorphic()](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#filtering-subclass-attributes-with-with-polymorphic) * [Using aliasing with with\_polymorphic](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#using-aliasing-with-with-polymorphic) * [Configuring with\_polymorphic() on mappers](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#configuring-with-polymorphic-on-mappers) * [Joining to specific sub-types or with\_polymorphic() entities](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#joining-to-specific-sub-types-or-with-polymorphic-entities) * [Eager Loading of Polymorphic Subtypes](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#eager-loading-of-polymorphic-subtypes) * [SELECT Statements for Single Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#select-statements-for-single-inheritance-mappings) * [Optimizing Attribute Loads for Single Inheritance](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#optimizing-attribute-loads-for-single-inheritance) * [Inheritance Loading API](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#inheritance-loading-api) * [`with_polymorphic()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic) * [`selectin_polymorphic()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.selectin_polymorphic) * [ORM-Enabled INSERT, UPDATE, and DELETE statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html) * [ORM Bulk INSERT Statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#orm-bulk-insert-statements) * [Getting new objects with RETURNING](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#getting-new-objects-with-returning) * [Using Heterogeneous Parameter Dictionaries](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#using-heterogeneous-parameter-dictionaries) * [Sending NULL values in ORM bulk INSERT statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#sending-null-values-in-orm-bulk-insert-statements) * [Bulk INSERT for Joined Table Inheritance](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#bulk-insert-for-joined-table-inheritance) * [ORM Bulk Insert with SQL Expressions](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#orm-bulk-insert-with-sql-expressions) * [Legacy Session Bulk INSERT Methods](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#legacy-session-bulk-insert-methods) * [ORM “upsert” Statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#orm-upsert-statements) * [ORM Bulk UPDATE by Primary Key](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#orm-bulk-update-by-primary-key) * [Disabling Bulk ORM Update by Primary Key for an UPDATE statement with multiple parameter sets](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#disabling-bulk-orm-update-by-primary-key-for-an-update-statement-with-multiple-parameter-sets) * [Bulk UPDATE by Primary Key for Joined Table Inheritance](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#bulk-update-by-primary-key-for-joined-table-inheritance) * [Legacy Session Bulk UPDATE Methods](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#legacy-session-bulk-update-methods) * [ORM UPDATE and DELETE with Custom WHERE Criteria](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#orm-update-and-delete-with-custom-where-criteria) * [Important Notes and Caveats for ORM-Enabled Update and Delete](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#important-notes-and-caveats-for-orm-enabled-update-and-delete) * [Selecting a Synchronization Strategy](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#selecting-a-synchronization-strategy) * [Using RETURNING with UPDATE/DELETE and Custom WHERE Criteria](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#using-returning-with-update-delete-and-custom-where-criteria) * [UPDATE/DELETE with Custom WHERE Criteria for Joined Table Inheritance](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#update-delete-with-custom-where-criteria-for-joined-table-inheritance) * [Legacy Query Methods](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html#legacy-query-methods) * [Column Loading Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html) * [Limiting which Columns Load with Column Deferral](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#limiting-which-columns-load-with-column-deferral) * [Using `load_only()` to reduce loaded columns](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#using-load-only-to-reduce-loaded-columns) * [Using `defer()` to omit specific columns](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#using-defer-to-omit-specific-columns) * [Using raiseload to prevent deferred column loads](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#using-raiseload-to-prevent-deferred-column-loads) * [Configuring Column Deferral on Mappings](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#configuring-column-deferral-on-mappings) * [Using `deferred()` for imperative mappers, mapped SQL expressions](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#using-deferred-for-imperative-mappers-mapped-sql-expressions) * [Using `undefer()` to “eagerly” load deferred columns](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#using-undefer-to-eagerly-load-deferred-columns) * [Loading deferred columns in groups](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#loading-deferred-columns-in-groups) * [Undeferring by group with `undefer_group()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#undeferring-by-group-with-undefer-group) * [Undeferring on wildcards](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#undeferring-on-wildcards) * [Configuring mapper-level “raiseload” behavior](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#configuring-mapper-level-raiseload-behavior) * [Loading Arbitrary SQL Expressions onto Objects](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#loading-arbitrary-sql-expressions-onto-objects) * [Using `with_expression()` with UNIONs, other subqueries](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#using-with-expression-with-unions-other-subqueries) * [Column Loading API](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#column-loading-api) * [`defer()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.defer) * [`deferred()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.deferred) * [`query_expression()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.query_expression) * [`load_only()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.load_only) * [`undefer()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.undefer) * [`undefer_group()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.undefer_group) * [`with_expression()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.with_expression) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html) * [Summary of Relationship Loading Styles](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#summary-of-relationship-loading-styles) * [Configuring Loader Strategies at Mapping Time](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#configuring-loader-strategies-at-mapping-time) * [Relationship Loading with Loader Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#relationship-loading-with-loader-options) * [Adding Criteria to loader options](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#adding-criteria-to-loader-options) * [Specifying Sub-Options with Load.options()](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#specifying-sub-options-with-load-options) * [Lazy Loading](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#lazy-loading) * [Preventing unwanted lazy loads using raiseload](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#preventing-unwanted-lazy-loads-using-raiseload) * [Joined Eager Loading](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#joined-eager-loading) * [The Zen of Joined Eager Loading](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#the-zen-of-joined-eager-loading) * [Select IN loading](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#select-in-loading) * [Subquery Eager Loading](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#subquery-eager-loading) * [What Kind of Loading to Use ?](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#what-kind-of-loading-to-use) * [Polymorphic Eager Loading](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#polymorphic-eager-loading) * [Wildcard Loading Strategies](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#wildcard-loading-strategies) * [Per-Entity Wildcard Loading Strategies](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#per-entity-wildcard-loading-strategies) * [Routing Explicit Joins/Statements into Eagerly Loaded Collections](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#routing-explicit-joins-statements-into-eagerly-loaded-collections) * [Using contains\_eager() to load a custom-filtered collection result](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#using-contains-eager-to-load-a-custom-filtered-collection-result) * [Relationship Loader API](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#relationship-loader-api) * [`contains_eager()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.contains_eager) * [`defaultload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.defaultload) * [`immediateload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.immediateload) * [`joinedload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.joinedload) * [`lazyload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.lazyload) * [`Load`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load) * [`noload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.noload) * [`raiseload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.raiseload) * [`selectinload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.selectinload) * [`subqueryload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.subqueryload) * [ORM API Features for Querying](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html) * [ORM Loader Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#orm-loader-options) * [ORM Execution Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#orm-execution-options) * [Populate Existing](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#populate-existing) * [Autoflush](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#autoflush) * [Fetching Large Result Sets with Yield Per](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#fetching-large-result-sets-with-yield-per) * [Identity Token](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#queryguide-identity-token) * [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html) * [The Query Object](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#the-query-object) * [`Query`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query) * [ORM-Specific Query Constructs](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#orm-specific-query-constructs) Previous: [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html "previous chapter") Next: [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # ORM Examples — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * **ORM Examples**[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#) * [Mapping Recipes](https://docs.sqlalchemy.org/en/20/orm/examples.html#mapping-recipes) * [Adjacency List](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.adjacency_list) * [Associations](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.association) * [Asyncio Integration](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.asyncio) * [Directed Graphs](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.graphs) * [Dynamic Relations as Dictionaries](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dynamic_dict) * [Generic Associations](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.generic_associations) * [Materialized Paths](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.materialized_paths) * [Nested Sets](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.nested_sets) * [Performance](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.performance) * [File Listing](https://docs.sqlalchemy.org/en/20/orm/examples.html#file-listing) * [Running all tests with time](https://docs.sqlalchemy.org/en/20/orm/examples.html#running-all-tests-with-time) * [Dumping Profiles for Individual Tests](https://docs.sqlalchemy.org/en/20/orm/examples.html#dumping-profiles-for-individual-tests) * [Writing your Own Suites](https://docs.sqlalchemy.org/en/20/orm/examples.html#writing-your-own-suites) * [Space Invaders](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.space_invaders) * [Versioning Objects](https://docs.sqlalchemy.org/en/20/orm/examples.html#versioning-objects) * [Versioning with a History Table](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_history) * [Versioning using Temporal Rows](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_rows) * [Vertical Attribute Mapping](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.vertical) * [Inheritance Mapping Recipes](https://docs.sqlalchemy.org/en/20/orm/examples.html#inheritance-mapping-recipes) * [Basic Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.inheritance) * [Special APIs](https://docs.sqlalchemy.org/en/20/orm/examples.html#special-apis) * [Attribute Instrumentation](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.custom_attributes) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.sharding) * [Extending the ORM](https://docs.sqlalchemy.org/en/20/orm/examples.html#extending-the-orm) * [ORM Query Events](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.extending_query) * [Dogpile Caching](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dogpile_caching) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html "previous chapter") * **Next:** [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * **On this page:** * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html#orm-examples) * [Mapping Recipes](https://docs.sqlalchemy.org/en/20/orm/examples.html#mapping-recipes) * [Adjacency List](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.adjacency_list) * [Associations](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.association) * [Asyncio Integration](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.asyncio) * [Directed Graphs](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.graphs) * [Dynamic Relations as Dictionaries](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dynamic_dict) * [Generic Associations](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.generic_associations) * [Materialized Paths](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.materialized_paths) * [Nested Sets](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.nested_sets) * [Performance](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.performance) * [File Listing](https://docs.sqlalchemy.org/en/20/orm/examples.html#file-listing) * [Running all tests with time](https://docs.sqlalchemy.org/en/20/orm/examples.html#running-all-tests-with-time) * [Dumping Profiles for Individual Tests](https://docs.sqlalchemy.org/en/20/orm/examples.html#dumping-profiles-for-individual-tests) * [Writing your Own Suites](https://docs.sqlalchemy.org/en/20/orm/examples.html#writing-your-own-suites) * [Space Invaders](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.space_invaders) * [Versioning Objects](https://docs.sqlalchemy.org/en/20/orm/examples.html#versioning-objects) * [Versioning with a History Table](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_history) * [Versioning using Temporal Rows](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_rows) * [Vertical Attribute Mapping](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.vertical) * [Inheritance Mapping Recipes](https://docs.sqlalchemy.org/en/20/orm/examples.html#inheritance-mapping-recipes) * [Basic Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.inheritance) * [Special APIs](https://docs.sqlalchemy.org/en/20/orm/examples.html#special-apis) * [Attribute Instrumentation](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.custom_attributes) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.sharding) * [Extending the ORM](https://docs.sqlalchemy.org/en/20/orm/examples.html#extending-the-orm) * [ORM Query Events](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.extending_query) * [Dogpile Caching](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dogpile_caching) ORM Examples[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#orm-examples "Link to this heading") ========================================================================================================= The SQLAlchemy distribution includes a variety of code examples illustrating a select set of patterns, some typical and some not so typical. All are runnable and can be found in the `/examples` directory of the distribution. Descriptions and source code for all can be found here. Additional SQLAlchemy examples, some user contributed, are available on the wiki at [https://www.sqlalchemy.org/trac/wiki/UsageRecipes](https://www.sqlalchemy.org/trac/wiki/UsageRecipes) . Mapping Recipes[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#mapping-recipes "Link to this heading") --------------------------------------------------------------------------------------------------------------- ### Adjacency List[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.adjacency_list "Link to this heading") An example of a dictionary-of-dictionaries structure mapped using an adjacency list model. E.g.: node \= TreeNode("rootnode") node.append("node1") node.append("node3") session.add(node) session.commit() dump\_tree(node) Listing of files: * [adjacency\_list.py](https://docs.sqlalchemy.org/en/20/_modules/examples/adjacency_list/adjacency_list.html) ### Associations[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.association "Link to this heading") Examples illustrating the usage of the “association object” pattern, where an intermediary class mediates the relationship between two classes that are associated in a many-to-many pattern. Listing of files: * [basic\_association.py](https://docs.sqlalchemy.org/en/20/_modules/examples/association/basic_association.html) - Illustrate a many-to-many relationship between an “Order” and a collection of “Item” objects, associating a purchase price with each via an association object called “OrderItem” * [dict\_of\_sets\_with\_default.py](https://docs.sqlalchemy.org/en/20/_modules/examples/association/dict_of_sets_with_default.html) - An advanced association proxy example which illustrates nesting of association proxies to produce multi-level Python collections, in this case a dictionary with string keys and sets of integers as values, which conceal the underlying mapped classes. * [proxied\_association.py](https://docs.sqlalchemy.org/en/20/_modules/examples/association/proxied_association.html) - Same example as basic\_association, adding in usage of [`sqlalchemy.ext.associationproxy`](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy "sqlalchemy.ext.associationproxy") to make explicit references to `OrderItem` optional. ### Asyncio Integration[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.asyncio "Link to this heading") Examples illustrating the asyncio engine feature of SQLAlchemy. Listing of files: * [async\_orm.py](https://docs.sqlalchemy.org/en/20/_modules/examples/asyncio/async_orm.html) - Illustrates use of the `sqlalchemy.ext.asyncio.AsyncSession` object for asynchronous ORM use. * [async\_orm\_writeonly.py](https://docs.sqlalchemy.org/en/20/_modules/examples/asyncio/async_orm_writeonly.html) - Illustrates using **write only relationships** for simpler handling of ORM collections under asyncio. * [basic.py](https://docs.sqlalchemy.org/en/20/_modules/examples/asyncio/basic.html) - Illustrates the asyncio engine / connection interface. * [gather\_orm\_statements.py](https://docs.sqlalchemy.org/en/20/_modules/examples/asyncio/gather_orm_statements.html) - Illustrates how to run many statements concurrently using `asyncio.gather()` along many asyncio database connections, merging ORM results into a single `AsyncSession`. * [greenlet\_orm.py](https://docs.sqlalchemy.org/en/20/_modules/examples/asyncio/greenlet_orm.html) - Illustrates use of the sqlalchemy.ext.asyncio.AsyncSession object for asynchronous ORM use, including the optional run\_sync() method. ### Directed Graphs[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.graphs "Link to this heading") An example of persistence for a directed graph structure. The graph is stored as a collection of edges, each referencing both a “lower” and an “upper” node in a table of nodes. Basic persistence and querying for lower- and upper- neighbors are illustrated: n2 \= Node(2) n5 \= Node(5) n2.add\_neighbor(n5) print(n2.higher\_neighbors()) Listing of files: * [directed\_graph.py](https://docs.sqlalchemy.org/en/20/_modules/examples/graphs/directed_graph.html) ### Dynamic Relations as Dictionaries[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dynamic_dict "Link to this heading") Illustrates how to place a dictionary-like facade on top of a “dynamic” relation, so that dictionary operations (assuming simple string keys) can operate upon a large collection without loading the full collection at once. Listing of files: * [dynamic\_dict.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dynamic_dict/dynamic_dict.html) ### Generic Associations[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.generic_associations "Link to this heading") Illustrates various methods of associating multiple types of parents with a particular child object. The examples all use the declarative extension along with declarative mixins. Each one presents the identical use case at the end - two classes, `Customer` and `Supplier`, both subclassing the `HasAddresses` mixin, which ensures that the parent class is provided with an `addresses` collection which contains `Address` objects. The [discriminator\_on\_association.py](https://docs.sqlalchemy.org/en/20/_modules/examples/generic_associations/discriminator_on_association.html) and [generic\_fk.py](https://docs.sqlalchemy.org/en/20/_modules/examples/generic_associations/generic_fk.html) scripts are modernized versions of recipes presented in the 2007 blog post [Polymorphic Associations with SQLAlchemy](https://techspot.zzzeek.org/2007/05/29/polymorphic-associations-with-sqlalchemy/) . Listing of files: * [discriminator\_on\_association.py](https://docs.sqlalchemy.org/en/20/_modules/examples/generic_associations/discriminator_on_association.html) - Illustrates a mixin which provides a generic association using a single target table and a single association table, referred to by all parent tables. The association table contains a “discriminator” column which determines what type of parent object associates to each particular row in the association table. * [generic\_fk.py](https://docs.sqlalchemy.org/en/20/_modules/examples/generic_associations/generic_fk.html) - Illustrates a so-called “generic foreign key”, in a similar fashion to that of popular frameworks such as Django, ROR, etc. This approach bypasses standard referential integrity practices, in that the “foreign key” column is not actually constrained to refer to any particular table; instead, in-application logic is used to determine which table is referenced. * [table\_per\_association.py](https://docs.sqlalchemy.org/en/20/_modules/examples/generic_associations/table_per_association.html) - Illustrates a mixin which provides a generic association via a individually generated association tables for each parent class. The associated objects themselves are persisted in a single table shared among all parents. * [table\_per\_related.py](https://docs.sqlalchemy.org/en/20/_modules/examples/generic_associations/table_per_related.html) - Illustrates a generic association which persists association objects within individual tables, each one generated to persist those objects on behalf of a particular parent class. ### Materialized Paths[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.materialized_paths "Link to this heading") Illustrates the “materialized paths” pattern for hierarchical data using the SQLAlchemy ORM. Listing of files: * [materialized\_paths.py](https://docs.sqlalchemy.org/en/20/_modules/examples/materialized_paths/materialized_paths.html) - Illustrates the “materialized paths” pattern. ### Nested Sets[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.nested_sets "Link to this heading") Illustrates a rudimentary way to implement the “nested sets” pattern for hierarchical data using the SQLAlchemy ORM. Listing of files: * [nested\_sets.py](https://docs.sqlalchemy.org/en/20/_modules/examples/nested_sets/nested_sets.html) - Celko’s “Nested Sets” Tree Structure. ### Performance[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.performance "Link to this heading") A performance profiling suite for a variety of SQLAlchemy use cases. Each suite focuses on a specific use case with a particular performance profile and associated implications: * bulk inserts * individual inserts, with or without transactions * fetching large numbers of rows * running lots of short queries All suites include a variety of use patterns illustrating both Core and ORM use, and are generally sorted in order of performance from worst to greatest, inversely based on amount of functionality provided by SQLAlchemy, greatest to least (these two things generally correspond perfectly). A command line tool is presented at the package level which allows individual suites to be run: $ python \-m examples.performance \--help usage: python \-m examples.performance \[\-h\] \[\--test TEST\] \[\--dburl DBURL\] \[\--num NUM\] \[\--profile\] \[\--dump\] \[\--echo\] {bulk\_inserts,large\_resultsets,single\_inserts} positional arguments: {bulk\_inserts,large\_resultsets,single\_inserts} suite to run optional arguments: \-h, \--help show this help message and exit \--test TEST run specific test name \--dburl DBURL database URL, default sqlite:///profile.db \--num NUM Number of iterations/items/etc for tests; default is module\-specific \--profile run profiling and dump call counts \--dump dump full call profile (implies \--profile) \--echo Echo SQL output An example run looks like: $ python \-m examples.performance bulk\_inserts Or with options: $ python \-m examples.performance bulk\_inserts \\ \--dburl mysql+mysqldb://scott:tiger@localhost/test \\ \--profile \--num 1000 See also [How can I profile a SQLAlchemy powered application?](https://docs.sqlalchemy.org/en/20/faq/performance.html#faq-how-to-profile) #### File Listing[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#file-listing "Link to this heading") Listing of files: * [\_\_main\_\_.py](https://docs.sqlalchemy.org/en/20/_modules/examples/performance/__main__.html) - Allows the examples/performance package to be run as a script. * [bulk\_inserts.py](https://docs.sqlalchemy.org/en/20/_modules/examples/performance/bulk_inserts.html) - This series of tests illustrates different ways to INSERT a large number of rows in bulk. * [bulk\_updates.py](https://docs.sqlalchemy.org/en/20/_modules/examples/performance/bulk_updates.html) - This series of tests will illustrate different ways to UPDATE a large number of rows in bulk (under construction! there’s just one test at the moment) * [large\_resultsets.py](https://docs.sqlalchemy.org/en/20/_modules/examples/performance/large_resultsets.html) - In this series of tests, we are looking at time to load a large number of very small and simple rows. * [short\_selects.py](https://docs.sqlalchemy.org/en/20/_modules/examples/performance/short_selects.html) - This series of tests illustrates different ways to SELECT a single record by primary key * [single\_inserts.py](https://docs.sqlalchemy.org/en/20/_modules/examples/performance/single_inserts.html) - In this series of tests, we’re looking at a method that inserts a row within a distinct transaction, and afterwards returns to essentially a “closed” state. This would be analogous to an API call that starts up a database connection, inserts the row, commits and closes. #### Running all tests with time[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#running-all-tests-with-time "Link to this heading") This is the default form of run: $ python \-m examples.performance single\_inserts Tests to run: test\_orm\_commit, test\_bulk\_save, test\_bulk\_insert\_dictionaries, test\_core, test\_core\_query\_caching, test\_dbapi\_raw\_w\_connect, test\_dbapi\_raw\_w\_pool test\_orm\_commit : Individual INSERT/COMMIT pairs via the ORM (10000 iterations); total time 13.690218 sec test\_bulk\_save : Individual INSERT/COMMIT pairs using the "bulk" API (10000 iterations); total time 11.290371 sec test\_bulk\_insert\_dictionaries : Individual INSERT/COMMIT pairs using the "bulk" API with dictionaries (10000 iterations); total time 10.814626 sec test\_core : Individual INSERT/COMMIT pairs using Core. (10000 iterations); total time 9.665620 sec test\_core\_query\_caching : Individual INSERT/COMMIT pairs using Core with query caching (10000 iterations); total time 9.209010 sec test\_dbapi\_raw\_w\_connect : Individual INSERT/COMMIT pairs w/ DBAPI + connection each time (10000 iterations); total time 9.551103 sec test\_dbapi\_raw\_w\_pool : Individual INSERT/COMMIT pairs w/ DBAPI + connection pool (10000 iterations); total time 8.001813 sec #### Dumping Profiles for Individual Tests[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#dumping-profiles-for-individual-tests "Link to this heading") A Python profile output can be dumped for all tests, or more commonly individual tests: $ python \-m examples.performance single\_inserts \--test test\_core \--num 1000 \--dump Tests to run: test\_core test\_core : Individual INSERT/COMMIT pairs using Core. (1000 iterations); total fn calls 186109 186109 function calls (186102 primitive calls) in 1.089 seconds Ordered by: internal time, call count ncalls tottime percall cumtime percall filename:lineno(function) 1000 0.634 0.001 0.634 0.001 {method 'commit' of 'sqlite3.Connection' objects} 1000 0.154 0.000 0.154 0.000 {method 'execute' of 'sqlite3.Cursor' objects} 1000 0.021 0.000 0.074 0.000 /Users/classic/dev/sqlalchemy/lib/sqlalchemy/sql/compiler.py:1950(\_get\_colparams) 1000 0.015 0.000 0.034 0.000 /Users/classic/dev/sqlalchemy/lib/sqlalchemy/engine/default.py:503(\_init\_compiled) 1 0.012 0.012 1.091 1.091 examples/performance/single\_inserts.py:79(test\_core) ... #### Writing your Own Suites[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#writing-your-own-suites "Link to this heading") The profiler suite system is extensible, and can be applied to your own set of tests. This is a valuable technique to use in deciding upon the proper approach for some performance-critical set of routines. For example, if we wanted to profile the difference between several kinds of loading, we can create a file `test_loads.py`, with the following content: from examples.performance import Profiler from sqlalchemy import Integer, Column, create\_engine, ForeignKey from sqlalchemy.orm import relationship, joinedload, subqueryload, Session from sqlalchemy.ext.declarative import declarative\_base Base \= declarative\_base() engine \= None session \= None class Parent(Base): \_\_tablename\_\_ \= "parent" id \= Column(Integer, primary\_key\=True) children \= relationship("Child") class Child(Base): \_\_tablename\_\_ \= "child" id \= Column(Integer, primary\_key\=True) parent\_id \= Column(Integer, ForeignKey("parent.id")) \# Init with name of file, default number of items Profiler.init("test\_loads", 1000) @Profiler.setup\_once def setup\_once(dburl, echo, num): "setup once. create an engine, insert fixture data" global engine engine \= create\_engine(dburl, echo\=echo) Base.metadata.drop\_all(engine) Base.metadata.create\_all(engine) sess \= Session(engine) sess.add\_all( \[\ Parent(children\=\[Child() for j in range(100)\])\ for i in range(num)\ \] ) sess.commit() @Profiler.setup def setup(dburl, echo, num): "setup per test. create a new Session." global session session \= Session(engine) \# pre-connect so this part isn't profiled (if we choose) session.connection() @Profiler.profile def test\_lazyload(n): "load everything, no eager loading." for parent in session.query(Parent): parent.children @Profiler.profile def test\_joinedload(n): "load everything, joined eager loading." for parent in session.query(Parent).options(joinedload("children")): parent.children @Profiler.profile def test\_subqueryload(n): "load everything, subquery eager loading." for parent in session.query(Parent).options(subqueryload("children")): parent.children if \_\_name\_\_ \== "\_\_main\_\_": Profiler.main() We can run our new script directly: $ python test\_loads.py \--dburl postgresql+psycopg2://scott:tiger@localhost/test Running setup once... Tests to run: test\_lazyload, test\_joinedload, test\_subqueryload test\_lazyload : load everything, no eager loading. (1000 iterations); total time 11.971159 sec test\_joinedload : load everything, joined eager loading. (1000 iterations); total time 2.754592 sec test\_subqueryload : load everything, subquery eager loading. (1000 iterations); total time 2.977696 sec ### Space Invaders[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.space_invaders "Link to this heading") A Space Invaders game using SQLite as the state machine. Originally developed in 2012. Adapted to work in Python 3. Runs in a textual console using ASCII art. ![../_images/space_invaders.jpg](https://docs.sqlalchemy.org/en/20/_images/space_invaders.jpg) To run: $ python \-m examples.space\_invaders.space\_invaders While it runs, watch the SQL output in the log: $ tail \-f space\_invaders.log enjoy! Listing of files: * [space\_invaders.py](https://docs.sqlalchemy.org/en/20/_modules/examples/space_invaders/space_invaders.html) ### Versioning Objects[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#versioning-objects "Link to this heading") #### Versioning with a History Table[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_history "Link to this heading") Illustrates an extension which creates version tables for entities and stores records for each change. The given extensions generate an anonymous “history” class which represents historical versions of the target object. Compare to the [Versioning using Temporal Rows](https://docs.sqlalchemy.org/en/20/orm/examples.html#examples-versioned-rows) examples which write updates as new rows in the same table, without using a separate history table. Usage is illustrated via a unit test module `test_versioning.py`, which is run using SQLAlchemy’s internal pytest plugin: $ pytest test/base/test\_examples.py A fragment of example usage, using declarative: from history\_meta import Versioned, versioned\_session class Base(DeclarativeBase): pass class SomeClass(Versioned, Base): \_\_tablename\_\_ \= "sometable" id \= Column(Integer, primary\_key\=True) name \= Column(String(50)) def \_\_eq\_\_(self, other): assert type(other) is SomeClass and other.id \== self.id Session \= sessionmaker(bind\=engine) versioned\_session(Session) sess \= Session() sc \= SomeClass(name\="sc1") sess.add(sc) sess.commit() sc.name \= "sc1modified" sess.commit() assert sc.version \== 2 SomeClassHistory \= SomeClass.\_\_history\_mapper\_\_.class\_ assert sess.query(SomeClassHistory).filter( SomeClassHistory.version \== 1 ).all() \== \[SomeClassHistory(version\=1, name\="sc1")\] The `Versioned` mixin is designed to work with declarative. To use the extension with classical mappers, the `_history_mapper` function can be applied: from history\_meta import \_history\_mapper m \= mapper(SomeClass, sometable) \_history\_mapper(m) SomeHistoryClass \= SomeClass.\_\_history\_mapper\_\_.class\_ The versioning example also integrates with the ORM optimistic concurrency feature documented at [Configuring a Version Counter](https://docs.sqlalchemy.org/en/20/orm/versioning.html#mapper-version-counter) . To enable this feature, set the flag `Versioned.use_mapper_versioning` to True: class SomeClass(Versioned, Base): \_\_tablename\_\_ \= "sometable" use\_mapper\_versioning \= True id \= Column(Integer, primary\_key\=True) name \= Column(String(50)) def \_\_eq\_\_(self, other): assert type(other) is SomeClass and other.id \== self.id Above, if two instance of `SomeClass` with the same version identifier are updated and sent to the database for UPDATE concurrently, if the database isolation level allows the two UPDATE statements to proceed, one will fail because it no longer is against the last known version identifier. Listing of files: * [history\_meta.py](https://docs.sqlalchemy.org/en/20/_modules/examples/versioned_history/history_meta.html) - Versioned mixin class and other utilities. * [test\_versioning.py](https://docs.sqlalchemy.org/en/20/_modules/examples/versioned_history/test_versioning.html) - Unit tests illustrating usage of the `history_meta.py` module functions. #### Versioning using Temporal Rows[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_rows "Link to this heading") Several examples that illustrate the technique of intercepting changes that would be first interpreted as an UPDATE on a row, and instead turning it into an INSERT of a new row, leaving the previous row intact as a historical version. Compare to the [Versioning with a History Table](https://docs.sqlalchemy.org/en/20/orm/examples.html#examples-versioned-history) example which writes a history row to a separate history table. Listing of files: * [versioned\_map.py](https://docs.sqlalchemy.org/en/20/_modules/examples/versioned_rows/versioned_map.html) - A variant of the versioned\_rows example built around the concept of a “vertical table” structure, like those illustrated in [Vertical Attribute Mapping](https://docs.sqlalchemy.org/en/20/orm/examples.html#examples-vertical-tables) examples. * [versioned\_rows.py](https://docs.sqlalchemy.org/en/20/_modules/examples/versioned_rows/versioned_rows.html) - Illustrates a method to intercept changes on objects, turning an UPDATE statement on a single row into an INSERT statement, so that a new row is inserted with the new data, keeping the old row intact. * [versioned\_rows\_w\_versionid.py](https://docs.sqlalchemy.org/en/20/_modules/examples/versioned_rows/versioned_rows_w_versionid.html) - Illustrates a method to intercept changes on objects, turning an UPDATE statement on a single row into an INSERT statement, so that a new row is inserted with the new data, keeping the old row intact. * [versioned\_update\_old\_row.py](https://docs.sqlalchemy.org/en/20/_modules/examples/versioned_rows/versioned_update_old_row.html) - Illustrates the same UPDATE into INSERT technique of `versioned_rows.py`, but also emits an UPDATE on the **old** row to affect a change in timestamp. Also includes a [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") hook to limit queries to only the most recent version. ### Vertical Attribute Mapping[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.vertical "Link to this heading") Illustrates “vertical table” mappings. A “vertical table” refers to a technique where individual attributes of an object are stored as distinct rows in a table. The “vertical table” technique is used to persist objects which can have a varied set of attributes, at the expense of simple query control and brevity. It is commonly found in content/document management systems in order to represent user-created structures flexibly. Two variants on the approach are given. In the second, each row references a “datatype” which contains information about the type of information stored in the attribute, such as integer, string, or date. Example: shrew \= Animal("shrew") shrew\["cuteness"\] \= 5 shrew\["weasel-like"\] \= False shrew\["poisonous"\] \= True session.add(shrew) session.flush() q \= session.query(Animal).filter( Animal.facts.any( and\_(AnimalFact.key \== "weasel-like", AnimalFact.value \== True) ) ) print("weasel-like animals", q.all()) Listing of files: * [dictlike-polymorphic.py](https://docs.sqlalchemy.org/en/20/_modules/examples/vertical/dictlike-polymorphic.html) - Mapping a polymorphic-valued vertical table as a dictionary. * [dictlike.py](https://docs.sqlalchemy.org/en/20/_modules/examples/vertical/dictlike.html) - Mapping a vertical table as a dictionary. Inheritance Mapping Recipes[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#inheritance-mapping-recipes "Link to this heading") --------------------------------------------------------------------------------------------------------------------------------------- ### Basic Inheritance Mappings[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.inheritance "Link to this heading") Working examples of single-table, joined-table, and concrete-table inheritance as described in [Mapping Class Inheritance Hierarchies](https://docs.sqlalchemy.org/en/20/orm/inheritance.html) . Listing of files: * [concrete.py](https://docs.sqlalchemy.org/en/20/_modules/examples/inheritance/concrete.html) - Concrete-table (table-per-class) inheritance example. * [joined.py](https://docs.sqlalchemy.org/en/20/_modules/examples/inheritance/joined.html) - Joined-table (table-per-subclass) inheritance example. * [single.py](https://docs.sqlalchemy.org/en/20/_modules/examples/inheritance/single.html) - Single-table (table-per-hierarchy) inheritance example. Special APIs[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#special-apis "Link to this heading") --------------------------------------------------------------------------------------------------------- ### Attribute Instrumentation[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.custom_attributes "Link to this heading") Examples illustrating modifications to SQLAlchemy’s attribute management system. Listing of files: * [active\_column\_defaults.py](https://docs.sqlalchemy.org/en/20/_modules/examples/custom_attributes/active_column_defaults.html) - Illustrates use of the [`AttributeEvents.init_scalar()`](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar "sqlalchemy.orm.AttributeEvents.init_scalar") event, in conjunction with Core column defaults to provide ORM objects that automatically produce the default value when an un-set attribute is accessed. * [custom\_management.py](https://docs.sqlalchemy.org/en/20/_modules/examples/custom_attributes/custom_management.html) - Illustrates customized class instrumentation, using the [`sqlalchemy.ext.instrumentation`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation "sqlalchemy.ext.instrumentation") extension package. * [listen\_for\_events.py](https://docs.sqlalchemy.org/en/20/_modules/examples/custom_attributes/listen_for_events.html) - Illustrates how to attach events to all instrumented attributes and listen for change events. ### Horizontal Sharding[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.sharding "Link to this heading") A basic example of using the SQLAlchemy Sharding API. Sharding refers to horizontally scaling data across multiple databases. The basic components of a “sharded” mapping are: * multiple [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") instances, each assigned a “shard id”. These [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") instances may refer to different databases, or different schemas / accounts within the same database, or they can even be differentiated only by options that will cause them to access different schemas or tables when used. * a function which can return a single shard id, given an instance to be saved; this is called “shard\_chooser” * a function which can return a list of shard ids which apply to a particular instance identifier; this is called “id\_chooser”.If it returns all shard ids, all shards will be searched. * a function which can return a list of shard ids to try, given a particular Query (“query\_chooser”). If it returns all shard ids, all shards will be queried and the results joined together. In these examples, different kinds of shards are used against the same basic example which accommodates weather data on a per-continent basis. We provide example shard\_chooser, id\_chooser and query\_chooser functions. The query\_chooser illustrates inspection of the SQL expression element in order to attempt to determine a single shard being requested. The construction of generic sharding routines is an ambitious approach to the issue of organizing instances among multiple databases. For a more plain-spoken alternative, the “distinct entity” approach is a simple method of assigning objects to different tables (and potentially database nodes) in an explicit way - described on the wiki at [EntityName](https://www.sqlalchemy.org/trac/wiki/UsageRecipes/EntityName) . Listing of files: * [asyncio.py](https://docs.sqlalchemy.org/en/20/_modules/examples/sharding/asyncio.html) - Illustrates sharding API used with asyncio. * [separate\_databases.py](https://docs.sqlalchemy.org/en/20/_modules/examples/sharding/separate_databases.html) - Illustrates sharding using distinct SQLite databases. * [separate\_schema\_translates.py](https://docs.sqlalchemy.org/en/20/_modules/examples/sharding/separate_schema_translates.html) - Illustrates sharding using a single database with multiple schemas, where a different “schema\_translates\_map” can be used for each shard. * [separate\_tables.py](https://docs.sqlalchemy.org/en/20/_modules/examples/sharding/separate_tables.html) - Illustrates sharding using a single SQLite database, that will however have multiple tables using a naming convention. Extending the ORM[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#extending-the-orm "Link to this heading") ------------------------------------------------------------------------------------------------------------------- ### ORM Query Events[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.extending_query "Link to this heading") Recipes which illustrate augmentation of ORM SELECT behavior as used by [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") with [2.0 style](https://docs.sqlalchemy.org/en/20/glossary.html#term-2.0-style) use of [`select()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") , as well as the [1.x style](https://docs.sqlalchemy.org/en/20/glossary.html#term-1.x-style) [`Query`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") object. Examples include demonstrations of the [`with_loader_criteria()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria "sqlalchemy.orm.with_loader_criteria") option as well as the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") hook. As of SQLAlchemy 1.4, the [`Query`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") construct is unified with the [`Select`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select "sqlalchemy.sql.expression.Select") construct, so that these two objects are mostly the same. Listing of files: * [filter\_public.py](https://docs.sqlalchemy.org/en/20/_modules/examples/extending_query/filter_public.html) - Illustrates a global criteria applied to entities of a particular type. * [temporal\_range.py](https://docs.sqlalchemy.org/en/20/_modules/examples/extending_query/temporal_range.html) - Illustrates a custom per-query criteria that will be applied to selected entities. ### Dogpile Caching[¶](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dogpile_caching "Link to this heading") Illustrates how to embed [dogpile.cache](https://dogpilecache.sqlalchemy.org/) functionality with ORM queries, allowing full cache control as well as the ability to pull “lazy loaded” attributes from long term cache. In this demo, the following techniques are illustrated: * Using the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event hook * Basic technique of circumventing [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") to pull from a custom cache source instead of the database. * Rudimental caching with dogpile.cache, using “regions” which allow global control over a fixed set of configurations. * Using custom `UserDefinedOption` objects to configure options in a statement object. See also [Re-Executing Statements](https://docs.sqlalchemy.org/en/20/orm/session_events.html#do-orm-execute-re-executing) - includes a general example of the technique presented here. E.g.: \# query for Person objects, specifying cache stmt \= select(Person).options(FromCache("default")) \# specify that each Person's "addresses" collection comes from \# cache too stmt \= stmt.options(RelationshipCache(Person.addresses, "default")) \# execute and results result \= session.execute(stmt) print(result.scalars().all()) To run, both SQLAlchemy and dogpile.cache must be installed or on the current PYTHONPATH. The demo will create a local directory for datafiles, insert initial data, and run. Running the demo a second time will utilize the cache files already present, and exactly one SQL statement against two tables will be emitted - the displayed result however will utilize dozens of lazyloads that all pull from cache. The demo scripts themselves, in order of complexity, are run as Python modules so that relative imports work: $ python \-m examples.dogpile\_caching.helloworld $ python \-m examples.dogpile\_caching.relationship\_caching $ python \-m examples.dogpile\_caching.advanced $ python \-m examples.dogpile\_caching.local\_session\_caching Listing of files: * [environment.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/environment.html) - Establish data / cache file paths, and configurations, bootstrap fixture data if necessary. * [caching\_query.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/caching_query.html) - Represent functions and classes which allow the usage of Dogpile caching with SQLAlchemy. Introduces a query option called FromCache. * [model.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/model.html) - The datamodel, which represents Person that has multiple Address objects, each with PostalCode, City, Country. * [fixture\_data.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/fixture_data.html) - Installs some sample data. Here we have a handful of postal codes for a few US/Canadian cities. Then, 100 Person records are installed, each with a randomly selected postal code. * [helloworld.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/helloworld.html) - Illustrate how to load some data, and cache the results. * [relationship\_caching.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/relationship_caching.html) - Illustrates how to add cache options on relationship endpoints, so that lazyloads load from cache. * [advanced.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/advanced.html) - Illustrate usage of Query combined with the FromCache option, including front-end loading, cache invalidation and collection caching. * [local\_session\_caching.py](https://docs.sqlalchemy.org/en/20/_modules/examples/dogpile_caching/local_session_caching.html) - This example creates a new dogpile.cache backend that will persist data in a dictionary which is local to the current session. remove() the session and the cache is gone. Previous: [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html "previous chapter") Next: [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Appendix: Copyright — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html "SQLAlchemy 2.0 Documentation") * [Overview](https://docs.sqlalchemy.org/en/20/intro.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/20/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/20/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/20/changelog/index.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * **On this page:** * [Appendix: Copyright](https://docs.sqlalchemy.org/en/20/copyright.html#appendix-copyright) Appendix: Copyright[¶](https://docs.sqlalchemy.org/en/20/copyright.html#appendix-copyright "Link to this heading") =================================================================================================================== This is the MIT license: [https://www.opensource.org/licenses/mit-license.php](https://www.opensource.org/licenses/mit-license.php) Copyright (c) 2005-2025 Michael Bayer and contributors. SQLAlchemy is a trademark of Michael Bayer. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html#) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Using the Session — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * **Using the Session**[¶](https://docs.sqlalchemy.org/en/20/orm/session.html#) * [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/20/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html "previous chapter") * **Next:** [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * **On this page:** * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html#module-sqlalchemy.orm.session) Using the Session[¶](https://docs.sqlalchemy.org/en/20/orm/session.html#module-sqlalchemy.orm.session "Link to this heading") ============================================================================================================================== The declarative base and ORM mapping functions described at [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) are the primary configurational interface for the ORM. Once mappings are configured, the primary usage interface for persistence operations is the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.session.Session") . * [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html) * [What does the Session do ?](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#what-does-the-session-do) * [Basics of Using a Session](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#basics-of-using-a-session) * [Opening and Closing a Session](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#opening-and-closing-a-session) * [Framing out a begin / commit / rollback block](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#framing-out-a-begin-commit-rollback-block) * [Using a sessionmaker](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#using-a-sessionmaker) * [Querying](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#querying) * [Adding New or Existing Items](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#adding-new-or-existing-items) * [Deleting](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#deleting) * [Flushing](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#flushing) * [Get by Primary Key](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#get-by-primary-key) * [Expiring / Refreshing](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#expiring-refreshing) * [UPDATE and DELETE with arbitrary WHERE clause](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#update-and-delete-with-arbitrary-where-clause) * [Auto Begin](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#auto-begin) * [Committing](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#committing) * [Rolling Back](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#rolling-back) * [Closing](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#closing) * [Session Frequently Asked Questions](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#session-frequently-asked-questions) * [When do I make a `sessionmaker`?](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#when-do-i-make-a-sessionmaker) * [When do I construct a `Session`, when do I commit it, and when do I close it?](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#when-do-i-construct-a-session-when-do-i-commit-it-and-when-do-i-close-it) * [Is the Session a cache?](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#is-the-session-a-cache) * [How can I get the `Session` for a certain object?](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#how-can-i-get-the-session-for-a-certain-object) * [Is the Session thread-safe? Is AsyncSession safe to share in concurrent tasks?](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#is-the-session-thread-safe-is-asyncsession-safe-to-share-in-concurrent-tasks) * [State Management](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html) * [Quickie Intro to Object States](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#quickie-intro-to-object-states) * [Getting the Current State of an Object](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#getting-the-current-state-of-an-object) * [Session Attributes](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#session-attributes) * [Session Referencing Behavior](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#session-referencing-behavior) * [Merging](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#merging) * [Merge Tips](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#merge-tips) * [Expunging](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#expunging) * [Refreshing / Expiring](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#refreshing-expiring) * [What Actually Loads](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#what-actually-loads) * [When to Expire or Refresh](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html#when-to-expire-or-refresh) * [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html) * [save-update](https://docs.sqlalchemy.org/en/20/orm/cascades.html#save-update) * [Behavior of save-update cascade with bi-directional relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#behavior-of-save-update-cascade-with-bi-directional-relationships) * [delete](https://docs.sqlalchemy.org/en/20/orm/cascades.html#delete) * [Using delete cascade with many-to-many relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#using-delete-cascade-with-many-to-many-relationships) * [Using foreign key ON DELETE cascade with ORM relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#using-foreign-key-on-delete-cascade-with-orm-relationships) * [Using foreign key ON DELETE with many-to-many relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#using-foreign-key-on-delete-with-many-to-many-relationships) * [delete-orphan](https://docs.sqlalchemy.org/en/20/orm/cascades.html#delete-orphan) * [merge](https://docs.sqlalchemy.org/en/20/orm/cascades.html#merge) * [refresh-expire](https://docs.sqlalchemy.org/en/20/orm/cascades.html#refresh-expire) * [expunge](https://docs.sqlalchemy.org/en/20/orm/cascades.html#expunge) * [Notes on Delete - Deleting Objects Referenced from Collections and Scalar Relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#notes-on-delete-deleting-objects-referenced-from-collections-and-scalar-relationships) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html) * [Managing Transactions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#managing-transactions) * [Using SAVEPOINT](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#using-savepoint) * [Session-level vs. Engine level transaction control](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#session-level-vs-engine-level-transaction-control) * [Explicit Begin](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#explicit-begin) * [Enabling Two-Phase Commit](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#enabling-two-phase-commit) * [Setting Transaction Isolation Levels / DBAPI AUTOCOMMIT](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-transaction-isolation-levels-dbapi-autocommit) * [Tracking Transaction State with Events](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#tracking-transaction-state-with-events) * [Joining a Session into an External Transaction (such as for test suites)](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#joining-a-session-into-an-external-transaction-such-as-for-test-suites) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html) * [Embedding SQL Insert/Update Expressions into a Flush](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#embedding-sql-insert-update-expressions-into-a-flush) * [Using SQL Expressions with Sessions](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#using-sql-expressions-with-sessions) * [Forcing NULL on a column with a default](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#forcing-null-on-a-column-with-a-default) * [Fetching Server-Generated Defaults](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#fetching-server-generated-defaults) * [Case 1: non primary key, RETURNING or equivalent is supported](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#case-1-non-primary-key-returning-or-equivalent-is-supported) * [Case 2: Table includes trigger-generated values which are not compatible with RETURNING](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#case-2-table-includes-trigger-generated-values-which-are-not-compatible-with-returning) * [Case 3: non primary key, RETURNING or equivalent is not supported or not needed](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#case-3-non-primary-key-returning-or-equivalent-is-not-supported-or-not-needed) * [Case 4: primary key, RETURNING or equivalent is supported](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#case-4-primary-key-returning-or-equivalent-is-supported) * [Case 5: primary key, RETURNING or equivalent is not supported](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#case-5-primary-key-returning-or-equivalent-is-not-supported) * [Notes on eagerly fetching client invoked SQL expressions used for INSERT or UPDATE](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#notes-on-eagerly-fetching-client-invoked-sql-expressions-used-for-insert-or-update) * [Using INSERT, UPDATE and ON CONFLICT (i.e. upsert) to return ORM Objects](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#using-insert-update-and-on-conflict-i-e-upsert-to-return-orm-objects) * [Using PostgreSQL ON CONFLICT with RETURNING to return upserted ORM objects](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#using-postgresql-on-conflict-with-returning-to-return-upserted-orm-objects) * [Partitioning Strategies (e.g. multiple database backends per Session)](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#partitioning-strategies-e-g-multiple-database-backends-per-session) * [Simple Vertical Partitioning](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#simple-vertical-partitioning) * [Coordination of Transactions for a multiple-engine Session](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#coordination-of-transactions-for-a-multiple-engine-session) * [Custom Vertical Partitioning](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#custom-vertical-partitioning) * [Horizontal Partitioning](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#horizontal-partitioning) * [Bulk Operations](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#bulk-operations) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/20/orm/contextual.html) * [Implicit Method Access](https://docs.sqlalchemy.org/en/20/orm/contextual.html#implicit-method-access) * [Thread-Local Scope](https://docs.sqlalchemy.org/en/20/orm/contextual.html#thread-local-scope) * [Using Thread-Local Scope with Web Applications](https://docs.sqlalchemy.org/en/20/orm/contextual.html#using-thread-local-scope-with-web-applications) * [Using Custom Created Scopes](https://docs.sqlalchemy.org/en/20/orm/contextual.html#using-custom-created-scopes) * [Contextual Session API](https://docs.sqlalchemy.org/en/20/orm/contextual.html#contextual-session-api) * [`scoped_session`](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session) * [`ScopedRegistry`](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ScopedRegistry) * [`ThreadLocalRegistry`](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ThreadLocalRegistry) * [`QueryPropertyDescriptor`](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.QueryPropertyDescriptor) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html) * [Execute Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#execute-events) * [Basic Query Interception](https://docs.sqlalchemy.org/en/20/orm/session_events.html#basic-query-interception) * [Adding global WHERE / ON criteria](https://docs.sqlalchemy.org/en/20/orm/session_events.html#adding-global-where-on-criteria) * [Re-Executing Statements](https://docs.sqlalchemy.org/en/20/orm/session_events.html#re-executing-statements) * [Persistence Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#persistence-events) * [`before_flush()`](https://docs.sqlalchemy.org/en/20/orm/session_events.html#before-flush) * [`after_flush()`](https://docs.sqlalchemy.org/en/20/orm/session_events.html#after-flush) * [`after_flush_postexec()`](https://docs.sqlalchemy.org/en/20/orm/session_events.html#after-flush-postexec) * [Mapper-level Flush Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#mapper-level-flush-events) * [Object Lifecycle Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#object-lifecycle-events) * [Transient](https://docs.sqlalchemy.org/en/20/orm/session_events.html#transient) * [Transient to Pending](https://docs.sqlalchemy.org/en/20/orm/session_events.html#transient-to-pending) * [Pending to Persistent](https://docs.sqlalchemy.org/en/20/orm/session_events.html#pending-to-persistent) * [Pending to Transient](https://docs.sqlalchemy.org/en/20/orm/session_events.html#pending-to-transient) * [Loaded as Persistent](https://docs.sqlalchemy.org/en/20/orm/session_events.html#loaded-as-persistent) * [Persistent to Transient](https://docs.sqlalchemy.org/en/20/orm/session_events.html#persistent-to-transient) * [Persistent to Deleted](https://docs.sqlalchemy.org/en/20/orm/session_events.html#persistent-to-deleted) * [Deleted to Detached](https://docs.sqlalchemy.org/en/20/orm/session_events.html#deleted-to-detached) * [Persistent to Detached](https://docs.sqlalchemy.org/en/20/orm/session_events.html#persistent-to-detached) * [Detached to Persistent](https://docs.sqlalchemy.org/en/20/orm/session_events.html#detached-to-persistent) * [Deleted to Persistent](https://docs.sqlalchemy.org/en/20/orm/session_events.html#deleted-to-persistent) * [Transaction Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#transaction-events) * [Attribute Change Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#attribute-change-events) * [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html) * [Session and sessionmaker()](https://docs.sqlalchemy.org/en/20/orm/session_api.html#session-and-sessionmaker) * [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker) * [`ORMExecuteState`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) * [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session) * [`SessionTransaction`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction) * [`SessionTransactionOrigin`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin) * [Session Utilities](https://docs.sqlalchemy.org/en/20/orm/session_api.html#session-utilities) * [`close_all_sessions()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.close_all_sessions) * [`make_transient()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.make_transient) * [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached) * [`object_session()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.object_session) * [`was_deleted()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.util.was_deleted) * [Attribute and State Management Utilities](https://docs.sqlalchemy.org/en/20/orm/session_api.html#attribute-and-state-management-utilities) * [`object_state()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.util.object_state) * [`del_attribute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute) * [`get_attribute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute) * [`get_history()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.get_history) * [`init_collection()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.init_collection) * [`flag_modified()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified) * [`flag_dirty()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty) * [`instance_state()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.instance_state) * [`is_instrumented()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented) * [`set_attribute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute) * [`set_committed_value()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value) * [`History`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History) Previous: [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html "previous chapter") Next: [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Events and Internals — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * **Events and Internals**[¶](https://docs.sqlalchemy.org/en/20/orm/extending.html#) * [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html) * [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html "previous chapter") * **Next:** [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * **On this page:** * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html#events-and-internals) Events and Internals[¶](https://docs.sqlalchemy.org/en/20/orm/extending.html#events-and-internals "Link to this heading") ========================================================================================================================== The SQLAlchemy ORM as well as Core are extended generally through the use of event hooks. Be sure to review the use of the event system in general at [Events](https://docs.sqlalchemy.org/en/20/core/event.html) . * [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html) * [Session Events](https://docs.sqlalchemy.org/en/20/orm/events.html#session-events) * [Mapper Events](https://docs.sqlalchemy.org/en/20/orm/events.html#mapper-events) * [Instance Events](https://docs.sqlalchemy.org/en/20/orm/events.html#instance-events) * [Attribute Events](https://docs.sqlalchemy.org/en/20/orm/events.html#attribute-events) * [Query Events](https://docs.sqlalchemy.org/en/20/orm/events.html#query-events) * [Instrumentation Events](https://docs.sqlalchemy.org/en/20/orm/events.html#module-sqlalchemy.orm.instrumentation) * [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html) * [`AttributeState`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeState) * [`CascadeOptions`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CascadeOptions) * [`ClassManager`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager) * [`ColumnProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty) * [`Composite`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Composite) * [`CompositeProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty) * [`AttributeEventToken`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeEventToken) * [`IdentityMap`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.IdentityMap) * [`InspectionAttr`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr) * [`InspectionAttrInfo`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttrInfo) * [`InstanceState`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState) * [`InstrumentedAttribute`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute) * [`LoaderCallableStatus`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus) * [`Mapped`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Mapped) * [`MappedColumn`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MappedColumn) * [`MapperProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty) * [`MappedSQLExpression`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MappedSQLExpression) * [`InspectionAttrExtensionType`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttrExtensionType) * [`NotExtension`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.NotExtension) * [`merge_result()`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.merge_result) * [`merge_frozen_result()`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.merge_frozen_result) * [`PropComparator`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator) * [`Relationship`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Relationship) * [`RelationshipDirection`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipDirection) * [`RelationshipProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty) * [`SQLORMExpression`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.SQLORMExpression) * [`Synonym`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Synonym) * [`SynonymProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.SynonymProperty) * [`QueryContext`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryContext) * [`QueryableAttribute`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute) * [`UOWTransaction`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction) * [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html) * [`ConcurrentModificationError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError) * [`DetachedInstanceError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError) * [`FlushError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.FlushError) * [`LoaderStrategyException`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException) * [`MappedAnnotationError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.MappedAnnotationError) * [`NO_STATE`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE) * [`ObjectDeletedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError) * [`ObjectDereferencedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError) * [`StaleDataError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError) * [`UnmappedClassError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError) * [`UnmappedColumnError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError) * [`UnmappedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError) * [`UnmappedInstanceError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError) Previous: [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html "previous chapter") Next: [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Relationship Configuration — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * **Relationship Configuration**[¶](https://docs.sqlalchemy.org/en/20/orm/relationships.html#) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Mapping Table Columns](https://docs.sqlalchemy.org/en/20/orm/mapping_columns.html "previous chapter") * **Next:** [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * **On this page:** * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html#relationship-configuration) Relationship Configuration[¶](https://docs.sqlalchemy.org/en/20/orm/relationships.html#relationship-configuration "Link to this heading") ========================================================================================================================================== This section describes the [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") function and in depth discussion of its usage. For an introduction to relationships, start with [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/20/tutorial/orm_related_objects.html#tutorial-orm-related-objects) in the [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) . * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * [Declarative vs. Imperative Forms](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#declarative-vs-imperative-forms) * [One To Many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#one-to-many) * [Using Sets, Lists, or other Collection Types for One To Many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#using-sets-lists-or-other-collection-types-for-one-to-many) * [Configuring Delete Behavior for One to Many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#configuring-delete-behavior-for-one-to-many) * [Many To One](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#many-to-one) * [Nullable Many-to-One](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#nullable-many-to-one) * [One To One](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#one-to-one) * [Setting uselist=False for non-annotated configurations](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#setting-uselist-false-for-non-annotated-configurations) * [Many To Many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#many-to-many) * [Setting Bi-Directional Many-to-many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#setting-bi-directional-many-to-many) * [Using a late-evaluated form for the “secondary” argument](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#using-a-late-evaluated-form-for-the-secondary-argument) * [Using Sets, Lists, or other Collection Types for Many To Many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#using-sets-lists-or-other-collection-types-for-many-to-many) * [Deleting Rows from the Many to Many Table](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#deleting-rows-from-the-many-to-many-table) * [Association Object](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#association-object) * [Combining Association Object with Many-to-Many Access Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#combining-association-object-with-many-to-many-access-patterns) * [Late-Evaluation of Relationship Arguments](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#late-evaluation-of-relationship-arguments) * [Adding Relationships to Mapped Classes After Declaration](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#adding-relationships-to-mapped-classes-after-declaration) * [Using a late-evaluated form for the “secondary” argument of many-to-many](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#using-a-late-evaluated-form-for-the-secondary-argument-of-many-to-many) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html) * [Composite Adjacency Lists](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#composite-adjacency-lists) * [Self-Referential Query Strategies](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#self-referential-query-strategies) * [Configuring Self-Referential Eager Loading](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#configuring-self-referential-eager-loading) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Handling Multiple Join Paths](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#handling-multiple-join-paths) * [Specifying Alternate Join Conditions](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#specifying-alternate-join-conditions) * [Creating Custom Foreign Conditions](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#creating-custom-foreign-conditions) * [Using custom operators in join conditions](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#using-custom-operators-in-join-conditions) * [Custom operators based on SQL functions](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#custom-operators-based-on-sql-functions) * [Overlapping Foreign Keys](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#overlapping-foreign-keys) * [Non-relational Comparisons / Materialized Path](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#non-relational-comparisons-materialized-path) * [Self-Referential Many-to-Many Relationship](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#self-referential-many-to-many-relationship) * [Composite “Secondary” Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#composite-secondary-joins) * [Relationship to Aliased Class](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#relationship-to-aliased-class) * [Integrating AliasedClass Mappings with Typing and Avoiding Early Mapper Configuration](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#integrating-aliasedclass-mappings-with-typing-and-avoiding-early-mapper-configuration) * [Using the AliasedClass target in Queries](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#using-the-aliasedclass-target-in-queries) * [Row-Limited Relationships with Window Functions](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#row-limited-relationships-with-window-functions) * [Building Query-Enabled Properties](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#building-query-enabled-properties) * [Notes on using the viewonly relationship parameter](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#notes-on-using-the-viewonly-relationship-parameter) * [In-Python mutations including backrefs are not appropriate with viewonly=True](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#in-python-mutations-including-backrefs-are-not-appropriate-with-viewonly-true) * [viewonly=True collections / attributes do not get re-queried until expired](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#viewonly-true-collections-attributes-do-not-get-re-queried-until-expired) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Write Only Relationships](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#write-only-relationships) * [Creating and Persisting New Write Only Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#creating-and-persisting-new-write-only-collections) * [Adding New Items to an Existing Collection](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#adding-new-items-to-an-existing-collection) * [Querying Items](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#querying-items) * [Removing Items](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#removing-items) * [Bulk INSERT of New Items](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#bulk-insert-of-new-items) * [Bulk UPDATE and DELETE of Items](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#bulk-update-and-delete-of-items) * [Write Only Collections - API Documentation](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#write-only-collections-api-documentation) * [Dynamic Relationship Loaders](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#dynamic-relationship-loaders) * [Dynamic Relationship Loaders - API](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#dynamic-relationship-loaders-api) * [Setting RaiseLoad](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#setting-raiseload) * [Using Passive Deletes](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#using-passive-deletes) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * [Customizing Collection Access](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#customizing-collection-access) * [Dictionary Collections](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#dictionary-collections) * [Custom Collection Implementations](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#custom-collection-implementations) * [Annotating Custom Collections via Decorators](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#annotating-custom-collections-via-decorators) * [Custom Dictionary-Based Collections](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#custom-dictionary-based-collections) * [Instrumentation and Custom Types](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#instrumentation-and-custom-types) * [Collection API](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#collection-api) * [`attribute_keyed_dict()`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict) * [`column_keyed_dict()`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict) * [`keyfunc_mapping()`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping) * [`attribute_mapped_collection`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.attribute_mapped_collection) * [`column_mapped_collection`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.column_mapped_collection) * [`mapped_collection`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.mapped_collection) * [`KeyFuncDict`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict) * [`MappedCollection`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.MappedCollection) * [Collection Internals](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#collection-internals) * [`bulk_replace()`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace) * [`collection`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection) * [`collection_adapter`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection_adapter) * [`CollectionAdapter`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.CollectionAdapter) * [`InstrumentedDict`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedDict) * [`InstrumentedList`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedList) * [`InstrumentedSet`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedSet) * [`prepare_instrumentation()`](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.prepare_instrumentation) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html) * [Rows that point to themselves / Mutually Dependent Rows](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#rows-that-point-to-themselves-mutually-dependent-rows) * [Mutable Primary Keys / Update Cascades](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#mutable-primary-keys-update-cascades) * [Simulating limited ON UPDATE CASCADE without foreign key support](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#simulating-limited-on-update-cascade-without-foreign-key-support) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html) * [Backref Default Arguments](https://docs.sqlalchemy.org/en/20/orm/backref.html#backref-default-arguments) * [Specifying Backref Arguments](https://docs.sqlalchemy.org/en/20/orm/backref.html#specifying-backref-arguments) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship) * [`backref()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.backref) * [`dynamic_loader()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.dynamic_loader) * [`foreign()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.foreign) * [`remote()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.remote) Previous: [Mapping Table Columns](https://docs.sqlalchemy.org/en/20/orm/mapping_columns.html "previous chapter") Next: [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # ORM Exceptions — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html) * **ORM Exceptions**[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#) * [`ConcurrentModificationError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError) * [`DetachedInstanceError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError) * [`FlushError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.FlushError) * [`LoaderStrategyException`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException) * [`LoaderStrategyException.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException.__init__) * [`MappedAnnotationError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.MappedAnnotationError) * [`NO_STATE`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE) * [`ObjectDeletedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError) * [`ObjectDeletedError.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError.__init__) * [`ObjectDereferencedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError) * [`StaleDataError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError) * [`UnmappedClassError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError) * [`UnmappedClassError.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError.__init__) * [`UnmappedColumnError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError) * [`UnmappedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError) * [`UnmappedInstanceError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError) * [`UnmappedInstanceError.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError.__init__) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html "previous chapter") * **Next:** [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html "Events and Internals") * **On this page:** * [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#module-sqlalchemy.orm.exc) * [`ConcurrentModificationError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError) * [`DetachedInstanceError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError) * [`FlushError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.FlushError) * [`LoaderStrategyException`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException) * [`LoaderStrategyException.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException.__init__) * [`MappedAnnotationError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.MappedAnnotationError) * [`NO_STATE`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE) * [`ObjectDeletedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError) * [`ObjectDeletedError.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError.__init__) * [`ObjectDereferencedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError) * [`StaleDataError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError) * [`UnmappedClassError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError) * [`UnmappedClassError.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError.__init__) * [`UnmappedColumnError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError) * [`UnmappedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError) * [`UnmappedInstanceError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError) * [`UnmappedInstanceError.__init__()`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError.__init__) ORM Exceptions[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#module-sqlalchemy.orm.exc "Link to this heading") ========================================================================================================================== SQLAlchemy ORM exceptions. | Object Name | Description | | --- | --- | | [ConcurrentModificationError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError) | alias of [`StaleDataError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError "sqlalchemy.orm.exc.StaleDataError") | | [NO\_STATE](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE) | Exception types that may be raised by instrumentation implementations. | _attribute_ [`sqlalchemy.orm.exc..`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.) sqlalchemy.orm.exc.ConcurrentModificationError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError "Link to this definition") alias of [`StaleDataError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError "sqlalchemy.orm.exc.StaleDataError") _exception_ sqlalchemy.orm.exc.DetachedInstanceError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError "Link to this definition") _inherits from_ [`sqlalchemy.exc.SQLAlchemyError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError "sqlalchemy.exc.SQLAlchemyError") An attempt to access unloaded attributes on a mapped instance that is detached. _exception_ sqlalchemy.orm.exc.FlushError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.FlushError "Link to this definition") _inherits from_ [`sqlalchemy.exc.SQLAlchemyError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError "sqlalchemy.exc.SQLAlchemyError") A invalid condition was detected during flush(). _exception_ sqlalchemy.orm.exc.LoaderStrategyException[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException "Link to this definition") _inherits from_ [`sqlalchemy.exc.InvalidRequestError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") A loader strategy for an attribute does not exist. _method_ [`sqlalchemy.orm.exc.LoaderStrategyException.`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException) \_\_init\_\_(_applied\_to\_property\_type: Type\[Any\]_, _requesting\_property: [MapperProperty](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty "sqlalchemy.orm.MapperProperty") \[Any\]_, _applies\_to: Type\[[MapperProperty](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty "sqlalchemy.orm.MapperProperty")\ \[Any\]\] | None_, _actual\_strategy\_type: Type\[LoaderStrategy\] | None_, _strategy\_key: [Tuple](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Tuple "sqlalchemy.sql.expression.Tuple") \[Any, ...\]_)[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException.__init__ "Link to this definition") _exception_ sqlalchemy.orm.exc.MappedAnnotationError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.MappedAnnotationError "Link to this definition") _inherits from_ [`sqlalchemy.exc.ArgumentError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ArgumentError "sqlalchemy.exc.ArgumentError") Raised when ORM annotated declarative cannot interpret the expression present inside of the [`Mapped`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Mapped "sqlalchemy.orm.Mapped") construct. Added in version 2.0.40. sqlalchemy.orm.exc.NO\_STATE _\= (, )_[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE "Link to this definition") Exception types that may be raised by instrumentation implementations. _exception_ sqlalchemy.orm.exc.ObjectDeletedError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError "Link to this definition") _inherits from_ [`sqlalchemy.exc.InvalidRequestError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") A refresh operation failed to retrieve the database row corresponding to an object’s known primary key identity. A refresh operation proceeds when an expired attribute is accessed on an object, or when [`Query.get()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.get "sqlalchemy.orm.Query.get") is used to retrieve an object which is, upon retrieval, detected as expired. A SELECT is emitted for the target row based on primary key; if no row is returned, this exception is raised. The true meaning of this exception is simply that no row exists for the primary key identifier associated with a persistent object. The row may have been deleted, or in some cases the primary key updated to a new value, outside of the ORM’s management of the target object. _method_ [`sqlalchemy.orm.exc.ObjectDeletedError.`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError) \_\_init\_\_(_state: [InstanceState](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState") \[Any\]_, _msg: str | None \= None_)[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError.__init__ "Link to this definition") _exception_ sqlalchemy.orm.exc.ObjectDereferencedError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError "Link to this definition") _inherits from_ [`sqlalchemy.exc.SQLAlchemyError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError "sqlalchemy.exc.SQLAlchemyError") An operation cannot complete due to an object being garbage collected. _exception_ sqlalchemy.orm.exc.StaleDataError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError "Link to this definition") _inherits from_ [`sqlalchemy.exc.SQLAlchemyError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError "sqlalchemy.exc.SQLAlchemyError") An operation encountered database state that is unaccounted for. Conditions which cause this to happen include: * A flush may have attempted to update or delete rows and an unexpected number of rows were matched during the UPDATE or DELETE statement. Note that when version\_id\_col is used, rows in UPDATE or DELETE statements are also matched against the current known version identifier. * A mapped object with version\_id\_col was refreshed, and the version number coming back from the database does not match that of the object itself. * A object is detached from its parent object, however the object was previously attached to a different parent identity which was garbage collected, and a decision cannot be made if the new parent was really the most recent “parent”. _exception_ sqlalchemy.orm.exc.UnmappedClassError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError "Link to this definition") _inherits from_ [`sqlalchemy.orm.exc.UnmappedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError "sqlalchemy.orm.exc.UnmappedError") An mapping operation was requested for an unknown class. _method_ [`sqlalchemy.orm.exc.UnmappedClassError.`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError) \_\_init\_\_(_cls: Type\[\_T\]_, _msg: str | None \= None_)[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError.__init__ "Link to this definition") _exception_ sqlalchemy.orm.exc.UnmappedColumnError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError "Link to this definition") _inherits from_ [`sqlalchemy.exc.InvalidRequestError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") Mapping operation was requested on an unknown column. _exception_ sqlalchemy.orm.exc.UnmappedError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError "Link to this definition") _inherits from_ [`sqlalchemy.exc.InvalidRequestError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") Base for exceptions that involve expected mappings not present. _exception_ sqlalchemy.orm.exc.UnmappedInstanceError[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError "Link to this definition") _inherits from_ [`sqlalchemy.orm.exc.UnmappedError`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError "sqlalchemy.orm.exc.UnmappedError") An mapping operation was requested for an unknown instance. _method_ [`sqlalchemy.orm.exc.UnmappedInstanceError.`](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError) \_\_init\_\_(_obj: object_, _msg: str | None \= None_)[¶](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError.__init__ "Link to this definition") Previous: [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html "previous chapter") Next: [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # ORM Extensions — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * **ORM Extensions**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html#) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html "previous chapter") * **Next:** [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * **On this page:** * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html#orm-extensions) ORM Extensions[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html#orm-extensions "Link to this heading") ===================================================================================================================== SQLAlchemy has a variety of ORM extensions available, which add additional functionality to the core behavior. The extensions build almost entirely on public core and ORM APIs and users should be encouraged to read their source code to further their understanding of their behavior. In particular the “Horizontal Sharding”, “Hybrid Attributes”, and “Mutation Tracking” extensions are very succinct. * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html) Previous: [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html "previous chapter") Next: [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Adjacency List Relationships — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * **Adjacency List Relationships**[¶](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#) * [Composite Adjacency Lists](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#composite-adjacency-lists) * [Self-Referential Query Strategies](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#self-referential-query-strategies) * [Configuring Self-Referential Eager Loading](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#configuring-self-referential-eager-loading) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html "previous chapter") * **Next:** [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html "Relationship Configuration") * **On this page:** * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#adjacency-list-relationships) * [Composite Adjacency Lists](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#composite-adjacency-lists) * [Self-Referential Query Strategies](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#self-referential-query-strategies) * [Configuring Self-Referential Eager Loading](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#configuring-self-referential-eager-loading) Adjacency List Relationships[¶](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#adjacency-list-relationships "Link to this heading") ================================================================================================================================================= The **adjacency list** pattern is a common relational pattern whereby a table contains a foreign key reference to itself, in other words is a **self referential relationship**. This is the most common way to represent hierarchical data in flat tables. Other methods include **nested sets**, sometimes called “modified preorder”, as well as **materialized path**. Despite the appeal that modified preorder has when evaluated for its fluency within SQL queries, the adjacency list model is probably the most appropriate pattern for the large majority of hierarchical storage needs, for reasons of concurrency, reduced complexity, and that modified preorder has little advantage over an application which can fully load subtrees into the application space. See also This section details the single-table version of a self-referential relationship. For a self-referential relationship that uses a second table as an association table, see the section [Self-Referential Many-to-Many Relationship](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#self-referential-many-to-many) . In this example, we’ll work with a single mapped class called `Node`, representing a tree structure: class Node(Base): \_\_tablename\_\_ \= "node" id \= mapped\_column(Integer, primary\_key\=True) parent\_id \= mapped\_column(Integer, ForeignKey("node.id")) data \= mapped\_column(String(50)) children \= relationship("Node") With this structure, a graph such as the following: root --+---> child1 +---> child2 --+--> subchild1 | +--> subchild2 +---> child3 Would be represented with data such as: id parent\_id data --- ------- ---- 1 NULL root 2 1 child1 3 1 child2 4 3 subchild1 5 3 subchild2 6 1 child3 The [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") configuration here works in the same way as a “normal” one-to-many relationship, with the exception that the “direction”, i.e. whether the relationship is one-to-many or many-to-one, is assumed by default to be one-to-many. To establish the relationship as many-to-one, an extra directive is added known as [`relationship.remote_side`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side "sqlalchemy.orm.relationship") , which is a [`Column`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") or collection of [`Column`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") objects that indicate those which should be considered to be “remote”: class Node(Base): \_\_tablename\_\_ \= "node" id \= mapped\_column(Integer, primary\_key\=True) parent\_id \= mapped\_column(Integer, ForeignKey("node.id")) data \= mapped\_column(String(50)) parent \= relationship("Node", remote\_side\=\[id\]) Where above, the `id` column is applied as the [`relationship.remote_side`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side "sqlalchemy.orm.relationship") of the `parent` [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") , thus establishing `parent_id` as the “local” side, and the relationship then behaves as a many-to-one. As always, both directions can be combined into a bidirectional relationship using two [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") constructs linked by [`relationship.back_populates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates "sqlalchemy.orm.relationship") : class Node(Base): \_\_tablename\_\_ \= "node" id \= mapped\_column(Integer, primary\_key\=True) parent\_id \= mapped\_column(Integer, ForeignKey("node.id")) data \= mapped\_column(String(50)) children \= relationship("Node", back\_populates\="parent") parent \= relationship("Node", back\_populates\="children", remote\_side\=\[id\]) See also [Adjacency List](https://docs.sqlalchemy.org/en/20/orm/examples.html#examples-adjacencylist) - working example, updated for SQLAlchemy 2.0 Composite Adjacency Lists[¶](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#composite-adjacency-lists "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------- A sub-category of the adjacency list relationship is the rare case where a particular column is present on both the “local” and “remote” side of the join condition. An example is the `Folder` class below; using a composite primary key, the `account_id` column refers to itself, to indicate sub folders which are within the same account as that of the parent; while `folder_id` refers to a specific folder within that account: class Folder(Base): \_\_tablename\_\_ \= "folder" \_\_table\_args\_\_ \= ( ForeignKeyConstraint( \["account\_id", "parent\_id"\], \["folder.account\_id", "folder.folder\_id"\] ), ) account\_id \= mapped\_column(Integer, primary\_key\=True) folder\_id \= mapped\_column(Integer, primary\_key\=True) parent\_id \= mapped\_column(Integer) name \= mapped\_column(String) parent\_folder \= relationship( "Folder", back\_populates\="child\_folders", remote\_side\=\[account\_id, folder\_id\] ) child\_folders \= relationship("Folder", back\_populates\="parent\_folder") Above, we pass `account_id` into the [`relationship.remote_side`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side "sqlalchemy.orm.relationship") list. [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") recognizes that the `account_id` column here is on both sides, and aligns the “remote” column along with the `folder_id` column, which it recognizes as uniquely present on the “remote” side. Self-Referential Query Strategies[¶](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#self-referential-query-strategies "Link to this heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------- Querying of self-referential structures works like any other query: \# get all nodes named 'child2' session.scalars(select(Node).where(Node.data \== "child2")) However extra care is needed when attempting to join along the foreign key from one level of the tree to the next. In SQL, a join from a table to itself requires that at least one side of the expression be “aliased” so that it can be unambiguously referred to. Recall from [Selecting ORM Aliases](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html#orm-queryguide-orm-aliases) in the ORM tutorial that the [`aliased()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.aliased "sqlalchemy.orm.aliased") construct is normally used to provide an “alias” of an ORM entity. Joining from `Node` to itself using this technique looks like: from sqlalchemy.orm import aliased nodealias \= aliased(Node) session.scalars( select(Node) .where(Node.data \== "subchild1") .join(Node.parent.of\_type(nodealias)) .where(nodealias.data \== "child2") ).all() SELECT node.id AS node\_id, node.parent\_id AS node\_parent\_id, node.data AS node\_data FROM node JOIN node AS node\_1 ON node.parent\_id \= node\_1.id WHERE node.data \= ? AND node\_1.data \= ? \['subchild1', 'child2'\] Configuring Self-Referential Eager Loading[¶](https://docs.sqlalchemy.org/en/20/orm/self_referential.html#configuring-self-referential-eager-loading "Link to this heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Eager loading of relationships occurs using joins or outerjoins from parent to child table during a normal query operation, such that the parent and its immediate child collection or reference can be populated from a single SQL statement, or a second statement for all immediate child collections. SQLAlchemy’s joined and subquery eager loading use aliased tables in all cases when joining to related items, so are compatible with self-referential joining. However, to use eager loading with a self-referential relationship, SQLAlchemy needs to be told how many levels deep it should join and/or query; otherwise the eager load will not take place at all. This depth setting is configured via `relationships.join_depth`: class Node(Base): \_\_tablename\_\_ \= "node" id \= mapped\_column(Integer, primary\_key\=True) parent\_id \= mapped\_column(Integer, ForeignKey("node.id")) data \= mapped\_column(String(50)) children \= relationship("Node", lazy\="joined", join\_depth\=2) session.scalars(select(Node)).all() SELECT node\_1.id AS node\_1\_id, node\_1.parent\_id AS node\_1\_parent\_id, node\_1.data AS node\_1\_data, node\_2.id AS node\_2\_id, node\_2.parent\_id AS node\_2\_parent\_id, node\_2.data AS node\_2\_data, node.id AS node\_id, node.parent\_id AS node\_parent\_id, node.data AS node\_data FROM node LEFT OUTER JOIN node AS node\_2 ON node.id \= node\_2.parent\_id LEFT OUTER JOIN node AS node\_1 ON node\_2.id \= node\_1.parent\_id \[\] Previous: [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html "previous chapter") Next: [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Using the legacy ‘backref’ relationship parameter — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html) * **Using the legacy ‘backref’ relationship parameter**[¶](https://docs.sqlalchemy.org/en/20/orm/backref.html#) * [Backref Default Arguments](https://docs.sqlalchemy.org/en/20/orm/backref.html#backref-default-arguments) * [Specifying Backref Arguments](https://docs.sqlalchemy.org/en/20/orm/backref.html#specifying-backref-arguments) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html "previous chapter") * **Next:** [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html "Relationship Configuration") * **On this page:** * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html#using-the-legacy-backref-relationship-parameter) * [Backref Default Arguments](https://docs.sqlalchemy.org/en/20/orm/backref.html#backref-default-arguments) * [Specifying Backref Arguments](https://docs.sqlalchemy.org/en/20/orm/backref.html#specifying-backref-arguments) Using the legacy ‘backref’ relationship parameter[¶](https://docs.sqlalchemy.org/en/20/orm/backref.html#using-the-legacy-backref-relationship-parameter "Link to this heading") ================================================================================================================================================================================ Note The [`relationship.backref`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref "sqlalchemy.orm.relationship") keyword should be considered legacy, and use of [`relationship.back_populates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates "sqlalchemy.orm.relationship") with explicit [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") constructs should be preferred. Using individual [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") constructs provides advantages including that both ORM mapped classes will include their attributes up front as the class is constructed, rather than as a deferred step, and configuration is more straightforward as all arguments are explicit. New [**PEP 484**](https://peps.python.org/pep-0484/) features in SQLAlchemy 2.0 also take advantage of attributes being explicitly present in source code rather than using dynamic attribute generation. See also For general information about bidirectional relationships, see the following sections: [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/20/tutorial/orm_related_objects.html#tutorial-orm-related-objects) - in the [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) , presents an overview of bi-directional relationship configuration and behaviors using [`relationship.back_populates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates "sqlalchemy.orm.relationship") [Behavior of save-update cascade with bi-directional relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#back-populates-cascade) - notes on bi-directional [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") behavior regarding [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") cascade behaviors. [`relationship.back_populates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates "sqlalchemy.orm.relationship") The [`relationship.backref`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref "sqlalchemy.orm.relationship") keyword argument on the [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") construct allows the automatic generation of a new [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") that will be automatically be added to the ORM mapping for the related class. It will then be placed into a [`relationship.back_populates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates "sqlalchemy.orm.relationship") configuration against the current [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") being configured, with both [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") constructs referring to each other. Starting with the following example: from sqlalchemy import Column, ForeignKey, Integer, String from sqlalchemy.orm import DeclarativeBase, relationship class Base(DeclarativeBase): pass class User(Base): \_\_tablename\_\_ \= "user" id \= mapped\_column(Integer, primary\_key\=True) name \= mapped\_column(String) addresses \= relationship("Address", backref\="user") class Address(Base): \_\_tablename\_\_ \= "address" id \= mapped\_column(Integer, primary\_key\=True) email \= mapped\_column(String) user\_id \= mapped\_column(Integer, ForeignKey("user.id")) The above configuration establishes a collection of `Address` objects on `User` called `User.addresses`. It also establishes a `.user` attribute on `Address` which will refer to the parent `User` object. Using [`relationship.back_populates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates "sqlalchemy.orm.relationship") it’s equivalent to the following: from sqlalchemy import Column, ForeignKey, Integer, String from sqlalchemy.orm import DeclarativeBase, relationship class Base(DeclarativeBase): pass class User(Base): \_\_tablename\_\_ \= "user" id \= mapped\_column(Integer, primary\_key\=True) name \= mapped\_column(String) addresses \= relationship("Address", back\_populates\="user") class Address(Base): \_\_tablename\_\_ \= "address" id \= mapped\_column(Integer, primary\_key\=True) email \= mapped\_column(String) user\_id \= mapped\_column(Integer, ForeignKey("user.id")) user \= relationship("User", back\_populates\="addresses") The behavior of the `User.addresses` and `Address.user` relationships is that they now behave in a **bi-directional** way, indicating that changes on one side of the relationship impact the other. An example and discussion of this behavior is in the [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) at [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/20/tutorial/orm_related_objects.html#tutorial-orm-related-objects) . Backref Default Arguments[¶](https://docs.sqlalchemy.org/en/20/orm/backref.html#backref-default-arguments "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------- Since [`relationship.backref`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref "sqlalchemy.orm.relationship") generates a whole new [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") , the generation process by default will attempt to include corresponding arguments in the new [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") that correspond to the original arguments. As an example, below is a [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") that includes a [custom join condition](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html#relationship-configure-joins) which also includes the [`relationship.backref`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref "sqlalchemy.orm.relationship") keyword: from sqlalchemy import Column, ForeignKey, Integer, String from sqlalchemy.orm import DeclarativeBase, relationship class Base(DeclarativeBase): pass class User(Base): \_\_tablename\_\_ \= "user" id \= mapped\_column(Integer, primary\_key\=True) name \= mapped\_column(String) addresses \= relationship( "Address", primaryjoin\=( "and\_(User.id==Address.user\_id, Address.email.startswith('tony'))" ), backref\="user", ) class Address(Base): \_\_tablename\_\_ \= "address" id \= mapped\_column(Integer, primary\_key\=True) email \= mapped\_column(String) user\_id \= mapped\_column(Integer, ForeignKey("user.id")) When the “backref” is generated, the [`relationship.primaryjoin`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin "sqlalchemy.orm.relationship") condition is copied to the new [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") as well: \>>> print(User.addresses.property.primaryjoin) "user".id = address.user\_id AND address.email LIKE :email\_1 || '%%' \>>> \>>> print(Address.user.property.primaryjoin) "user".id = address.user\_id AND address.email LIKE :email\_1 || '%%' \>>> Other arguments that are transferable include the [`relationship.secondary`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondary "sqlalchemy.orm.relationship") parameter that refers to a many-to-many association table, as well as the “join” arguments [`relationship.primaryjoin`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin "sqlalchemy.orm.relationship") and [`relationship.secondaryjoin`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondaryjoin "sqlalchemy.orm.relationship") ; “backref” is smart enough to know that these two arguments should also be “reversed” when generating the opposite side. Specifying Backref Arguments[¶](https://docs.sqlalchemy.org/en/20/orm/backref.html#specifying-backref-arguments "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------- Lots of other arguments for a “backref” are not implicit, and include arguments like [`relationship.lazy`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.lazy "sqlalchemy.orm.relationship") , [`relationship.remote_side`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side "sqlalchemy.orm.relationship") , [`relationship.cascade`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade "sqlalchemy.orm.relationship") and [`relationship.cascade_backrefs`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade_backrefs "sqlalchemy.orm.relationship") . For this case we use the [`backref()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.backref "sqlalchemy.orm.backref") function in place of a string; this will store a specific set of arguments that will be transferred to the new [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") when generated: \# from sqlalchemy.orm import backref class User(Base): \_\_tablename\_\_ \= "user" id \= mapped\_column(Integer, primary\_key\=True) name \= mapped\_column(String) addresses \= relationship( "Address", backref\=backref("user", lazy\="joined"), ) Where above, we placed a `lazy="joined"` directive only on the `Address.user` side, indicating that when a query against `Address` is made, a join to the `User` entity should be made automatically which will populate the `.user` attribute of each returned `Address`. The [`backref()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.backref "sqlalchemy.orm.backref") function formatted the arguments we gave it into a form that is interpreted by the receiving [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") as additional arguments to be applied to the new relationship it creates. Previous: [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html "previous chapter") Next: [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Special Relationship Persistence Patterns — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * **Special Relationship Persistence Patterns**[¶](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#) * [Rows that point to themselves / Mutually Dependent Rows](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#rows-that-point-to-themselves-mutually-dependent-rows) * [Mutable Primary Keys / Update Cascades](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#mutable-primary-keys-update-cascades) * [Simulating limited ON UPDATE CASCADE without foreign key support](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#simulating-limited-on-update-cascade-without-foreign-key-support) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html "previous chapter") * **Next:** [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html "Relationship Configuration") * **On this page:** * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#special-relationship-persistence-patterns) * [Rows that point to themselves / Mutually Dependent Rows](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#rows-that-point-to-themselves-mutually-dependent-rows) * [Mutable Primary Keys / Update Cascades](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#mutable-primary-keys-update-cascades) * [Simulating limited ON UPDATE CASCADE without foreign key support](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#simulating-limited-on-update-cascade-without-foreign-key-support) Special Relationship Persistence Patterns[¶](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#special-relationship-persistence-patterns "Link to this heading") =================================================================================================================================================================================== Rows that point to themselves / Mutually Dependent Rows[¶](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#rows-that-point-to-themselves-mutually-dependent-rows "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This is a very specific case where relationship() must perform an INSERT and a second UPDATE in order to properly populate a row (and vice versa an UPDATE and DELETE in order to delete without violating foreign key constraints). The two use cases are: * A table contains a foreign key to itself, and a single row will have a foreign key value pointing to its own primary key. * Two tables each contain a foreign key referencing the other table, with a row in each table referencing the other. For example: user --------------------------------- user\_id name related\_user\_id 1 'ed' 1 Or: widget entry ------------------------------------------- --------------------------------- widget\_id name favorite\_entry\_id entry\_id name widget\_id 1 'somewidget' 5 5 'someentry' 1 In the first case, a row points to itself. Technically, a database that uses sequences such as PostgreSQL or Oracle Database can INSERT the row at once using a previously generated value, but databases which rely upon autoincrement-style primary key identifiers cannot. The [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") always assumes a “parent/child” model of row population during flush, so unless you are populating the primary key/foreign key columns directly, [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") needs to use two statements. In the second case, the “widget” row must be inserted before any referring “entry” rows, but then the “favorite\_entry\_id” column of that “widget” row cannot be set until the “entry” rows have been generated. In this case, it’s typically impossible to insert the “widget” and “entry” rows using just two INSERT statements; an UPDATE must be performed in order to keep foreign key constraints fulfilled. The exception is if the foreign keys are configured as “deferred until commit” (a feature some databases support) and if the identifiers were populated manually (again essentially bypassing [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") ). To enable the usage of a supplementary UPDATE statement, we use the [`relationship.post_update`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.post_update "sqlalchemy.orm.relationship") option of [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") . This specifies that the linkage between the two rows should be created using an UPDATE statement after both rows have been INSERTED; it also causes the rows to be de-associated with each other via UPDATE before a DELETE is emitted. The flag should be placed on just _one_ of the relationships, preferably the many-to-one side. Below we illustrate a complete example, including two [`ForeignKey`](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey "sqlalchemy.schema.ForeignKey") constructs: from sqlalchemy import Integer, ForeignKey from sqlalchemy.orm import mapped\_column from sqlalchemy.orm import DeclarativeBase from sqlalchemy.orm import relationship class Base(DeclarativeBase): pass class Entry(Base): \_\_tablename\_\_ \= "entry" entry\_id \= mapped\_column(Integer, primary\_key\=True) widget\_id \= mapped\_column(Integer, ForeignKey("widget.widget\_id")) name \= mapped\_column(String(50)) class Widget(Base): \_\_tablename\_\_ \= "widget" widget\_id \= mapped\_column(Integer, primary\_key\=True) favorite\_entry\_id \= mapped\_column( Integer, ForeignKey("entry.entry\_id", name\="fk\_favorite\_entry") ) name \= mapped\_column(String(50)) entries \= relationship(Entry, primaryjoin\=widget\_id \== Entry.widget\_id) favorite\_entry \= relationship( Entry, primaryjoin\=favorite\_entry\_id \== Entry.entry\_id, post\_update\=True ) When a structure against the above configuration is flushed, the “widget” row will be INSERTed minus the “favorite\_entry\_id” value, then all the “entry” rows will be INSERTed referencing the parent “widget” row, and then an UPDATE statement will populate the “favorite\_entry\_id” column of the “widget” table (it’s one row at a time for the time being): \>>> w1 \= Widget(name\="somewidget") \>>> e1 \= Entry(name\="someentry") \>>> w1.favorite\_entry \= e1 \>>> w1.entries \= \[e1\] \>>> session.add\_all(\[w1, e1\]) \>>> session.commit() BEGIN (implicit) INSERT INTO widget (favorite\_entry\_id, name) VALUES (?, ?) (None, 'somewidget') INSERT INTO entry (widget\_id, name) VALUES (?, ?) (1, 'someentry') UPDATE widget SET favorite\_entry\_id\=? WHERE widget.widget\_id \= ? (1, 1) COMMIT An additional configuration we can specify is to supply a more comprehensive foreign key constraint on `Widget`, such that it’s guaranteed that `favorite_entry_id` refers to an `Entry` that also refers to this `Widget`. We can use a composite foreign key, as illustrated below: from sqlalchemy import ( Integer, ForeignKey, String, UniqueConstraint, ForeignKeyConstraint, ) from sqlalchemy.orm import DeclarativeBase from sqlalchemy.orm import mapped\_column from sqlalchemy.orm import relationship class Base(DeclarativeBase): pass class Entry(Base): \_\_tablename\_\_ \= "entry" entry\_id \= mapped\_column(Integer, primary\_key\=True) widget\_id \= mapped\_column(Integer, ForeignKey("widget.widget\_id")) name \= mapped\_column(String(50)) \_\_table\_args\_\_ \= (UniqueConstraint("entry\_id", "widget\_id"),) class Widget(Base): \_\_tablename\_\_ \= "widget" widget\_id \= mapped\_column(Integer, autoincrement\="ignore\_fk", primary\_key\=True) favorite\_entry\_id \= mapped\_column(Integer) name \= mapped\_column(String(50)) \_\_table\_args\_\_ \= ( ForeignKeyConstraint( \["widget\_id", "favorite\_entry\_id"\], \["entry.widget\_id", "entry.entry\_id"\], name\="fk\_favorite\_entry", ), ) entries \= relationship( Entry, primaryjoin\=widget\_id \== Entry.widget\_id, foreign\_keys\=Entry.widget\_id ) favorite\_entry \= relationship( Entry, primaryjoin\=favorite\_entry\_id \== Entry.entry\_id, foreign\_keys\=favorite\_entry\_id, post\_update\=True, ) The above mapping features a composite [`ForeignKeyConstraint`](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint "sqlalchemy.schema.ForeignKeyConstraint") bridging the `widget_id` and `favorite_entry_id` columns. To ensure that `Widget.widget_id` remains an “autoincrementing” column we specify [`Column.autoincrement`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.autoincrement "sqlalchemy.schema.Column") to the value `"ignore_fk"` on [`Column`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") , and additionally on each [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") we must limit those columns considered as part of the foreign key for the purposes of joining and cross-population. Mutable Primary Keys / Update Cascades[¶](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#mutable-primary-keys-update-cascades "Link to this heading") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- When the primary key of an entity changes, related items which reference the primary key must also be updated as well. For databases which enforce referential integrity, the best strategy is to use the database’s ON UPDATE CASCADE functionality in order to propagate primary key changes to referenced foreign keys - the values cannot be out of sync for any moment unless the constraints are marked as “deferrable”, that is, not enforced until the transaction completes. It is **highly recommended** that an application which seeks to employ natural primary keys with mutable values to use the `ON UPDATE CASCADE` capabilities of the database. An example mapping which illustrates this is: class User(Base): \_\_tablename\_\_ \= "user" \_\_table\_args\_\_ \= {"mysql\_engine": "InnoDB"} username \= mapped\_column(String(50), primary\_key\=True) fullname \= mapped\_column(String(100)) addresses \= relationship("Address") class Address(Base): \_\_tablename\_\_ \= "address" \_\_table\_args\_\_ \= {"mysql\_engine": "InnoDB"} email \= mapped\_column(String(50), primary\_key\=True) username \= mapped\_column( String(50), ForeignKey("user.username", onupdate\="cascade") ) Above, we illustrate `onupdate="cascade"` on the [`ForeignKey`](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey "sqlalchemy.schema.ForeignKey") object, and we also illustrate the `mysql_engine='InnoDB'` setting which, on a MySQL backend, ensures that the `InnoDB` engine supporting referential integrity is used. When using SQLite, referential integrity should be enabled, using the configuration described at [Foreign Key Support](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlite-foreign-keys) . See also [Using foreign key ON DELETE cascade with ORM relationships](https://docs.sqlalchemy.org/en/20/orm/cascades.html#passive-deletes) - supporting ON DELETE CASCADE with relationships `mapper.passive_updates` - similar feature on [`Mapper`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") ### Simulating limited ON UPDATE CASCADE without foreign key support[¶](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html#simulating-limited-on-update-cascade-without-foreign-key-support "Link to this heading") In those cases when a database that does not support referential integrity is used, and natural primary keys with mutable values are in play, SQLAlchemy offers a feature in order to allow propagation of primary key values to already-referenced foreign keys to a **limited** extent, by emitting an UPDATE statement against foreign key columns that immediately reference a primary key column whose value has changed. The primary platforms without referential integrity features are MySQL when the `MyISAM` storage engine is used, and SQLite when the `PRAGMA foreign_keys=ON` pragma is not used. Oracle Database also has no support for `ON UPDATE CASCADE`, but because it still enforces referential integrity, needs constraints to be marked as deferrable so that SQLAlchemy can emit UPDATE statements. The feature is enabled by setting the [`relationship.passive_updates`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_updates "sqlalchemy.orm.relationship") flag to `False`, most preferably on a one-to-many or many-to-many [`relationship()`](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") . When “updates” are no longer “passive” this indicates that SQLAlchemy will issue UPDATE statements individually for objects referenced in the collection referred to by the parent object with a changing primary key value. This also implies that collections will be fully loaded into memory if not already locally present. Our previous mapping using `passive_updates=False` looks like: class User(Base): \_\_tablename\_\_ \= "user" username \= mapped\_column(String(50), primary\_key\=True) fullname \= mapped\_column(String(100)) \# passive\_updates=False \*only\* needed if the database \# does not implement ON UPDATE CASCADE addresses \= relationship("Address", passive\_updates\=False) class Address(Base): \_\_tablename\_\_ \= "address" email \= mapped\_column(String(50), primary\_key\=True) username \= mapped\_column(String(50), ForeignKey("user.username")) Key limitations of `passive_updates=False` include: * it performs much more poorly than direct database ON UPDATE CASCADE, because it needs to fully pre-load affected collections using SELECT and also must emit UPDATE statements against those values, which it will attempt to run in “batches” but still runs on a per-row basis at the DBAPI level. * the feature cannot “cascade” more than one level. That is, if mapping X has a foreign key which refers to the primary key of mapping Y, but then mapping Y’s primary key is itself a foreign key to mapping Z, `passive_updates=False` cannot cascade a change in primary key value from `Z` to `X`. * Configuring `passive_updates=False` only on the many-to-one side of a relationship will not have a full effect, as the unit of work searches only through the current identity map for objects that may be referencing the one with a mutating primary key, not throughout the database. As virtually all databases other than Oracle Database now support `ON UPDATE CASCADE`, it is highly recommended that traditional `ON UPDATE CASCADE` support be used in the case that natural and mutable primary key values are in use. Previous: [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html "previous chapter") Next: [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Transactions and Connection Management — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html) * **Transactions and Connection Management**[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#) * [Managing Transactions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#managing-transactions) * [Using SAVEPOINT](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#using-savepoint) * [Session-level vs. Engine level transaction control](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#session-level-vs-engine-level-transaction-control) * [Commit as you go](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#commit-as-you-go) * [Begin Once](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#begin-once) * [Nested Transaction](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#nested-transaction) * [Explicit Begin](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#explicit-begin) * [Enabling Two-Phase Commit](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#enabling-two-phase-commit) * [Setting Transaction Isolation Levels / DBAPI AUTOCOMMIT](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-transaction-isolation-levels-dbapi-autocommit) * [Setting Isolation For A Sessionmaker / Engine Wide](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-a-sessionmaker-engine-wide) * [Setting Isolation for Individual Sessions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-individual-sessions) * [Setting Isolation for Individual Transactions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-individual-transactions) * [Tracking Transaction State with Events](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#tracking-transaction-state-with-events) * [Joining a Session into an External Transaction (such as for test suites)](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#joining-a-session-into-an-external-transaction-such-as-for-test-suites) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/20/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html "previous chapter") * **Next:** [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html "Using the Session") * **On this page:** * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#transactions-and-connection-management) * [Managing Transactions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#managing-transactions) * [Using SAVEPOINT](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#using-savepoint) * [Session-level vs. Engine level transaction control](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#session-level-vs-engine-level-transaction-control) * [Commit as you go](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#commit-as-you-go) * [Begin Once](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#begin-once) * [Nested Transaction](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#nested-transaction) * [Explicit Begin](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#explicit-begin) * [Enabling Two-Phase Commit](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#enabling-two-phase-commit) * [Setting Transaction Isolation Levels / DBAPI AUTOCOMMIT](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-transaction-isolation-levels-dbapi-autocommit) * [Setting Isolation For A Sessionmaker / Engine Wide](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-a-sessionmaker-engine-wide) * [Setting Isolation for Individual Sessions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-individual-sessions) * [Setting Isolation for Individual Transactions](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-individual-transactions) * [Tracking Transaction State with Events](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#tracking-transaction-state-with-events) * [Joining a Session into an External Transaction (such as for test suites)](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#joining-a-session-into-an-external-transaction-such-as-for-test-suites) Transactions and Connection Management[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#transactions-and-connection-management "Link to this heading") ======================================================================================================================================================================== Managing Transactions[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#managing-transactions "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------------- Changed in version 1.4: Session transaction management has been revised to be clearer and easier to use. In particular, it now features “autobegin” operation, which means the point at which a transaction begins may be controlled, without using the legacy “autocommit” mode. The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") tracks the state of a single “virtual” transaction at a time, using an object called [`SessionTransaction`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") . This object then makes use of the underlying [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or engines to which the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object is bound in order to start real connection-level transactions using the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object as needed. This “virtual” transaction is created automatically when needed, or can alternatively be started using the [`Session.begin()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method. To as great a degree as possible, Python context manager use is supported both at the level of creating [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects as well as to maintain the scope of the [`SessionTransaction`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") . Below, assume we start with a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") : from sqlalchemy.orm import Session session \= Session(engine) We can now run operations within a demarcated transaction using a context manager: with session.begin(): session.add(some\_object()) session.add(some\_other\_object()) \# commits transaction at the end, or rolls back if there \# was an exception raised At the end of the above context, assuming no exceptions were raised, any pending objects will be flushed to the database and the database transaction will be committed. If an exception was raised within the above block, then the transaction would be rolled back. In both cases, the above [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") subsequent to exiting the block is ready to be used in subsequent transactions. The [`Session.begin()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method is optional, and the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") may also be used in a commit-as-you-go approach, where it will begin transactions automatically as needed; these only need be committed or rolled back: session \= Session(engine) session.add(some\_object()) session.add(some\_other\_object()) session.commit() \# commits \# will automatically begin again result \= session.execute(text("< some select statement >")) session.add\_all(\[more\_objects, ...\]) session.commit() \# commits session.add(still\_another\_object) session.flush() \# flush still\_another\_object session.rollback() \# rolls back still\_another\_object The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") itself features a [`Session.close()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") method. If the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is begun within a transaction that has not yet been committed or rolled back, this method will cancel (i.e. rollback) that transaction, and also expunge all objects contained within the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s state. If the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is being used in such a way that a call to [`Session.commit()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") or [`Session.rollback()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") is not guaranteed (e.g. not within a context manager or similar), the [`close`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") method may be used to ensure all resources are released: \# expunges all objects, releases all transactions unconditionally \# (with rollback), releases all database connections back to their \# engines session.close() Finally, the session construction / close process can itself be run via context manager. This is the best way to ensure that the scope of a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s use is scoped within a fixed block. Illustrated via the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") constructor first: with Session(engine) as session: session.add(some\_object()) session.add(some\_other\_object()) session.commit() \# commits session.add(still\_another\_object) session.flush() \# flush still\_another\_object session.commit() \# commits result \= session.execute(text("")) \# remaining transactional state from the .execute() call is \# discarded Similarly, the [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") can be used in the same way: Session \= sessionmaker(engine) with Session() as session: with session.begin(): session.add(some\_object) \# commits \# closes the Session [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") itself includes a [`sessionmaker.begin()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker.begin "sqlalchemy.orm.sessionmaker.begin") method to allow both operations to take place at once: with Session.begin() as session: session.add(some\_object) ### Using SAVEPOINT[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#using-savepoint "Link to this heading") SAVEPOINT transactions, if supported by the underlying engine, may be delineated using the [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") method: Session \= sessionmaker() with Session.begin() as session: session.add(u1) session.add(u2) nested \= session.begin\_nested() \# establish a savepoint session.add(u3) nested.rollback() \# rolls back u3, keeps u1 and u2 \# commits u1 and u2 Each time [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") is called, a new “BEGIN SAVEPOINT” command is emitted to the database within the scope of the current database transaction (starting one if not already in progress), and an object of type [`SessionTransaction`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") is returned, which represents a handle to this SAVEPOINT. When the `.commit()` method on this object is called, “RELEASE SAVEPOINT” is emitted to the database, and if instead the `.rollback()` method is called, “ROLLBACK TO SAVEPOINT” is emitted. The enclosing database transaction remains in progress. [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") is typically used as a context manager where specific per-instance errors may be caught, in conjunction with a rollback emitted for that portion of the transaction’s state, without rolling back the whole transaction, as in the example below: for record in records: try: with session.begin\_nested(): session.merge(record) except: print("Skipped record %s" % record) session.commit() When the context manager yielded by [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") completes, it “commits” the savepoint, which includes the usual behavior of flushing all pending state. When an error is raised, the savepoint is rolled back and the state of the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") local to the objects that were changed is expired. This pattern is ideal for situations such as using PostgreSQL and catching [`IntegrityError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IntegrityError "sqlalchemy.exc.IntegrityError") to detect duplicate rows; PostgreSQL normally aborts the entire transaction when such an error is raised, however when using SAVEPOINT, the outer transaction is maintained. In the example below a list of data is persisted into the database, with the occasional “duplicate primary key” record skipped, without rolling back the entire operation: from sqlalchemy import exc with session.begin(): for record in records: try: with session.begin\_nested(): obj \= SomeRecord(id\=record\["identifier"\], name\=record\["name"\]) session.add(obj) except exc.IntegrityError: print(f"Skipped record {record} - row already exists") When [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") is called, the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") first flushes all currently pending state to the database; this occurs unconditionally, regardless of the value of the [`Session.autoflush`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.autoflush "sqlalchemy.orm.Session") parameter which normally may be used to disable automatic flush. The rationale for this behavior is so that when a rollback on this nested transaction occurs, the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") may expire any in-memory state that was created within the scope of the SAVEPOINT, while ensuring that when those expired objects are refreshed, the state of the object graph prior to the beginning of the SAVEPOINT will be available to re-load from the database. In modern versions of SQLAlchemy, when a SAVEPOINT initiated by [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") is rolled back, in-memory object state that was modified since the SAVEPOINT was created is expired, however other object state that was not altered since the SAVEPOINT began is maintained. This is so that subsequent operations can continue to make use of the otherwise unaffected data without the need for refreshing it from the database. See also [`Connection.begin_nested()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.begin_nested "sqlalchemy.engine.Connection.begin_nested") - Core SAVEPOINT API ### Session-level vs. Engine level transaction control[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#session-level-vs-engine-level-transaction-control "Link to this heading") The [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") in Core and `_session.Session` in ORM feature equivalent transactional semantics, both at the level of the [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") vs. the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") , as well as the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") vs. the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") . The following sections detail these scenarios based on the following scheme: ORM Core ----------------------------------------- ----------------------------------- sessionmaker Engine Session Connection sessionmaker.begin() Engine.begin() some\_session.commit() some\_connection.commit() with some\_sessionmaker() as session: with some\_engine.connect() as conn: with some\_sessionmaker.begin() as session: with some\_engine.begin() as conn: with some\_session.begin\_nested() as sp: with some\_connection.begin\_nested() as sp: #### Commit as you go[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#commit-as-you-go "Link to this heading") Both [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") and [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") feature [`Connection.commit()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit "sqlalchemy.engine.Connection.commit") and [`Connection.rollback()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.rollback "sqlalchemy.engine.Connection.rollback") methods. Using SQLAlchemy 2.0-style operation, these methods affect the **outermost** transaction in all cases. For the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , it is assumed that [`Session.autobegin`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.autobegin "sqlalchemy.orm.Session") is left at its default value of `True`. [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") : engine \= create\_engine("postgresql+psycopg2://user:pass@host/dbname") with engine.connect() as conn: conn.execute( some\_table.insert(), \[\ {"data": "some data one"},\ {"data": "some data two"},\ {"data": "some data three"},\ \], ) conn.commit() [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") : Session \= sessionmaker(engine) with Session() as session: session.add\_all( \[\ SomeClass(data\="some data one"),\ SomeClass(data\="some data two"),\ SomeClass(data\="some data three"),\ \] ) session.commit() #### Begin Once[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#begin-once "Link to this heading") Both [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") and [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") feature a [`Engine.begin()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.begin "sqlalchemy.engine.Engine.begin") method that will both procure a new object with which to execute SQL statements (the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") and [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , respectively) and then return a context manager that will maintain a begin/commit/rollback context for that object. Engine: engine \= create\_engine("postgresql+psycopg2://user:pass@host/dbname") with engine.begin() as conn: conn.execute( some\_table.insert(), \[\ {"data": "some data one"},\ {"data": "some data two"},\ {"data": "some data three"},\ \], ) \# commits and closes automatically Session: Session \= sessionmaker(engine) with Session.begin() as session: session.add\_all( \[\ SomeClass(data\="some data one"),\ SomeClass(data\="some data two"),\ SomeClass(data\="some data three"),\ \] ) \# commits and closes automatically #### Nested Transaction[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#nested-transaction "Link to this heading") When using a SAVEPOINT via the [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") or [`Connection.begin_nested()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.begin_nested "sqlalchemy.engine.Connection.begin_nested") methods, the transaction object returned must be used to commit or rollback the SAVEPOINT. Calling the [`Session.commit()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") or [`Connection.commit()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit "sqlalchemy.engine.Connection.commit") methods will always commit the **outermost** transaction; this is a SQLAlchemy 2.0 specific behavior that is reversed from the 1.x series. Engine: engine \= create\_engine("postgresql+psycopg2://user:pass@host/dbname") with engine.begin() as conn: savepoint \= conn.begin\_nested() conn.execute( some\_table.insert(), \[\ {"data": "some data one"},\ {"data": "some data two"},\ {"data": "some data three"},\ \], ) savepoint.commit() \# or rollback \# commits automatically Session: Session \= sessionmaker(engine) with Session.begin() as session: savepoint \= session.begin\_nested() session.add\_all( \[\ SomeClass(data\="some data one"),\ SomeClass(data\="some data two"),\ SomeClass(data\="some data three"),\ \] ) savepoint.commit() \# or rollback \# commits automatically ### Explicit Begin[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#explicit-begin "Link to this heading") The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") features “autobegin” behavior, meaning that as soon as operations begin to take place, it ensures a [`SessionTransaction`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") is present to track ongoing operations. This transaction is completed when [`Session.commit()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") is called. It is often desirable, particularly in framework integrations, to control the point at which the “begin” operation occurs. To suit this, the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") uses an “autobegin” strategy, such that the [`Session.begin()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method may be called directly for a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") that has not already had a transaction begun: Session \= sessionmaker(bind\=engine) session \= Session() session.begin() try: item1 \= session.get(Item, 1) item2 \= session.get(Item, 2) item1.foo \= "bar" item2.bar \= "foo" session.commit() except: session.rollback() raise The above pattern is more idiomatically invoked using a context manager: Session \= sessionmaker(bind\=engine) session \= Session() with session.begin(): item1 \= session.get(Item, 1) item2 \= session.get(Item, 2) item1.foo \= "bar" item2.bar \= "foo" The [`Session.begin()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method and the session’s “autobegin” process use the same sequence of steps to begin the transaction. This includes that the [`SessionEvents.after_transaction_create()`](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create "sqlalchemy.orm.SessionEvents.after_transaction_create") event is invoked when it occurs; this hook is used by frameworks in order to integrate their own transactional processes with that of the ORM [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . ### Enabling Two-Phase Commit[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#enabling-two-phase-commit "Link to this heading") For backends which support two-phase operation (currently MySQL and PostgreSQL), the session can be instructed to use two-phase commit semantics. This will coordinate the committing of transactions across databases so that the transaction is either committed or rolled back in all databases. You can also [`Session.prepare()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.prepare "sqlalchemy.orm.Session.prepare") the session for interacting with transactions not managed by SQLAlchemy. To use two phase transactions set the flag `twophase=True` on the session: engine1 \= create\_engine("postgresql+psycopg2://db1") engine2 \= create\_engine("postgresql+psycopg2://db2") Session \= sessionmaker(twophase\=True) \# bind User operations to engine 1, Account operations to engine 2 Session.configure(binds\={User: engine1, Account: engine2}) session \= Session() \# .... work with accounts and users \# commit. session will issue a flush to all DBs, and a prepare step to all DBs, \# before committing both transactions session.commit() ### Setting Transaction Isolation Levels / DBAPI AUTOCOMMIT[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-transaction-isolation-levels-dbapi-autocommit "Link to this heading") Most DBAPIs support the concept of configurable transaction [isolation](https://docs.sqlalchemy.org/en/20/glossary.html#term-isolation) levels. These are traditionally the four levels “READ UNCOMMITTED”, “READ COMMITTED”, “REPEATABLE READ” and “SERIALIZABLE”. These are usually applied to a DBAPI connection before it begins a new transaction, noting that most DBAPIs will begin this transaction implicitly when SQL statements are first emitted. DBAPIs that support isolation levels also usually support the concept of true “autocommit”, which means that the DBAPI connection itself will be placed into a non-transactional autocommit mode. This usually means that the typical DBAPI behavior of emitting “BEGIN” to the database automatically no longer occurs, but it may also include other directives. When using this mode, **the DBAPI does not use a transaction under any circumstances**. SQLAlchemy methods like `.begin()`, `.commit()` and `.rollback()` pass silently. SQLAlchemy’s dialects support settable isolation modes on a per-[`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or per-[`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") basis, using flags at both the [`create_engine()`](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine "sqlalchemy.create_engine") level as well as at the [`Connection.execution_options()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options "sqlalchemy.engine.Connection.execution_options") level. When using the ORM [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , it acts as a _facade_ for engines and connections, but does not expose transaction isolation directly. So in order to affect transaction isolation level, we need to act upon the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") as appropriate. See also [Setting Transaction Isolation Levels including DBAPI Autocommit](https://docs.sqlalchemy.org/en/20/core/connections.html#dbapi-autocommit) - be sure to review how isolation levels work at the level of the SQLAlchemy [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object as well. #### Setting Isolation For A Sessionmaker / Engine Wide[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-a-sessionmaker-engine-wide "Link to this heading") To set up a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") or [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") with a specific isolation level globally, the first technique is that an [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") can be constructed against a specific isolation level in all cases, which is then used as the source of connectivity for a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") and/or [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") : from sqlalchemy import create\_engine from sqlalchemy.orm import sessionmaker eng \= create\_engine( "postgresql+psycopg2://scott:tiger@localhost/test", isolation\_level\="REPEATABLE READ", ) Session \= sessionmaker(eng) Another option, useful if there are to be two engines with different isolation levels at once, is to use the [`Engine.execution_options()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.execution_options "sqlalchemy.engine.Engine.execution_options") method, which will produce a shallow copy of the original [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") which shares the same connection pool as the parent engine. This is often preferable when operations will be separated into “transactional” and “autocommit” operations: from sqlalchemy import create\_engine from sqlalchemy.orm import sessionmaker eng \= create\_engine("postgresql+psycopg2://scott:tiger@localhost/test") autocommit\_engine \= eng.execution\_options(isolation\_level\="AUTOCOMMIT") transactional\_session \= sessionmaker(eng) autocommit\_session \= sessionmaker(autocommit\_engine) Above, both “`eng`” and `"autocommit_engine"` share the same dialect and connection pool. However the “AUTOCOMMIT” mode will be set upon connections when they are acquired from the `autocommit_engine`. The two [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") objects “`transactional_session`” and “`autocommit_session"` then inherit these characteristics when they work with database connections. The “`autocommit_session`” **continues to have transactional semantics**, including that [`Session.commit()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") and [`Session.rollback()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") still consider themselves to be “committing” and “rolling back” objects, however the transaction will be silently absent. For this reason, **it is typical, though not strictly required, that a Session with AUTOCOMMIT isolation be used in a read-only fashion**, that is: with autocommit\_session() as session: some\_objects \= session.execute(text("")) some\_other\_objects \= session.execute(text("")) \# closes connection #### Setting Isolation for Individual Sessions[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-individual-sessions "Link to this heading") When we make a new [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , either using the constructor directly or when we call upon the callable produced by a [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") , we can pass the `bind` argument directly, overriding the pre-existing bind. We can for example create our [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") from a default [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") and pass an engine set for autocommit: plain\_engine \= create\_engine("postgresql+psycopg2://scott:tiger@localhost/test") autocommit\_engine \= plain\_engine.execution\_options(isolation\_level\="AUTOCOMMIT") \# will normally use plain\_engine Session \= sessionmaker(plain\_engine) \# make a specific Session that will use the "autocommit" engine with Session(bind\=autocommit\_engine) as session: \# work with session ... For the case where the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") or [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") is configured with multiple “binds”, we can either re-specify the `binds` argument fully, or if we want to only replace specific binds, we can use the [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper "sqlalchemy.orm.Session.bind_mapper") or [`Session.bind_table()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_table "sqlalchemy.orm.Session.bind_table") methods: with Session() as session: session.bind\_mapper(User, autocommit\_engine) #### Setting Isolation for Individual Transactions[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#setting-isolation-for-individual-transactions "Link to this heading") A key caveat regarding isolation level is that the setting cannot be safely modified on a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") where a transaction has already started. Databases cannot change the isolation level of a transaction in progress, and some DBAPIs and SQLAlchemy dialects have inconsistent behaviors in this area. Therefore it is preferable to use a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") that is up front bound to an engine with the desired isolation level. However, the isolation level on a per-connection basis can be affected by using the [`Session.connection()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.connection "sqlalchemy.orm.Session.connection") method at the start of a transaction: from sqlalchemy.orm import Session \# assume session just constructed sess \= Session(bind\=engine) \# call connection() with options before any other operations proceed. \# this will procure a new connection from the bound engine and begin a real \# database transaction. sess.connection(execution\_options\={"isolation\_level": "SERIALIZABLE"}) \# ... work with session in SERIALIZABLE isolation level... \# commit transaction. the connection is released \# and reverted to its previous isolation level. sess.commit() \# subsequent to commit() above, a new transaction may be begun if desired, \# which will proceed with the previous default isolation level unless \# it is set again. Above, we first produce a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") using either the constructor or a [`sessionmaker`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") . Then we explicitly set up the start of a database-level transaction by calling upon [`Session.connection()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.connection "sqlalchemy.orm.Session.connection") , which provides for execution options that will be passed to the connection before the database-level transaction is begun. The transaction proceeds with this selected isolation level. When the transaction completes, the isolation level is reset on the connection to its default before the connection is returned to the connection pool. The [`Session.begin()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method may also be used to begin the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") level transaction; calling upon [`Session.connection()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.connection "sqlalchemy.orm.Session.connection") subsequent to that call may be used to set up the per-connection-transaction isolation level: sess \= Session(bind\=engine) with sess.begin(): \# call connection() with options before any other operations proceed. \# this will procure a new connection from the bound engine and begin a \# real database transaction. sess.connection(execution\_options\={"isolation\_level": "SERIALIZABLE"}) \# ... work with session in SERIALIZABLE isolation level... \# outside the block, the transaction has been committed. the connection is \# released and reverted to its previous isolation level. ### Tracking Transaction State with Events[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#tracking-transaction-state-with-events "Link to this heading") See the section [Transaction Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html#session-transaction-events) for an overview of the available event hooks for session transaction state changes. Joining a Session into an External Transaction (such as for test suites)[¶](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html#joining-a-session-into-an-external-transaction-such-as-for-test-suites "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ If a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") is being used which is already in a transactional state (i.e. has a [`Transaction`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Transaction "sqlalchemy.engine.Transaction") established), a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") can be made to participate within that transaction by just binding the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to that [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") . The usual rationale for this is a test suite that allows ORM code to work freely with a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , including the ability to call [`Session.commit()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") , where afterwards the entire database interaction is rolled back. Changed in version 2.0: The “join into an external transaction” recipe is newly improved again in 2.0; event handlers to “reset” the nested transaction are no longer required. The recipe works by establishing a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") within a transaction and optionally a SAVEPOINT, then passing it to a [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") as the “bind”; the [`Session.join_transaction_mode`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.join_transaction_mode "sqlalchemy.orm.Session") parameter is passed with the setting `"create_savepoint"`, which indicates that new SAVEPOINTs should be created in order to implement BEGIN/COMMIT/ROLLBACK for the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , which will leave the external transaction in the same state in which it was passed. When the test tears down, the external transaction is rolled back so that any data changes throughout the test are reverted: from sqlalchemy.orm import sessionmaker from sqlalchemy import create\_engine from unittest import TestCase \# global application scope. create Session class, engine Session \= sessionmaker() engine \= create\_engine("postgresql+psycopg2://...") class SomeTest(TestCase): def setUp(self): \# connect to the database self.connection \= engine.connect() \# begin a non-ORM transaction self.trans \= self.connection.begin() \# bind an individual Session to the connection, selecting \# "create\_savepoint" join\_transaction\_mode self.session \= Session( bind\=self.connection, join\_transaction\_mode\="create\_savepoint" ) def test\_something(self): \# use the session in tests. self.session.add(Foo()) self.session.commit() def test\_something\_with\_rollbacks(self): self.session.add(Bar()) self.session.flush() self.session.rollback() self.session.add(Foo()) self.session.commit() def tearDown(self): self.session.close() \# rollback - everything that happened with the \# Session above (including calls to commit()) \# is rolled back. self.trans.rollback() \# return connection to the Engine self.connection.close() The above recipe is part of SQLAlchemy’s own CI to ensure that it remains working as expected. Previous: [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html "previous chapter") Next: [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Alternate Class Instrumentation — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html) * **Alternate Class Instrumentation**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#) * [API Reference](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#api-reference) * [`INSTRUMENTATION_MANAGER`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER) * [`InstrumentationFactory`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory) * [`InstrumentationManager`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) * [`InstrumentationManager.dict_getter()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter) * [`InstrumentationManager.get_instance_dict()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict) * [`InstrumentationManager.initialize_instance_dict()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict) * [`InstrumentationManager.install_descriptor()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor) * [`InstrumentationManager.install_member()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member) * [`InstrumentationManager.install_state()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state) * [`InstrumentationManager.instrument_attribute()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute) * [`InstrumentationManager.instrument_collection_class()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class) * [`InstrumentationManager.manage()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage) * [`InstrumentationManager.manager_getter()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter) * [`InstrumentationManager.post_configure_attribute()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute) * [`InstrumentationManager.remove_state()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state) * [`InstrumentationManager.state_getter()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter) * [`InstrumentationManager.uninstall_descriptor()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor) * [`InstrumentationManager.uninstall_member()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member) * [`InstrumentationManager.unregister()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister) * [`instrumentation_finders`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders) * [`ExtendedInstrumentationRegistry`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html "previous chapter") * **Next:** [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html "ORM Extensions") * **On this page:** * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation) * [API Reference](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#api-reference) * [`INSTRUMENTATION_MANAGER`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER) * [`InstrumentationFactory`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory) * [`InstrumentationManager`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) * [`InstrumentationManager.dict_getter()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter) * [`InstrumentationManager.get_instance_dict()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict) * [`InstrumentationManager.initialize_instance_dict()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict) * [`InstrumentationManager.install_descriptor()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor) * [`InstrumentationManager.install_member()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member) * [`InstrumentationManager.install_state()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state) * [`InstrumentationManager.instrument_attribute()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute) * [`InstrumentationManager.instrument_collection_class()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class) * [`InstrumentationManager.manage()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage) * [`InstrumentationManager.manager_getter()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter) * [`InstrumentationManager.post_configure_attribute()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute) * [`InstrumentationManager.remove_state()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state) * [`InstrumentationManager.state_getter()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter) * [`InstrumentationManager.uninstall_descriptor()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor) * [`InstrumentationManager.uninstall_member()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member) * [`InstrumentationManager.unregister()`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister) * [`instrumentation_finders`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders) * [`ExtendedInstrumentationRegistry`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry) Alternate Class Instrumentation[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation "Link to this heading") ======================================================================================================================================================================= Extensible class instrumentation. The [`sqlalchemy.ext.instrumentation`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation "sqlalchemy.ext.instrumentation") package provides for alternate systems of class instrumentation within the ORM. Class instrumentation refers to how the ORM places attributes on the class which maintain data and track changes to that data, as well as event hooks installed on the class. Note The extension package is provided for the benefit of integration with other object management packages, which already perform their own instrumentation. It is not intended for general use. For examples of how the instrumentation extension is used, see the example [Attribute Instrumentation](https://docs.sqlalchemy.org/en/20/orm/examples.html#examples-instrumentation) . API Reference[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#api-reference "Link to this heading") ----------------------------------------------------------------------------------------------------------------------------- | Object Name | Description | | --- | --- | | [ExtendedInstrumentationRegistry](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry) | Extends [`InstrumentationFactory`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory "sqlalchemy.orm.instrumentation.InstrumentationFactory")
with additional bookkeeping, to accommodate multiple types of class managers. | | [instrumentation\_finders](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders) | An extensible sequence of callables which return instrumentation implementations | | [INSTRUMENTATION\_MANAGER](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER) | Attribute, elects custom instrumentation when present on a mapped class. | | [InstrumentationFactory](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory) | Factory for new ClassManager instances. | | [InstrumentationManager](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) | User-defined class instrumentation extension. | sqlalchemy.ext.instrumentation.INSTRUMENTATION\_MANAGER _\= '\_\_sa\_instrumentation\_manager\_\_'_[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER "Link to this definition") Attribute, elects custom instrumentation when present on a mapped class. Allows a class to specify a slightly or wildly different technique for tracking changes made to mapped attributes and collections. Only one instrumentation implementation is allowed in a given object inheritance hierarchy. The value of this attribute must be a callable and will be passed a class object. The callable must return one of: > * An instance of an [`InstrumentationManager`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager "sqlalchemy.ext.instrumentation.InstrumentationManager") > or subclass > > * An object implementing all or some of InstrumentationManager (TODO) > > * A dictionary of callables, implementing all or some of the above (TODO) > > * An instance of a [`ClassManager`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager "sqlalchemy.orm.ClassManager") > or subclass > This attribute is consulted by SQLAlchemy instrumentation resolution, once the [`sqlalchemy.ext.instrumentation`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation "sqlalchemy.ext.instrumentation") module has been imported. If custom finders are installed in the global instrumentation\_finders list, they may or may not choose to honor this attribute. _class_ sqlalchemy.orm.instrumentation.InstrumentationFactory[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory "Link to this definition") _inherits from_ `sqlalchemy.event.registry.EventTarget` Factory for new ClassManager instances. _class_ sqlalchemy.ext.instrumentation.InstrumentationManager[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager "Link to this definition") User-defined class instrumentation extension. [`InstrumentationManager`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager "sqlalchemy.ext.instrumentation.InstrumentationManager") can be subclassed in order to change how class instrumentation proceeds. This class exists for the purposes of integration with other object management frameworks which would like to entirely modify the instrumentation methodology of the ORM, and is not intended for regular usage. For interception of class instrumentation events, see [`InstrumentationEvents`](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstrumentationEvents "sqlalchemy.orm.InstrumentationEvents") . The API for this class should be considered as semi-stable, and may change slightly with new releases. | Member Name | Description | | --- | --- | | [dict\_getter](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter)
() | | | [get\_instance\_dict](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict)
() | | | [initialize\_instance\_dict](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict)
() | | | [install\_descriptor](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor)
() | | | [install\_member](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member)
() | | | [install\_state](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state)
() | | | [instrument\_attribute](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute)
() | | | [instrument\_collection\_class](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class)
() | | | [manage](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage)
() | | | [manager\_getter](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter)
() | | | [post\_configure\_attribute](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute)
() | | | [remove\_state](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state)
() | | | [state\_getter](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter)
() | | | [uninstall\_descriptor](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor)
() | | | [uninstall\_member](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member)
() | | | [unregister](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister)
() | | _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) dict\_getter(_class\__)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) get\_instance\_dict(_class\__, _instance_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) initialize\_instance\_dict(_class\__, _instance_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) install\_descriptor(_class\__, _key_, _inst_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) install\_member(_class\__, _key_, _implementation_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) install\_state(_class\__, _instance_, _state_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) instrument\_attribute(_class\__, _key_, _inst_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) instrument\_collection\_class(_class\__, _key_, _collection\_class_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) manage(_class\__, _manager_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) manager\_getter(_class\__)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) post\_configure\_attribute(_class\__, _key_, _inst_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) remove\_state(_class\__, _instance_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) state\_getter(_class\__)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) uninstall\_descriptor(_class\__, _key_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) uninstall\_member(_class\__, _key_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member "Link to this definition") _method_ [`sqlalchemy.ext.instrumentation.InstrumentationManager.`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager) unregister(_class\__, _manager_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister "Link to this definition") sqlalchemy.ext.instrumentation.instrumentation\_finders _\= \[\]_[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders "Link to this definition") An extensible sequence of callables which return instrumentation implementations When a class is registered, each callable will be passed a class object. If None is returned, the next finder in the sequence is consulted. Otherwise the return must be an instrumentation factory that follows the same guidelines as sqlalchemy.ext.instrumentation.INSTRUMENTATION\_MANAGER. By default, the only finder is find\_native\_user\_instrumentation\_hook, which searches for INSTRUMENTATION\_MANAGER. If all finders return None, standard ClassManager instrumentation is used. _class_ sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry "Link to this definition") _inherits from_ [`sqlalchemy.orm.instrumentation.InstrumentationFactory`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory "sqlalchemy.orm.instrumentation.InstrumentationFactory") Extends [`InstrumentationFactory`](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory "sqlalchemy.orm.instrumentation.InstrumentationFactory") with additional bookkeeping, to accommodate multiple types of class managers. Previous: [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html "previous chapter") Next: [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Indexable — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * **Indexable**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#) * [Synopsis](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#synopsis) * [Default Values](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#default-values) * [Subclassing](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#subclassing) * [API Reference](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#api-reference) * [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property) * [`index_property.__init__()`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.__init__) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html "previous chapter") * **Next:** [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html "ORM Extensions") * **On this page:** * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable) * [Synopsis](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#synopsis) * [Default Values](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#default-values) * [Subclassing](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#subclassing) * [API Reference](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#api-reference) * [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property) * [`index_property.__init__()`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.__init__) Indexable[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable "Link to this heading") ===================================================================================================================================== Define attributes on ORM-mapped classes that have “index” attributes for columns with [`Indexable`](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") types. “index” means the attribute is associated with an element of an [`Indexable`](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") column with the predefined index to access it. The [`Indexable`](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") types include types such as [`ARRAY`](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") , [`JSON`](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") and [`HSTORE`](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE "sqlalchemy.dialects.postgresql.HSTORE") . The [`indexable`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable "sqlalchemy.ext.indexable") extension provides [`Column`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") \-like interface for any element of an [`Indexable`](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") typed column. In simple cases, it can be treated as a [`Column`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") - mapped attribute. Synopsis[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#synopsis "Link to this heading") ------------------------------------------------------------------------------------------------------------- Given `Person` as a model with a primary key and JSON data field. While this field may have any number of elements encoded within it, we would like to refer to the element called `name` individually as a dedicated attribute which behaves like a standalone column: from sqlalchemy import Column, JSON, Integer from sqlalchemy.ext.declarative import declarative\_base from sqlalchemy.ext.indexable import index\_property Base \= declarative\_base() class Person(Base): \_\_tablename\_\_ \= "person" id \= Column(Integer, primary\_key\=True) data \= Column(JSON) name \= index\_property("data", "name") Above, the `name` attribute now behaves like a mapped column. We can compose a new `Person` and set the value of `name`: \>>> person \= Person(name\="Alchemist") The value is now accessible: \>>> person.name 'Alchemist' Behind the scenes, the JSON field was initialized to a new blank dictionary and the field was set: \>>> person.data {'name': 'Alchemist'} The field is mutable in place: \>>> person.name \= "Renamed" \>>> person.name 'Renamed' \>>> person.data {'name': 'Renamed'} When using [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") , the change that we make to the indexable structure is also automatically tracked as history; we no longer need to use [`MutableDict`](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict "sqlalchemy.ext.mutable.MutableDict") in order to track this change for the unit of work. Deletions work normally as well: \>>> del person.name \>>> person.data {} Above, deletion of `person.name` deletes the value from the dictionary, but not the dictionary itself. A missing key will produce `AttributeError`: \>>> person \= Person() \>>> person.name AttributeError: 'name' Unless you set a default value: \>>> class Person(Base): ... \_\_tablename\_\_ \= "person" ... ... id \= Column(Integer, primary\_key\=True) ... data \= Column(JSON) ... ... name \= index\_property("data", "name", default\=None) \# See default \>>> person \= Person() \>>> print(person.name) None The attributes are also accessible at the class level. Below, we illustrate `Person.name` used to generate an indexed SQL criteria: \>>> from sqlalchemy.orm import Session \>>> session \= Session() \>>> query \= session.query(Person).filter(Person.name \== "Alchemist") The above query is equivalent to: \>>> query \= session.query(Person).filter(Person.data\["name"\] \== "Alchemist") Multiple [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") objects can be chained to produce multiple levels of indexing: from sqlalchemy import Column, JSON, Integer from sqlalchemy.ext.declarative import declarative\_base from sqlalchemy.ext.indexable import index\_property Base \= declarative\_base() class Person(Base): \_\_tablename\_\_ \= "person" id \= Column(Integer, primary\_key\=True) data \= Column(JSON) birthday \= index\_property("data", "birthday") year \= index\_property("birthday", "year") month \= index\_property("birthday", "month") day \= index\_property("birthday", "day") Above, a query such as: q \= session.query(Person).filter(Person.year \== "1980") On a PostgreSQL backend, the above query will render as: SELECT person.id, person.data FROM person WHERE person.data \-> %(data\_1)s \-> %(param\_1)s \= %(param\_2)s Default Values[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#default-values "Link to this heading") ------------------------------------------------------------------------------------------------------------------------- [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") includes special behaviors for when the indexed data structure does not exist, and a set operation is called: * For an [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") that is given an integer index value, the default data structure will be a Python list of `None` values, at least as long as the index value; the value is then set at its place in the list. This means for an index value of zero, the list will be initialized to `[None]` before setting the given value, and for an index value of five, the list will be initialized to `[None, None, None, None, None]` before setting the fifth element to the given value. Note that an existing list is **not** extended in place to receive a value. * for an [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") that is given any other kind of index value (e.g. strings usually), a Python dictionary is used as the default data structure. * The default data structure can be set to any Python callable using the [`index_property.datatype`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.datatype "sqlalchemy.ext.indexable.index_property") parameter, overriding the previous rules. Subclassing[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#subclassing "Link to this heading") ------------------------------------------------------------------------------------------------------------------- [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") can be subclassed, in particular for the common use case of providing coercion of values or SQL expressions as they are accessed. Below is a common recipe for use with a PostgreSQL JSON type, where we want to also include automatic casting plus `astext()`: class pg\_json\_property(index\_property): def \_\_init\_\_(self, attr\_name, index, cast\_type): super(pg\_json\_property, self).\_\_init\_\_(attr\_name, index) self.cast\_type \= cast\_type def expr(self, model): expr \= super(pg\_json\_property, self).expr(model) return expr.astext.cast(self.cast\_type) The above subclass can be used with the PostgreSQL-specific version of [`JSON`](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON "sqlalchemy.dialects.postgresql.JSON") : from sqlalchemy import Column, Integer from sqlalchemy.ext.declarative import declarative\_base from sqlalchemy.dialects.postgresql import JSON Base \= declarative\_base() class Person(Base): \_\_tablename\_\_ \= "person" id \= Column(Integer, primary\_key\=True) data \= Column(JSON) age \= pg\_json\_property("data", "age", Integer) The `age` attribute at the instance level works as before; however when rendering SQL, PostgreSQL’s `->>` operator will be used for indexed access, instead of the usual index operator of `->`: \>>> query \= session.query(Person).filter(Person.age < 20) The above query will render: SELECT person.id, person.data FROM person WHERE CAST(person.data \->> %(data\_1)s AS INTEGER) < %(param\_1)s API Reference[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#api-reference "Link to this heading") ----------------------------------------------------------------------------------------------------------------------- | Object Name | Description | | --- | --- | | [index\_property](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property) | A property generator. The generated property describes an object attribute that corresponds to an [`Indexable`](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable")
column. | _class_ sqlalchemy.ext.indexable.index\_property[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "Link to this definition") _inherits from_ [`sqlalchemy.ext.hybrid.hybrid_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property "sqlalchemy.ext.hybrid.hybrid_property") A property generator. The generated property describes an object attribute that corresponds to an [`Indexable`](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") column. See also [`sqlalchemy.ext.indexable`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable "sqlalchemy.ext.indexable") | Member Name | Description | | --- | --- | | [\_\_init\_\_](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.__init__)
() | Create a new [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property")
. | _method_ [`sqlalchemy.ext.indexable.index_property.`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property) \_\_init\_\_(_attr\_name: str_, _index: int | str_, _default: ~sqlalchemy.ext.indexable.\_T \= _, _datatype: ~typing.Callable\[\[\]_, _~typing.Any\] | None \= None_, _mutable: bool \= True_, _onebased: bool \= True_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.__init__ "Link to this definition") Create a new [`index_property`](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property "sqlalchemy.ext.indexable.index_property") . Parameters: * **attr\_name**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.attr_name) – An attribute name of an Indexable typed column, or other attribute that returns an indexable structure. * **index**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.index) – The index to be used for getting and setting this value. This should be the Python-side index value for integers. * **default**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.default) – A value which will be returned instead of AttributeError when there is not a value at given index. * **datatype**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.datatype) – default datatype to use when the field is empty. By default, this is derived from the type of index used; a Python list for an integer index, or a Python dictionary for any other style of index. For a list, the list will be initialized to a list of None values that is at least `index` elements long. * **mutable**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.mutable) – if False, writes and deletes to the attribute will be disallowed. * **onebased**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.onebased) – assume the SQL representation of this value is one-based; that is, the first index in SQL is 1, not zero. Previous: [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html "previous chapter") Next: [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Horizontal Sharding — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * **Horizontal Sharding**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#) * [API Documentation](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#api-documentation) * [`ShardedSession`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession) * [`ShardedSession.__init__()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.__init__) * [`ShardedSession.connection_callable()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable) * [`ShardedSession.get_bind()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind) * [`set_shard_id`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id) * [`set_shard_id.__init__()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.__init__) * [`set_shard_id.propagate_to_loaders`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.propagate_to_loaders) * [`ShardedQuery`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery) * [`ShardedQuery.set_shard()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html "previous chapter") * **Next:** [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html "SQLAlchemy ORM") * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html "ORM Extensions") * **On this page:** * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#module-sqlalchemy.ext.horizontal_shard) * [API Documentation](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#api-documentation) * [`ShardedSession`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession) * [`ShardedSession.__init__()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.__init__) * [`ShardedSession.connection_callable()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable) * [`ShardedSession.get_bind()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind) * [`set_shard_id`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id) * [`set_shard_id.__init__()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.__init__) * [`set_shard_id.propagate_to_loaders`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.propagate_to_loaders) * [`ShardedQuery`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery) * [`ShardedQuery.set_shard()`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard) Horizontal Sharding[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#module-sqlalchemy.ext.horizontal_shard "Link to this heading") ============================================================================================================================================================= Horizontal sharding support. Defines a rudimental ‘horizontal sharding’ system which allows a Session to distribute queries and persistence operations across multiple databases. For a usage example, see the [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/examples.html#examples-sharding) example included in the source distribution. Deep Alchemy The horizontal sharding extension is an advanced feature, involving a complex statement -> database interaction as well as use of semi-public APIs for non-trivial cases. Simpler approaches to referring to multiple database “shards”, most commonly using a distinct [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") per “shard”, should always be considered first before using this more complex and less-production-tested system. API Documentation[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#api-documentation "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------------- | Object Name | Description | | --- | --- | | [set\_shard\_id](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id) | a loader option for statements to apply a specific shard id to the primary query as well as for additional relationship and column loaders. | | [ShardedQuery](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery) | Query class used with [`ShardedSession`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession "sqlalchemy.ext.horizontal_shard.ShardedSession")
. | | [ShardedSession](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession) | | _class_ sqlalchemy.ext.horizontal\_shard.ShardedSession[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession "Link to this definition") _inherits from_ [`sqlalchemy.orm.session.Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.session.Session") | Member Name | Description | | --- | --- | | [\_\_init\_\_](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.__init__)
() | Construct a ShardedSession. | | [connection\_callable](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable)
() | Provide a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection")
to use in the unit of work flush process. | | [get\_bind](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind)
() | Return a “bind” to which this [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session")
is bound. | _method_ [`sqlalchemy.ext.horizontal_shard.ShardedSession.`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession) \_\_init\_\_(_shard\_chooser: ShardChooser, identity\_chooser: Optional\[IdentityChooser\] \= None, execute\_chooser: Optional\[Callable\[\[ORMExecuteState\], Iterable\[Any\]\]\] \= None, shards: Optional\[Dict\[str, Any\]\] \= None, query\_cls: Type\[Query\[\_T\]\] \= , \*, id\_chooser: Optional\[Callable\[\[Query\[\_T\], Iterable\[\_T\]\], Iterable\[Any\]\]\] \= None, query\_chooser: Optional\[Callable\[\[Executable\], Iterable\[Any\]\]\] \= None, \*\*kwargs: Any_) → None[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.__init__ "Link to this definition") Construct a ShardedSession. Parameters: * **shard\_chooser**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shard_chooser) – A callable which, passed a Mapper, a mapped instance, and possibly a SQL clause, returns a shard ID. This id may be based off of the attributes present within the object, or on some round-robin scheme. If the scheme is based on a selection, it should set whatever state on the instance to mark it in the future as participating in that shard. * **identity\_chooser**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.identity_chooser) – A callable, passed a Mapper and primary key argument, which should return a list of shard ids where this primary key might reside. > Changed in version 2.0: The `identity_chooser` parameter supersedes the `id_chooser` parameter. * **execute\_chooser**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.execute_chooser) – For a given [`ORMExecuteState`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") , returns the list of shard\_ids where the query should be issued. Results from all shards returned will be combined together into a single listing. Changed in version 1.4: The `execute_chooser` parameter supersedes the `query_chooser` parameter. * **shards**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shards) – A dictionary of string shard names to [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") objects. _method_ [`sqlalchemy.ext.horizontal_shard.ShardedSession.`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession) connection\_callable(_mapper: [Mapper](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") \[\_T\] | None \= None_, _instance: Any | None \= None_, _shard\_id: ShardIdentifier | None \= None_, _\*\*kw: Any_) → [Connection](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") [¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable "Link to this definition") Provide a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") to use in the unit of work flush process. _method_ [`sqlalchemy.ext.horizontal_shard.ShardedSession.`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession) get\_bind(_mapper: \_EntityBindKey\[\_O\] | None \= None_, _\*_, _shard\_id: ShardIdentifier | None \= None_, _instance: Any | None \= None_, _clause: [ClauseElement](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") | None \= None_, _\*\*kw: Any_) → \_SessionBind[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind "Link to this definition") Return a “bind” to which this [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is bound. The “bind” is usually an instance of [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") , except in the case where the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") has been explicitly bound directly to a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") . For a multiply-bound or unbound [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , the `mapper` or `clause` arguments are used to determine the appropriate bind to return. Note that the “mapper” argument is usually present when [`Session.get_bind()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") is called via an ORM operation such as a [`Session.query()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.query "sqlalchemy.orm.Session.query") , each individual INSERT/UPDATE/DELETE operation within a [`Session.flush()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.flush "sqlalchemy.orm.Session.flush") , call, etc. The order of resolution is: 1. if mapper given and [`Session.binds`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.binds "sqlalchemy.orm.Session") is present, locate a bind based first on the mapper in use, then on the mapped class in use, then on any base classes that are present in the `__mro__` of the mapped class, from more specific superclasses to more general. 2. if clause given and `Session.binds` is present, locate a bind based on [`Table`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") objects found in the given clause present in `Session.binds`. 3. if `Session.binds` is present, return that. 4. if clause given, attempt to return a bind linked to the [`MetaData`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") ultimately associated with the clause. 5. if mapper given, attempt to return a bind linked to the [`MetaData`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") ultimately associated with the [`Table`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") or other selectable to which the mapper is mapped. 6. No bind can be found, [`UnboundExecutionError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError "sqlalchemy.exc.UnboundExecutionError") is raised. Note that the [`Session.get_bind()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") method can be overridden on a user-defined subclass of [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to provide any kind of bind resolution scheme. See the example at [Custom Vertical Partitioning](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#session-custom-partitioning) . Parameters: * **mapper**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.mapper) – Optional mapped class or corresponding [`Mapper`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") instance. The bind can be derived from a [`Mapper`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") first by consulting the “binds” map associated with this [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , and secondly by consulting the [`MetaData`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") associated with the [`Table`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") to which the [`Mapper`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") is mapped for a bind. * **clause**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.clause) – A [`ClauseElement`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") (i.e. [`select()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") , [`text()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") , etc.). If the `mapper` argument is not present or could not produce a bind, the given expression construct will be searched for a bound element, typically a [`Table`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") associated with bound [`MetaData`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") . See also [Partitioning Strategies (e.g. multiple database backends per Session)](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html#session-partitioning) [`Session.binds`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.binds "sqlalchemy.orm.Session") [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper "sqlalchemy.orm.Session.bind_mapper") [`Session.bind_table()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_table "sqlalchemy.orm.Session.bind_table") _class_ sqlalchemy.ext.horizontal\_shard.set\_shard\_id[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id "Link to this definition") _inherits from_ `sqlalchemy.orm.ORMOption` a loader option for statements to apply a specific shard id to the primary query as well as for additional relationship and column loaders. The [`set_shard_id`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id "sqlalchemy.ext.horizontal_shard.set_shard_id") option may be applied using the [`Executable.options()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Executable.options "sqlalchemy.sql.expression.Executable.options") method of any executable statement: stmt \= ( select(MyObject) .where(MyObject.name \== "some name") .options(set\_shard\_id("shard1")) ) Above, the statement when invoked will limit to the “shard1” shard identifier for the primary query as well as for all relationship and column loading strategies, including eager loaders such as [`selectinload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.selectinload "sqlalchemy.orm.selectinload") , deferred column loaders like [`defer()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.defer "sqlalchemy.orm.defer") , and the lazy relationship loader [`lazyload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.lazyload "sqlalchemy.orm.lazyload") . In this way, the [`set_shard_id`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id "sqlalchemy.ext.horizontal_shard.set_shard_id") option has much wider scope than using the “shard\_id” argument within the [`Session.execute.bind_arguments`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute.params.bind_arguments "sqlalchemy.orm.Session.execute") dictionary. Added in version 2.0.0. | Member Name | Description | | --- | --- | | [\_\_init\_\_](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.__init__)
() | Construct a [`set_shard_id`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id "sqlalchemy.ext.horizontal_shard.set_shard_id")
option. | | [propagate\_to\_loaders](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.propagate_to_loaders) | if True, indicate this option should be carried along to “secondary” SELECT statements that occur for relationship lazy loaders as well as attribute load / refresh operations. | _method_ [`sqlalchemy.ext.horizontal_shard.set_shard_id.`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id) \_\_init\_\_(_shard\_id: str_, _propagate\_to\_loaders: bool \= True_)[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.__init__ "Link to this definition") Construct a [`set_shard_id`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id "sqlalchemy.ext.horizontal_shard.set_shard_id") option. Parameters: * **shard\_id**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.params.shard_id) – shard identifier * **propagate\_to\_loaders**[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.params.propagate_to_loaders) – if left at its default of `True`, the shard option will take place for lazy loaders such as [`lazyload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.lazyload "sqlalchemy.orm.lazyload") and [`defer()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.defer "sqlalchemy.orm.defer") ; if False, the option will not be propagated to loaded objects. Note that [`defer()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.defer "sqlalchemy.orm.defer") always limits to the shard\_id of the parent row in any case, so the parameter only has a net effect on the behavior of the [`lazyload()`](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.lazyload "sqlalchemy.orm.lazyload") strategy. _attribute_ [`sqlalchemy.ext.horizontal_shard.set_shard_id.`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id) propagate\_to\_loaders[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.propagate_to_loaders "Link to this definition") if True, indicate this option should be carried along to “secondary” SELECT statements that occur for relationship lazy loaders as well as attribute load / refresh operations. _class_ sqlalchemy.ext.horizontal\_shard.ShardedQuery[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery "Link to this definition") _inherits from_ [`sqlalchemy.orm.Query`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") Query class used with [`ShardedSession`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession "sqlalchemy.ext.horizontal_shard.ShardedSession") . Legacy Feature The [`ShardedQuery`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery "sqlalchemy.ext.horizontal_shard.ShardedQuery") is a subclass of the legacy [`Query`](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") class. The [`ShardedSession`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession "sqlalchemy.ext.horizontal_shard.ShardedSession") now supports 2.0 style execution via the `ShardedSession.execute()` method. | Member Name | Description | | --- | --- | | [set\_shard](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard)
() | Return a new query, limited to a single shard ID. | _method_ [`sqlalchemy.ext.horizontal_shard.ShardedQuery.`](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery) set\_shard(_shard\_id: str_) → Self[¶](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard "Link to this definition") Return a new query, limited to a single shard ID. All subsequent operations with the returned query will be against the single shard regardless of other state. The shard\_id can be passed for a 2.0 style execution to the bind\_arguments dictionary of [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") : results \= session.execute(stmt, bind\_arguments\={"shard\_id": "my\_shard"}) Previous: [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html "previous chapter") Next: [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Table of Contents — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html "SQLAlchemy 2.0 Documentation") * [Overview](https://docs.sqlalchemy.org/en/20/intro.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/20/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/20/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/20/changelog/index.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Next:** [Overview](https://docs.sqlalchemy.org/en/20/intro.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * **On this page:** * [Table of Contents](https://docs.sqlalchemy.org/en/20/contents.html#table-of-contents) * [Indices and tables](https://docs.sqlalchemy.org/en/20/contents.html#indices-and-tables) Table of Contents[¶](https://docs.sqlalchemy.org/en/20/contents.html#table-of-contents "Link to this heading") =============================================================================================================== Full table of contents. For a high level overview of all documentation, see [SQLAlchemy Documentation](https://docs.sqlalchemy.org/en/20/index.html) . * [Overview](https://docs.sqlalchemy.org/en/20/intro.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html) * [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/20/tutorial/engine.html) * [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html) * [Working with Database Metadata](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html) * [Working with Data](https://docs.sqlalchemy.org/en/20/tutorial/data.html) * [Using INSERT Statements](https://docs.sqlalchemy.org/en/20/tutorial/data_insert.html) * [Using SELECT Statements](https://docs.sqlalchemy.org/en/20/tutorial/data_select.html) * [Using UPDATE and DELETE Statements](https://docs.sqlalchemy.org/en/20/tutorial/data_update.html) * [Data Manipulation with the ORM](https://docs.sqlalchemy.org/en/20/tutorial/orm_data_manipulation.html) * [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/20/tutorial/orm_related_objects.html) * [Further Reading](https://docs.sqlalchemy.org/en/20/tutorial/further_reading.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/20/orm/index.html) * [ORM Quick Start](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/20/orm/mapper_config.html) * [ORM Mapped Class Overview](https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html) * [Mapping Classes with Declarative](https://docs.sqlalchemy.org/en/20/orm/declarative_mapping.html) * [Declarative Mapping Styles](https://docs.sqlalchemy.org/en/20/orm/declarative_styles.html) * [Table Configuration with Declarative](https://docs.sqlalchemy.org/en/20/orm/declarative_tables.html) * [Mapper Configuration with Declarative](https://docs.sqlalchemy.org/en/20/orm/declarative_config.html) * [Composing Mapped Hierarchies with Mixins](https://docs.sqlalchemy.org/en/20/orm/declarative_mixins.html) * [Integration with dataclasses and attrs](https://docs.sqlalchemy.org/en/20/orm/dataclasses.html) * [SQL Expressions as Mapped Attributes](https://docs.sqlalchemy.org/en/20/orm/mapped_sql_expr.html) * [Changing Attribute Behavior](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html) * [Composite Column Types](https://docs.sqlalchemy.org/en/20/orm/composites.html) * [Mapping Class Inheritance Hierarchies](https://docs.sqlalchemy.org/en/20/orm/inheritance.html) * [Non-Traditional Mappings](https://docs.sqlalchemy.org/en/20/orm/nonstandard_mappings.html) * [Configuring a Version Counter](https://docs.sqlalchemy.org/en/20/orm/versioning.html) * [Class Mapping API](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html) * [Mapping SQL Expressions](https://docs.sqlalchemy.org/en/20/orm/scalar_mapping.html) * [Mapping Table Columns](https://docs.sqlalchemy.org/en/20/orm/mapping_columns.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/20/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/20/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/20/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/20/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/20/orm/collection_api.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/20/orm/relationship_persistence.html) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/20/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/20/orm/queryguide/index.html) * [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/20/orm/queryguide/select.html) * [Writing SELECT statements for Inheritance Mappings](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html) * [ORM-Enabled INSERT, UPDATE, and DELETE statements](https://docs.sqlalchemy.org/en/20/orm/queryguide/dml.html) * [Column Loading Options](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html) * [ORM API Features for Querying](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html) * [Legacy Query API](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html) * [Using the Session](https://docs.sqlalchemy.org/en/20/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/20/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/20/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/20/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/20/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/20/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/20/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/20/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/20/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/20/orm/extending.html) * [ORM Events](https://docs.sqlalchemy.org/en/20/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/20/orm/internals.html) * [ORM Exceptions](https://docs.sqlalchemy.org/en/20/orm/exceptions.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/20/orm/examples.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/20/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/20/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/20/core/operators.html) * [SELECT and Related Constructs](https://docs.sqlalchemy.org/en/20/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/20/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/20/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/20/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/20/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/20/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/20/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/20/core/schema.html) * [Describing Databases with MetaData](https://docs.sqlalchemy.org/en/20/core/metadata.html) * [Reflecting Database Objects](https://docs.sqlalchemy.org/en/20/core/reflection.html) * [Column INSERT/UPDATE Defaults](https://docs.sqlalchemy.org/en/20/core/defaults.html) * [Defining Constraints and Indexes](https://docs.sqlalchemy.org/en/20/core/constraints.html) * [Customizing DDL](https://docs.sqlalchemy.org/en/20/core/ddl.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/20/core/types.html) * [The Type Hierarchy](https://docs.sqlalchemy.org/en/20/core/type_basics.html) * [Custom Types](https://docs.sqlalchemy.org/en/20/core/custom_types.html) * [Base Type API](https://docs.sqlalchemy.org/en/20/core/type_api.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/20/core/engines_connections.html) * [Engine Configuration](https://docs.sqlalchemy.org/en/20/core/engines.html) * [Working with Engines and Connections](https://docs.sqlalchemy.org/en/20/core/connections.html) * [Connection Pooling](https://docs.sqlalchemy.org/en/20/core/pooling.html) * [Core Events](https://docs.sqlalchemy.org/en/20/core/events.html) * [Core API Basics](https://docs.sqlalchemy.org/en/20/core/api_basics.html) * [Events](https://docs.sqlalchemy.org/en/20/core/event.html) * [Runtime Inspection API](https://docs.sqlalchemy.org/en/20/core/inspection.html) * [Core Exceptions](https://docs.sqlalchemy.org/en/20/core/exceptions.html) * [Core Internals](https://docs.sqlalchemy.org/en/20/core/internals.html) * [Dialects](https://docs.sqlalchemy.org/en/20/dialects/index.html) * [PostgreSQL](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html) * [MySQL and MariaDB](https://docs.sqlalchemy.org/en/20/dialects/mysql.html) * [SQLite](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html) * [Oracle](https://docs.sqlalchemy.org/en/20/dialects/oracle.html) * [Microsoft SQL Server](https://docs.sqlalchemy.org/en/20/dialects/mssql.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/20/faq/index.html) * [Installation](https://docs.sqlalchemy.org/en/20/faq/installation.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/20/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/20/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/20/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/20/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/20/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/20/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/20/faq/thirdparty.html) * [Error Messages](https://docs.sqlalchemy.org/en/20/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/20/changelog/index.html) * [SQLAlchemy 2.0 - Major Migration Guide](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html) * [What’s New in SQLAlchemy 2.0?](https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html) * [2.0 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html) * [1.4 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_14.html) * [1.3 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_13.html) * [1.2 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_12.html) * [1.1 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_11.html) * [1.0 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_10.html) * [0.9 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_09.html) * [0.8 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_08.html) * [0.7 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_07.html) * [0.6 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_06.html) * [0.5 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_05.html) * [0.4 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_04.html) * [0.3 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_03.html) * [0.2 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_02.html) * [0.1 Changelog](https://docs.sqlalchemy.org/en/20/changelog/changelog_01.html) * [What’s New in SQLAlchemy 1.4?](https://docs.sqlalchemy.org/en/20/changelog/migration_14.html) * [What’s New in SQLAlchemy 1.3?](https://docs.sqlalchemy.org/en/20/changelog/migration_13.html) * [What’s New in SQLAlchemy 1.2?](https://docs.sqlalchemy.org/en/20/changelog/migration_12.html) * [What’s New in SQLAlchemy 1.1?](https://docs.sqlalchemy.org/en/20/changelog/migration_11.html) * [What’s New in SQLAlchemy 1.0?](https://docs.sqlalchemy.org/en/20/changelog/migration_10.html) * [What’s New in SQLAlchemy 0.9?](https://docs.sqlalchemy.org/en/20/changelog/migration_09.html) * [What’s New in SQLAlchemy 0.8?](https://docs.sqlalchemy.org/en/20/changelog/migration_08.html) * [What’s New in SQLAlchemy 0.7?](https://docs.sqlalchemy.org/en/20/changelog/migration_07.html) * [What’s New in SQLAlchemy 0.6?](https://docs.sqlalchemy.org/en/20/changelog/migration_06.html) * [What’s new in SQLAlchemy 0.5?](https://docs.sqlalchemy.org/en/20/changelog/migration_05.html) * [What’s new in SQLAlchemy 0.4?](https://docs.sqlalchemy.org/en/20/changelog/migration_04.html) Indices and tables[¶](https://docs.sqlalchemy.org/en/20/contents.html#indices-and-tables "Link to this heading") ----------------------------------------------------------------------------------------------------------------- * [Glossary](https://docs.sqlalchemy.org/en/20/glossary.html#glossary) * [Index](https://docs.sqlalchemy.org/en/20/genindex.html) Next: [Overview](https://docs.sqlalchemy.org/en/20/intro.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Table of Contents — SQLAlchemy 2.1 Documentation Release: 2.1.0b1 in development | Release Date: **not released yet** [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html) ============================================================================= ### [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html) in development [Home](https://docs.sqlalchemy.org/en/21/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/21/sqlalchemy_21.zip) Search terms: ### [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html "SQLAlchemy 2.1 Documentation") * [Overview](https://docs.sqlalchemy.org/en/21/intro.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/21/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/21/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/21/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/21/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/21/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/21/changelog/index.html) #### Project Versions * [2.1.0b1](https://docs.sqlalchemy.org/en/21/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/21/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/21/sqlalchemy_21.zip) * **Next:** [Overview](https://docs.sqlalchemy.org/en/21/intro.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/21/index.html) * **On this page:** * [Table of Contents](https://docs.sqlalchemy.org/en/21/contents.html#table-of-contents) * [Indices and tables](https://docs.sqlalchemy.org/en/21/contents.html#indices-and-tables) Table of Contents[¶](https://docs.sqlalchemy.org/en/21/contents.html#table-of-contents "Link to this heading") =============================================================================================================== Full table of contents. For a high level overview of all documentation, see [SQLAlchemy Documentation](https://docs.sqlalchemy.org/en/21/index.html) . * [Overview](https://docs.sqlalchemy.org/en/21/intro.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html) * [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/21/tutorial/engine.html) * [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/21/tutorial/dbapi_transactions.html) * [Working with Database Metadata](https://docs.sqlalchemy.org/en/21/tutorial/metadata.html) * [Working with Data](https://docs.sqlalchemy.org/en/21/tutorial/data.html) * [Using INSERT Statements](https://docs.sqlalchemy.org/en/21/tutorial/data_insert.html) * [Using SELECT Statements](https://docs.sqlalchemy.org/en/21/tutorial/data_select.html) * [Using UPDATE and DELETE Statements](https://docs.sqlalchemy.org/en/21/tutorial/data_update.html) * [Data Manipulation with the ORM](https://docs.sqlalchemy.org/en/21/tutorial/orm_data_manipulation.html) * [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/21/tutorial/orm_related_objects.html) * [Further Reading](https://docs.sqlalchemy.org/en/21/tutorial/further_reading.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/21/orm/index.html) * [ORM Quick Start](https://docs.sqlalchemy.org/en/21/orm/quickstart.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/21/orm/mapper_config.html) * [ORM Mapped Class Overview](https://docs.sqlalchemy.org/en/21/orm/mapping_styles.html) * [Mapping Classes with Declarative](https://docs.sqlalchemy.org/en/21/orm/declarative_mapping.html) * [Declarative Mapping Styles](https://docs.sqlalchemy.org/en/21/orm/declarative_styles.html) * [Table Configuration with Declarative](https://docs.sqlalchemy.org/en/21/orm/declarative_tables.html) * [Mapper Configuration with Declarative](https://docs.sqlalchemy.org/en/21/orm/declarative_config.html) * [Composing Mapped Hierarchies with Mixins](https://docs.sqlalchemy.org/en/21/orm/declarative_mixins.html) * [Integration with dataclasses and attrs](https://docs.sqlalchemy.org/en/21/orm/dataclasses.html) * [SQL Expressions as Mapped Attributes](https://docs.sqlalchemy.org/en/21/orm/mapped_sql_expr.html) * [Changing Attribute Behavior](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html) * [Composite Column Types](https://docs.sqlalchemy.org/en/21/orm/composites.html) * [Mapping Class Inheritance Hierarchies](https://docs.sqlalchemy.org/en/21/orm/inheritance.html) * [Non-Traditional Mappings](https://docs.sqlalchemy.org/en/21/orm/nonstandard_mappings.html) * [Configuring a Version Counter](https://docs.sqlalchemy.org/en/21/orm/versioning.html) * [Class Mapping API](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html) * [Mapping SQL Expressions](https://docs.sqlalchemy.org/en/21/orm/scalar_mapping.html) * [Mapping Table Columns](https://docs.sqlalchemy.org/en/21/orm/mapping_columns.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/21/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/21/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/21/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/21/orm/join_conditions.html) * [Working with Large Collections](https://docs.sqlalchemy.org/en/21/orm/large_collections.html) * [Collection Customization and API Details](https://docs.sqlalchemy.org/en/21/orm/collection_api.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/21/orm/relationship_persistence.html) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/21/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/21/orm/queryguide/index.html) * [Writing SELECT statements for ORM Mapped Classes](https://docs.sqlalchemy.org/en/21/orm/queryguide/select.html) * [Writing SELECT statements for Inheritance Mappings](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html) * [ORM-Enabled INSERT, UPDATE, and DELETE statements](https://docs.sqlalchemy.org/en/21/orm/queryguide/dml.html) * [Column Loading Options](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html) * [ORM API Features for Querying](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html) * [Legacy Query API](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html) * [Using the Session](https://docs.sqlalchemy.org/en/21/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/21/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/21/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/21/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/21/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/21/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/21/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/21/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/21/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/21/orm/extending.html) * [ORM Events](https://docs.sqlalchemy.org/en/21/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/21/orm/internals.html) * [ORM Exceptions](https://docs.sqlalchemy.org/en/21/orm/exceptions.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/21/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html) * [Core and ORM Examples](https://docs.sqlalchemy.org/en/21/orm/examples.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/21/core/index.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/21/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/21/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/21/core/operators.html) * [SELECT and Related Constructs](https://docs.sqlalchemy.org/en/21/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/21/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/21/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/21/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/21/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/21/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/21/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/21/core/schema.html) * [Describing Databases with MetaData](https://docs.sqlalchemy.org/en/21/core/metadata.html) * [Reflecting Database Objects](https://docs.sqlalchemy.org/en/21/core/reflection.html) * [Column INSERT/UPDATE Defaults](https://docs.sqlalchemy.org/en/21/core/defaults.html) * [Defining Constraints and Indexes](https://docs.sqlalchemy.org/en/21/core/constraints.html) * [Customizing DDL](https://docs.sqlalchemy.org/en/21/core/ddl.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/21/core/types.html) * [The Type Hierarchy](https://docs.sqlalchemy.org/en/21/core/type_basics.html) * [Custom Types](https://docs.sqlalchemy.org/en/21/core/custom_types.html) * [Base Type API](https://docs.sqlalchemy.org/en/21/core/type_api.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/21/core/engines_connections.html) * [Engine Configuration](https://docs.sqlalchemy.org/en/21/core/engines.html) * [Working with Engines and Connections](https://docs.sqlalchemy.org/en/21/core/connections.html) * [Connection Pooling](https://docs.sqlalchemy.org/en/21/core/pooling.html) * [Core Events](https://docs.sqlalchemy.org/en/21/core/events.html) * [Core API Basics](https://docs.sqlalchemy.org/en/21/core/api_basics.html) * [Events](https://docs.sqlalchemy.org/en/21/core/event.html) * [Runtime Inspection API](https://docs.sqlalchemy.org/en/21/core/inspection.html) * [Core Exceptions](https://docs.sqlalchemy.org/en/21/core/exceptions.html) * [Core Internals](https://docs.sqlalchemy.org/en/21/core/internals.html) * [Dialects](https://docs.sqlalchemy.org/en/21/dialects/index.html) * [PostgreSQL](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html) * [MySQL and MariaDB](https://docs.sqlalchemy.org/en/21/dialects/mysql.html) * [SQLite](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html) * [Oracle](https://docs.sqlalchemy.org/en/21/dialects/oracle.html) * [Microsoft SQL Server](https://docs.sqlalchemy.org/en/21/dialects/mssql.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/21/faq/index.html) * [Installation](https://docs.sqlalchemy.org/en/21/faq/installation.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/21/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/21/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/21/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/21/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/21/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/21/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/21/faq/thirdparty.html) * [Error Messages](https://docs.sqlalchemy.org/en/21/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/21/changelog/index.html) * [What’s New in SQLAlchemy 2.1?](https://docs.sqlalchemy.org/en/21/changelog/migration_21.html) * [2.1 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_21.html) * [2.0 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_20.html) * [1.4 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_14.html) * [1.3 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_13.html) * [1.2 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_12.html) * [1.1 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_11.html) * [1.0 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_10.html) * [0.9 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_09.html) * [0.8 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_08.html) * [0.7 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_07.html) * [0.6 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_06.html) * [0.5 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_05.html) * [0.4 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_04.html) * [0.3 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_03.html) * [0.2 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_02.html) * [0.1 Changelog](https://docs.sqlalchemy.org/en/21/changelog/changelog_01.html) * [SQLAlchemy 2.0 - Major Migration Guide](https://docs.sqlalchemy.org/en/21/changelog/migration_20.html) * [What’s New in SQLAlchemy 2.0?](https://docs.sqlalchemy.org/en/21/changelog/whatsnew_20.html) * [What’s New in SQLAlchemy 1.4?](https://docs.sqlalchemy.org/en/21/changelog/migration_14.html) * [What’s New in SQLAlchemy 1.3?](https://docs.sqlalchemy.org/en/21/changelog/migration_13.html) * [What’s New in SQLAlchemy 1.2?](https://docs.sqlalchemy.org/en/21/changelog/migration_12.html) * [What’s New in SQLAlchemy 1.1?](https://docs.sqlalchemy.org/en/21/changelog/migration_11.html) * [What’s New in SQLAlchemy 1.0?](https://docs.sqlalchemy.org/en/21/changelog/migration_10.html) * [What’s New in SQLAlchemy 0.9?](https://docs.sqlalchemy.org/en/21/changelog/migration_09.html) * [What’s New in SQLAlchemy 0.8?](https://docs.sqlalchemy.org/en/21/changelog/migration_08.html) * [What’s New in SQLAlchemy 0.7?](https://docs.sqlalchemy.org/en/21/changelog/migration_07.html) * [What’s New in SQLAlchemy 0.6?](https://docs.sqlalchemy.org/en/21/changelog/migration_06.html) * [What’s new in SQLAlchemy 0.5?](https://docs.sqlalchemy.org/en/21/changelog/migration_05.html) * [What’s new in SQLAlchemy 0.4?](https://docs.sqlalchemy.org/en/21/changelog/migration_04.html) Indices and tables[¶](https://docs.sqlalchemy.org/en/21/contents.html#indices-and-tables "Link to this heading") ----------------------------------------------------------------------------------------------------------------- * [Glossary](https://docs.sqlalchemy.org/en/21/glossary.html#glossary) * [Index](https://docs.sqlalchemy.org/en/21/genindex.html) Next: [Overview](https://docs.sqlalchemy.org/en/21/intro.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/21/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:01:18 PM EST --- # Table of Contents — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html "SQLAlchemy 1.4 Documentation") * [Overview](https://docs.sqlalchemy.org/en/14/intro.html) * [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/14/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/14/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/14/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/14/changelog/index.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Next:** [Overview](https://docs.sqlalchemy.org/en/14/intro.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * **On this page:** * [Table of Contents](https://docs.sqlalchemy.org/en/14/contents.html#table-of-contents) * [Indices and tables](https://docs.sqlalchemy.org/en/14/contents.html#indices-and-tables) Table of Contents[¶](https://docs.sqlalchemy.org/en/14/contents.html#table-of-contents "Link to this heading") =============================================================================================================== Full table of contents. For a high level overview of all documentation, see [SQLAlchemy Documentation](https://docs.sqlalchemy.org/en/14/index.html) . * [Overview](https://docs.sqlalchemy.org/en/14/intro.html) * [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html) * [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/14/tutorial/engine.html) * [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/14/tutorial/dbapi_transactions.html) * [Working with Database Metadata](https://docs.sqlalchemy.org/en/14/tutorial/metadata.html) * [Working with Data](https://docs.sqlalchemy.org/en/14/tutorial/data.html) * [Inserting Rows with Core](https://docs.sqlalchemy.org/en/14/tutorial/data_insert.html) * [Selecting Rows with Core or ORM](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html) * [Updating and Deleting Rows with Core](https://docs.sqlalchemy.org/en/14/tutorial/data_update.html) * [Data Manipulation with the ORM](https://docs.sqlalchemy.org/en/14/tutorial/orm_data_manipulation.html) * [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/14/tutorial/orm_related_objects.html) * [Further Reading](https://docs.sqlalchemy.org/en/14/tutorial/further_reading.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/14/orm/index.html) * [ORM Quick Start](https://docs.sqlalchemy.org/en/14/orm/quickstart.html) * [Object Relational Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/orm/tutorial.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/14/orm/mapper_config.html) * [ORM Mapped Class Overview](https://docs.sqlalchemy.org/en/14/orm/mapping_styles.html) * [Mapping Classes with Declarative](https://docs.sqlalchemy.org/en/14/orm/declarative_mapping.html) * [Declarative Mapping Styles](https://docs.sqlalchemy.org/en/14/orm/declarative_styles.html) * [Table Configuration with Declarative](https://docs.sqlalchemy.org/en/14/orm/declarative_tables.html) * [Mapper Configuration with Declarative](https://docs.sqlalchemy.org/en/14/orm/declarative_config.html) * [Composing Mapped Hierarchies with Mixins](https://docs.sqlalchemy.org/en/14/orm/declarative_mixins.html) * [Integration with dataclasses and attrs](https://docs.sqlalchemy.org/en/14/orm/dataclasses.html) * [Mapping Columns and Expressions](https://docs.sqlalchemy.org/en/14/orm/scalar_mapping.html) * [Mapping Table Columns](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html) * [SQL Expressions as Mapped Attributes](https://docs.sqlalchemy.org/en/14/orm/mapped_sql_expr.html) * [Changing Attribute Behavior](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html) * [Composite Column Types](https://docs.sqlalchemy.org/en/14/orm/composites.html) * [Mapping Class Inheritance Hierarchies](https://docs.sqlalchemy.org/en/14/orm/inheritance.html) * [Non-Traditional Mappings](https://docs.sqlalchemy.org/en/14/orm/nonstandard_mappings.html) * [Configuring a Version Counter](https://docs.sqlalchemy.org/en/14/orm/versioning.html) * [Class Mapping API](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/14/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/14/orm/basic_relationships.html) * [Late-Evaluation of Relationship Arguments](https://docs.sqlalchemy.org/en/14/orm/basic_relationships.html#late-evaluation-of-relationship-arguments) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/14/orm/self_referential.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/14/orm/join_conditions.html) * [Collection Configuration and Techniques](https://docs.sqlalchemy.org/en/14/orm/collections.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/14/orm/relationship_persistence.html) * [Using the legacy ‘backref’ relationship parameter](https://docs.sqlalchemy.org/en/14/orm/backref.html) * [Relationships API](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html) * [Querying Data, Loading Objects](https://docs.sqlalchemy.org/en/14/orm/loading_objects.html) * [ORM Querying Guide](https://docs.sqlalchemy.org/en/14/orm/queryguide.html) * [Loading Columns](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html) * [Loading Inheritance Hierarchies](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html) * [Query API](https://docs.sqlalchemy.org/en/14/orm/query.html) * [Using the Session](https://docs.sqlalchemy.org/en/14/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/14/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/14/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/14/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/14/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/14/orm/extending.html) * [ORM Events](https://docs.sqlalchemy.org/en/14/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/14/orm/internals.html) * [ORM Exceptions](https://docs.sqlalchemy.org/en/14/orm/exceptions.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/14/orm/extensions/index.html) * [Asynchronous I/O (asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html) * [Association Proxy](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html) * [Declarative Extensions](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/index.html) * [Mypy / Pep-484 Support for ORM Mappings](https://docs.sqlalchemy.org/en/14/orm/extensions/mypy.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/14/orm/examples.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html) * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/14/core/operators.html) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/14/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [Describing Databases with MetaData](https://docs.sqlalchemy.org/en/14/core/metadata.html) * [Reflecting Database Objects](https://docs.sqlalchemy.org/en/14/core/reflection.html) * [Column INSERT/UPDATE Defaults](https://docs.sqlalchemy.org/en/14/core/defaults.html) * [Defining Constraints and Indexes](https://docs.sqlalchemy.org/en/14/core/constraints.html) * [Customizing DDL](https://docs.sqlalchemy.org/en/14/core/ddl.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [The Type Hierarchy](https://docs.sqlalchemy.org/en/14/core/type_basics.html) * [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html) * [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Engine Configuration](https://docs.sqlalchemy.org/en/14/core/engines.html) * [Working with Engines and Connections](https://docs.sqlalchemy.org/en/14/core/connections.html) * [Connection Pooling](https://docs.sqlalchemy.org/en/14/core/pooling.html) * [Core Events](https://docs.sqlalchemy.org/en/14/core/events.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [Events](https://docs.sqlalchemy.org/en/14/core/event.html) * [Runtime Inspection API](https://docs.sqlalchemy.org/en/14/core/inspection.html) * [Core Exceptions](https://docs.sqlalchemy.org/en/14/core/exceptions.html) * [Core Internals](https://docs.sqlalchemy.org/en/14/core/internals.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) * [Dialects](https://docs.sqlalchemy.org/en/14/dialects/index.html) * [PostgreSQL](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html) * [MySQL and MariaDB](https://docs.sqlalchemy.org/en/14/dialects/mysql.html) * [SQLite](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html) * [Oracle](https://docs.sqlalchemy.org/en/14/dialects/oracle.html) * [Microsoft SQL Server](https://docs.sqlalchemy.org/en/14/dialects/mssql.html) * [Firebird](https://docs.sqlalchemy.org/en/14/dialects/firebird.html) * [Sybase](https://docs.sqlalchemy.org/en/14/dialects/sybase.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html) * [Installation](https://docs.sqlalchemy.org/en/14/faq/installation.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html) * [Error Messages](https://docs.sqlalchemy.org/en/14/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/14/changelog/index.html) * [What’s New in SQLAlchemy 1.4?](https://docs.sqlalchemy.org/en/14/changelog/migration_14.html) * [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html) * [1.4 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_14.html) * [1.3 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_13.html) * [1.2 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_12.html) * [1.1 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_11.html) * [1.0 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_10.html) * [0.9 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_09.html) * [0.8 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_08.html) * [0.7 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_07.html) * [0.6 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_06.html) * [0.5 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_05.html) * [0.4 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_04.html) * [0.3 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_03.html) * [0.2 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_02.html) * [0.1 Changelog](https://docs.sqlalchemy.org/en/14/changelog/changelog_01.html) * [What’s New in SQLAlchemy 1.3?](https://docs.sqlalchemy.org/en/14/changelog/migration_13.html) * [What’s New in SQLAlchemy 1.2?](https://docs.sqlalchemy.org/en/14/changelog/migration_12.html) * [What’s New in SQLAlchemy 1.1?](https://docs.sqlalchemy.org/en/14/changelog/migration_11.html) * [What’s New in SQLAlchemy 1.0?](https://docs.sqlalchemy.org/en/14/changelog/migration_10.html) * [What’s New in SQLAlchemy 0.9?](https://docs.sqlalchemy.org/en/14/changelog/migration_09.html) * [What’s New in SQLAlchemy 0.8?](https://docs.sqlalchemy.org/en/14/changelog/migration_08.html) * [What’s New in SQLAlchemy 0.7?](https://docs.sqlalchemy.org/en/14/changelog/migration_07.html) * [What’s New in SQLAlchemy 0.6?](https://docs.sqlalchemy.org/en/14/changelog/migration_06.html) * [What’s new in SQLAlchemy 0.5?](https://docs.sqlalchemy.org/en/14/changelog/migration_05.html) * [What’s new in SQLAlchemy 0.4?](https://docs.sqlalchemy.org/en/14/changelog/migration_04.html) Indices and tables[¶](https://docs.sqlalchemy.org/en/14/contents.html#indices-and-tables "Link to this heading") ----------------------------------------------------------------------------------------------------------------- * [Glossary](https://docs.sqlalchemy.org/en/14/glossary.html#glossary) * [Index](https://docs.sqlalchemy.org/en/14/genindex.html) Next: [Overview](https://docs.sqlalchemy.org/en/14/intro.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Table of Contents — SQLAlchemy 1.3 Documentation Release: 1.3.24 legacy version | Release Date: March 30, 2021 [SQLAlchemy 1.3 Documentation](https://docs.sqlalchemy.org/en/13/index.html) ============================================================================= ### [SQLAlchemy 1.3 Documentation](https://docs.sqlalchemy.org/en/13/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/13/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/13/sqlalchemy_13.zip) Search terms: ### [SQLAlchemy 1.3 Documentation](https://docs.sqlalchemy.org/en/13/index.html "SQLAlchemy 1.3 Documentation") * [Overview](https://docs.sqlalchemy.org/en/13/intro.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/13/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/13/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/13/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/13/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/13/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/13/changelog/index.html) #### Project Versions * [1.3.24](https://docs.sqlalchemy.org/en/13/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/13/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/13/sqlalchemy_13.zip) * **Next:** [Overview](https://docs.sqlalchemy.org/en/13/intro.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/13/index.html) * **On this page:** * [Table of Contents](https://docs.sqlalchemy.org/en/13/contents.html#table-of-contents) * [Indices and tables](https://docs.sqlalchemy.org/en/13/contents.html#indices-and-tables) Table of Contents[¶](https://docs.sqlalchemy.org/en/13/contents.html#table-of-contents "Link to this heading") =============================================================================================================== Full table of contents. For a high level overview of all documentation, see [SQLAlchemy Documentation](https://docs.sqlalchemy.org/en/13/index.html) . * [Overview](https://docs.sqlalchemy.org/en/13/intro.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/13/orm/index.html) * [Object Relational Tutorial](https://docs.sqlalchemy.org/en/13/orm/tutorial.html) * [Mapper Configuration](https://docs.sqlalchemy.org/en/13/orm/mapper_config.html) * [Types of Mappings](https://docs.sqlalchemy.org/en/13/orm/mapping_styles.html) * [Mapping Columns and Expressions](https://docs.sqlalchemy.org/en/13/orm/scalar_mapping.html) * [Mapping Table Columns](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html) * [SQL Expressions as Mapped Attributes](https://docs.sqlalchemy.org/en/13/orm/mapped_sql_expr.html) * [Changing Attribute Behavior](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html) * [Composite Column Types](https://docs.sqlalchemy.org/en/13/orm/composites.html) * [Mapping Class Inheritance Hierarchies](https://docs.sqlalchemy.org/en/13/orm/inheritance.html) * [Non-Traditional Mappings](https://docs.sqlalchemy.org/en/13/orm/nonstandard_mappings.html) * [Configuring a Version Counter](https://docs.sqlalchemy.org/en/13/orm/versioning.html) * [Class Mapping API](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/13/orm/relationships.html) * [Basic Relationship Patterns](https://docs.sqlalchemy.org/en/13/orm/basic_relationships.html) * [Adjacency List Relationships](https://docs.sqlalchemy.org/en/13/orm/self_referential.html) * [Linking Relationships with Backref](https://docs.sqlalchemy.org/en/13/orm/backref.html) * [Configuring how Relationship Joins](https://docs.sqlalchemy.org/en/13/orm/join_conditions.html) * [Collection Configuration and Techniques](https://docs.sqlalchemy.org/en/13/orm/collections.html) * [Special Relationship Persistence Patterns](https://docs.sqlalchemy.org/en/13/orm/relationship_persistence.html) * [Relationships API](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html) * [Loading Objects](https://docs.sqlalchemy.org/en/13/orm/loading_objects.html) * [Loading Columns](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html) * [Relationship Loading Techniques](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html) * [Loading Inheritance Hierarchies](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html) * [Constructors and Object Initialization](https://docs.sqlalchemy.org/en/13/orm/constructors.html) * [Query API](https://docs.sqlalchemy.org/en/13/orm/query.html) * [Using the Session](https://docs.sqlalchemy.org/en/13/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/13/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/13/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/13/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/13/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/13/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/13/orm/contextual.html) * [Tracking Object and Session Changes with Events](https://docs.sqlalchemy.org/en/13/orm/session_events.html) * [Session API](https://docs.sqlalchemy.org/en/13/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/13/orm/extending.html) * [ORM Events](https://docs.sqlalchemy.org/en/13/orm/events.html) * [ORM Internals](https://docs.sqlalchemy.org/en/13/orm/internals.html) * [ORM Exceptions](https://docs.sqlalchemy.org/en/13/orm/exceptions.html) * [Deprecated ORM Event Interfaces](https://docs.sqlalchemy.org/en/13/orm/deprecated.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/13/orm/extensions/index.html) * [Association Proxy](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html) * [Automap](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html) * [Baked Queries](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html) * [Declarative](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/index.html) * [Basic Use](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/basic_use.html) * [Configuring Relationships](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/relationships.html) * [Table Configuration](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/table_config.html) * [Inheritance Configuration](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/inheritance.html) * [Mixin and Custom Base Classes](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/mixins.html) * [Declarative API](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html) * [Mutation Tracking](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html) * [Ordering List](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html) * [Horizontal Sharding](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html) * [Hybrid Attributes](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html) * [Indexable](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html) * [Alternate Class Instrumentation](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html) * [ORM Examples](https://docs.sqlalchemy.org/en/13/orm/examples.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/13/core/index.html) * [SQL Expression Language Tutorial](https://docs.sqlalchemy.org/en/13/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/13/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/13/core/sqlelement.html) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/13/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/13/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/13/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/13/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/13/core/serializer.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/13/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/13/core/schema.html) * [Describing Databases with MetaData](https://docs.sqlalchemy.org/en/13/core/metadata.html) * [Reflecting Database Objects](https://docs.sqlalchemy.org/en/13/core/reflection.html) * [Column INSERT/UPDATE Defaults](https://docs.sqlalchemy.org/en/13/core/defaults.html) * [Defining Constraints and Indexes](https://docs.sqlalchemy.org/en/13/core/constraints.html) * [Customizing DDL](https://docs.sqlalchemy.org/en/13/core/ddl.html) * [Column and Data Types](https://docs.sqlalchemy.org/en/13/core/types.html) * [Column and Data Types](https://docs.sqlalchemy.org/en/13/core/type_basics.html) * [Custom Types](https://docs.sqlalchemy.org/en/13/core/custom_types.html) * [Base Type API](https://docs.sqlalchemy.org/en/13/core/type_api.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/13/core/engines_connections.html) * [Engine Configuration](https://docs.sqlalchemy.org/en/13/core/engines.html) * [Working with Engines and Connections](https://docs.sqlalchemy.org/en/13/core/connections.html) * [Connection Pooling](https://docs.sqlalchemy.org/en/13/core/pooling.html) * [Core Events](https://docs.sqlalchemy.org/en/13/core/events.html) * [Core API Basics](https://docs.sqlalchemy.org/en/13/core/api_basics.html) * [Events](https://docs.sqlalchemy.org/en/13/core/event.html) * [Runtime Inspection API](https://docs.sqlalchemy.org/en/13/core/inspection.html) * [Deprecated Event Interfaces](https://docs.sqlalchemy.org/en/13/core/interfaces.html) * [Core Exceptions](https://docs.sqlalchemy.org/en/13/core/exceptions.html) * [Core Internals](https://docs.sqlalchemy.org/en/13/core/internals.html) * [Dialects](https://docs.sqlalchemy.org/en/13/dialects/index.html) * [PostgreSQL](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html) * [MySQL](https://docs.sqlalchemy.org/en/13/dialects/mysql.html) * [SQLite](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html) * [Oracle](https://docs.sqlalchemy.org/en/13/dialects/oracle.html) * [Microsoft SQL Server](https://docs.sqlalchemy.org/en/13/dialects/mssql.html) * [Firebird](https://docs.sqlalchemy.org/en/13/dialects/firebird.html) * [Sybase](https://docs.sqlalchemy.org/en/13/dialects/sybase.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/13/faq/index.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/13/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/13/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/13/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/13/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/13/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/13/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/13/faq/thirdparty.html) * [Error Messages](https://docs.sqlalchemy.org/en/13/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/13/changelog/index.html) * [What’s New in SQLAlchemy 1.3?](https://docs.sqlalchemy.org/en/13/changelog/migration_13.html) * [1.3 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_13.html) * [1.2 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_12.html) * [1.1 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_11.html) * [1.0 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_10.html) * [0.9 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_09.html) * [0.8 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_08.html) * [0.7 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_07.html) * [0.6 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_06.html) * [0.5 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_05.html) * [0.4 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_04.html) * [0.3 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_03.html) * [0.2 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_02.html) * [0.1 Changelog](https://docs.sqlalchemy.org/en/13/changelog/changelog_01.html) * [What’s New in SQLAlchemy 1.2?](https://docs.sqlalchemy.org/en/13/changelog/migration_12.html) * [What’s New in SQLAlchemy 1.1?](https://docs.sqlalchemy.org/en/13/changelog/migration_11.html) * [What’s New in SQLAlchemy 1.0?](https://docs.sqlalchemy.org/en/13/changelog/migration_10.html) * [What’s New in SQLAlchemy 0.9?](https://docs.sqlalchemy.org/en/13/changelog/migration_09.html) * [What’s New in SQLAlchemy 0.8?](https://docs.sqlalchemy.org/en/13/changelog/migration_08.html) * [What’s New in SQLAlchemy 0.7?](https://docs.sqlalchemy.org/en/13/changelog/migration_07.html) * [What’s New in SQLAlchemy 0.6?](https://docs.sqlalchemy.org/en/13/changelog/migration_06.html) * [What’s new in SQLAlchemy 0.5?](https://docs.sqlalchemy.org/en/13/changelog/migration_05.html) * [What’s new in SQLAlchemy 0.4?](https://docs.sqlalchemy.org/en/13/changelog/migration_04.html) Indices and tables[¶](https://docs.sqlalchemy.org/en/13/contents.html#indices-and-tables "Link to this heading") ----------------------------------------------------------------------------------------------------------------- * [Glossary](https://docs.sqlalchemy.org/en/13/glossary.html#glossary) * [Index](https://docs.sqlalchemy.org/en/13/genindex.html) Next: [Overview](https://docs.sqlalchemy.org/en/13/intro.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/13/copyright.html) 2007-2021, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:13:56 AM EDT --- # Index — SQLAlchemy 2.1 Documentation Release: 2.1.0b1 in development | Release Date: **not released yet** [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html) ============================================================================= Search terms: [Contents](https://docs.sqlalchemy.org/en/21/contents.html) | [Index](https://docs.sqlalchemy.org/en/21/genindex.html#) | [Download this Documentation](https://docs.sqlalchemy.org/21/sqlalchemy_21.zip) Search terms: [Home](https://docs.sqlalchemy.org/en/21/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/21/sqlalchemy_21.zip) Index ===== [**Symbols**](https://docs.sqlalchemy.org/en/21/genindex.html#Symbols) | [**\_**](https://docs.sqlalchemy.org/en/21/genindex.html#_) | [**A**](https://docs.sqlalchemy.org/en/21/genindex.html#A) | [**B**](https://docs.sqlalchemy.org/en/21/genindex.html#B) | [**C**](https://docs.sqlalchemy.org/en/21/genindex.html#C) | [**D**](https://docs.sqlalchemy.org/en/21/genindex.html#D) | [**E**](https://docs.sqlalchemy.org/en/21/genindex.html#E) | [**F**](https://docs.sqlalchemy.org/en/21/genindex.html#F) | [**G**](https://docs.sqlalchemy.org/en/21/genindex.html#G) | [**H**](https://docs.sqlalchemy.org/en/21/genindex.html#H) | [**I**](https://docs.sqlalchemy.org/en/21/genindex.html#I) | [**J**](https://docs.sqlalchemy.org/en/21/genindex.html#J) | [**K**](https://docs.sqlalchemy.org/en/21/genindex.html#K) | [**L**](https://docs.sqlalchemy.org/en/21/genindex.html#L) | [**M**](https://docs.sqlalchemy.org/en/21/genindex.html#M) | [**N**](https://docs.sqlalchemy.org/en/21/genindex.html#N) | [**O**](https://docs.sqlalchemy.org/en/21/genindex.html#O) | [**P**](https://docs.sqlalchemy.org/en/21/genindex.html#P) | [**Q**](https://docs.sqlalchemy.org/en/21/genindex.html#Q) | [**R**](https://docs.sqlalchemy.org/en/21/genindex.html#R) | [**S**](https://docs.sqlalchemy.org/en/21/genindex.html#S) | [**T**](https://docs.sqlalchemy.org/en/21/genindex.html#T) | [**U**](https://docs.sqlalchemy.org/en/21/genindex.html#U) | [**V**](https://docs.sqlalchemy.org/en/21/genindex.html#V) | [**W**](https://docs.sqlalchemy.org/en/21/genindex.html#W) | [**X**](https://docs.sqlalchemy.org/en/21/genindex.html#X) | [**Y**](https://docs.sqlalchemy.org/en/21/genindex.html#Y) | [**Z**](https://docs.sqlalchemy.org/en/21/genindex.html#Z) * * * Symbols ------- | | | | --- | --- | | [\*\*cparams (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.**cparams)

[(sqlalchemy.engine.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.connect.params.**cparams)

[\*\*dialect\_kw (sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.**dialect_kw)

[(sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint.params.**dialect_kw)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.**dialect_kw)

[\*\*dialect\_kwargs (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.**dialect_kwargs)

[\*\*kw (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.**kw)

[(sqlalchemy.engine.reflection.Inspector.get\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints.params.**kw)

[(sqlalchemy.engine.reflection.Inspector.get\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns.params.**kw)

[\*\*kwargs (sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate.params.**kwargs)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.**kwargs)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate.params.**kwargs)

[\*\*reflect\_kw (sqlalchemy.ext.declarative.DeferredReflection.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection.prepare.params.**reflect_kw)

[\*\*types (sqlalchemy.sql.expression.TextClause.columns parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.columns.params.**types)

[(sqlalchemy.sql.expression.TString.columns parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TString.columns.params.**types)

[\*args (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.*args)

[(sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.*args)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.*args)

[\*attrs (sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.*attrs)

[(sqlalchemy.orm.load\_only parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.load_only.params.*attrs)
[\[0\]](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.load_only.params.*attrs) | [\*cargs (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.*cargs)

[(sqlalchemy.engine.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.connect.params.*cargs)

[\*clauses (sqlalchemy.sql.expression.CompoundSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by.params.*clauses)

[(sqlalchemy.sql.expression.CompoundSelect.order\_by parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by.params.*clauses)

[(sqlalchemy.sql.expression.GenerativeSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by.params.*clauses)

[\*col\_expressions (sqlalchemy.engine.CursorResult.columns parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.columns.params.*col_expressions)

[(sqlalchemy.engine.Result.columns parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.columns.params.*col_expressions)

[\*cols (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.*cols)

[(sqlalchemy.sql.expression.Delete.returning parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Delete.returning.params.*cols)

[(sqlalchemy.sql.expression.Insert.returning parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.returning.params.*cols)

[\*columns (sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.deferred.params.*columns)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.*columns)

[(sqlalchemy.schema.UniqueConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.UniqueConstraint.params.*columns)

[\*ctes (sqlalchemy.sql.expression.CompoundSelect.add\_cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte.params.*ctes)

[(sqlalchemy.sql.expression.HasCTE.add\_cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte.params.*ctes)

[(sqlalchemy.sql.expression.Select.add\_cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte.params.*ctes)

[\*dialect\_names (sqlalchemy.types.TypeEngine.with\_variant parameter)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant.params.*dialect_names)

[(sqlalchemy.types.Variant.with\_variant parameter)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Variant.with_variant.params.*dialect_names)

[\*elements (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.*elements)

[\*entities (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.select.params.*entities)

[(sqlalchemy.sql.expression.Select.add\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.add_columns.params.*entities)

[(sqlalchemy.sql.expression.Select.with\_only\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns.params.*entities)

[\*enums (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.*enums)

[\*expr (sqlalchemy.orm.Query.distinct parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.distinct.params.*expr)

[(sqlalchemy.sql.expression.Select.distinct parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.distinct.params.*expr)

[(sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.*expr)

[\*expressions (sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Index.params.*expressions)

[\*exprs (sqlalchemy.orm.Bundle parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.params.*exprs)

[\*from\_obj (sqlalchemy.orm.Query.select\_from parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.select_from.params.*from_obj)

[\*fromclauses (sqlalchemy.sql.expression.ScalarSelect.correlate parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate.params.*fromclauses)

[(sqlalchemy.sql.expression.ScalarSelect.correlate\_except parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate_except.params.*fromclauses)

[(sqlalchemy.sql.expression.Select.correlate parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.correlate.params.*fromclauses)

[\*names (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.*names)

[\*opts (sqlalchemy.orm.Load.options parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.options.params.*opts)

[\*order\_by (sqlalchemy.sql.expression.within\_group parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.within_group.params.*order_by)

[\*other (sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate.params.*other)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.*other)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate.params.*other)

[\*prefixes (sqlalchemy.orm.AppenderQuery.prefix\_with parameter)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.prefix_with.params.*prefixes)

[(sqlalchemy.orm.Query.prefix\_with parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.prefix_with.params.*prefixes)

[(sqlalchemy.sql.expression.HasPrefixes.prefix\_with parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes.prefix_with.params.*prefixes)

[\*props (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.join.params.*props)

[\*selects (sqlalchemy.sql.expression.except\_ parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.except_.params.*selects)

[(sqlalchemy.sql.expression.except\_all parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.except_all.params.*selects)

[(sqlalchemy.sql.expression.intersect parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.intersect.params.*selects)

[\*suffixes (sqlalchemy.orm.AppenderQuery.suffix\_with parameter)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.suffix_with.params.*suffixes)

[(sqlalchemy.orm.Query.suffix\_with parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.suffix_with.params.*suffixes)

[(sqlalchemy.sql.expression.HasSuffixes.suffix\_with parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes.suffix_with.params.*suffixes)

[\*whens (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.case.params.*whens)

[1.x style](https://docs.sqlalchemy.org/en/21/glossary.html#term-1.x-style)

[1.x-style](https://docs.sqlalchemy.org/en/21/glossary.html#term-0)

[2.0 style](https://docs.sqlalchemy.org/en/21/glossary.html#term-2.0-style)

[2.0-style](https://docs.sqlalchemy.org/en/21/glossary.html#term-1) | \_ -- | | | | --- | --- | | [\_\_add\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__)

[\_\_and\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__and__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__and__)

[\_\_call\_\_() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.__call__)

[(sqlalchemy.ext.asyncio.async\_sessionmaker method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_sessionmaker.__call__)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.__call__)

[\_\_eq\_\_() (sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.__eq__)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__eq__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.__eq__)

[\_\_floordiv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__floordiv__)

[\_\_ge\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__ge__)

[\_\_getitem\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__getitem__)

[\_\_gt\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__gt__)

[\_\_hash\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__hash__)

[\_\_init\_\_() (sqlalchemy.dialects.mssql.BIT method)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.__init__)

[(sqlalchemy.dialects.mssql.IMAGE method)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.__init__)

[(sqlalchemy.dialects.mssql.JSON method)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON.__init__) | [\_\_invert\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__invert__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__invert__)

[\_\_le\_\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__le__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__le__)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.__le__)

[\_\_lshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__lshift__)

[\_\_lt\_\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__lt__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__lt__)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.__lt__)

[\_\_mapper\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__mapper__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__mapper__)

[\_\_mapper\_args\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__mapper_args__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__mapper_args__)

[\_\_matmul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__matmul__)

[\_\_mod\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mod__)

[\_\_mul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mul__)

[\_\_name (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.__name)

[\_\_ne\_\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__ne__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__ne__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.__ne__)

[\_\_neg\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__neg__)

[\_\_or\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__or__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__or__)

[\_\_pow\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__pow__)

[\_\_radd\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__radd__)

[\_\_rfloordiv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rfloordiv__)

[\_\_rlshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rlshift__)

[\_\_rmatmul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmatmul__)

[\_\_rmod\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmod__)

[\_\_rmul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmul__)

[\_\_rpow\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rpow__)

[\_\_rrshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rrshift__)

[\_\_rshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rshift__)

[\_\_rsub\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rsub__)

[\_\_rtruediv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rtruediv__)

[\_\_sa\_operate\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__sa_operate__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__sa_operate__)

[\_\_sub\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__sub__)

[\_\_table\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__table__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__table__)

[\_\_table\_args\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__table_args__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__table_args__)

[\_\_tablename\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__tablename__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__tablename__)

[\_\_truediv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__truediv__)

[\_\_type (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.__type)

[\_asdict() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row._asdict)

[\_ConnectionFairy (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool._ConnectionFairy)

[\_ConnectionRecord (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool._ConnectionRecord)

[\_create\_rule (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint.params._create_rule)

[\_CreateDropBase (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema._CreateDropBase)

[\_fields (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row._fields)

[\_get\_listen\_keys() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._get_listen_keys)

[\_listen\_on\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._listen_on_attribute)

[\_mapping (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row._mapping)

[\_parents (sqlalchemy.ext.mutable.Mutable attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._parents)

[(sqlalchemy.ext.mutable.MutableBase attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase._parents)

[\_t (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row._t)

[\_tuple() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row._tuple)

[\_type\_bound (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint.params._type_bound) | A - | | | | --- | --- | | [AbstractConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.AbstractConcreteBase)

[AbstractMultiRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractMultiRange)

[AbstractRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange)

[AbstractRange.comparator\_factory (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory)

[AbstractSingleRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractSingleRange)

[accuracy (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.accuracy)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.accuracy)

[ACID](https://docs.sqlalchemy.org/en/21/glossary.html#term-ACID)

[ACID model](https://docs.sqlalchemy.org/en/21/glossary.html#term-ACID-model)

[aclose() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.aclose)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.aclose)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.aclose)

[active\_history (sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.params.active_history)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.active_history)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.active_history)

[adapt() (sqlalchemy.types.SchemaType method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.SchemaType.adapt)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.adapt)

[adapt\_on\_names (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.adapt_on_names)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.adapt_on_names)

[adapt\_to\_emulated() (sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated)

[adapt\_to\_entity() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.adapt_to_entity)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryableAttribute.adapt_to_entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.adapt_to_entity)

[AdaptedConnection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.AdaptedConnection)

[adapter (sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.adapter)

[add() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.add)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.add)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.add)

[add\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.add_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.add_all)

[(sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.add_all)

[add\_column() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.add_column)

[add\_columns() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.add_columns)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.add_columns)

[add\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.add_criteria)

[(sqlalchemy.sql.expression.StatementLambdaElement method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria)

[add\_cte() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte)

[(sqlalchemy.sql.expression.HasCTE method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte)

[add\_entity() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.add_entity)

[add\_is\_dependent\_on() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.add_is_dependent_on)

[add\_mapped\_attribute() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.add_mapped_attribute)

[add\_properties() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_properties)

[add\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_property)

[AddConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.AddConstraint)

[added (sqlalchemy.orm.attributes.History attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.added)

[additional\_parameters (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.additional_parameters)

[adds() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.adds)

[adjacent\_to() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.adjacent_to)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.adjacent_to)

[after\_attach() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_attach)

[after\_begin() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin)

[after\_bulk\_delete() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_delete)

[after\_bulk\_update() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_update)

[after\_commit() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_commit)

[after\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.after_configured)

[(sqlalchemy.orm.RegistryEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.RegistryEvents.after_configured)

[after\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_create)

[after\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute)

[after\_delete() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.after_delete)

[after\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_drop)

[after\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute)

[after\_flush() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush)

[after\_flush\_postexec() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec)

[after\_insert() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.after_insert)

[after\_mapper\_constructed() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.after_mapper_constructed)

[after\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach)

[after\_rollback() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_rollback)

[after\_soft\_rollback() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback)

[after\_transaction\_create() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create)

[after\_transaction\_end() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_end)

[after\_update() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.after_update)

[against (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.against)

[against() (sqlalchemy.schema.ExecutableDDLElement method)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.ExecutableDDLElement.against)

[aggregate\_order\_by (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.aggregate_order_by)

[aggregate\_order\_by() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.aggregate_order_by)

[(sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.aggregate_order_by)

[aggregate\_order\_by\_style (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.aggregate_order_by_style)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.aggregate_order_by_style)

[aggregate\_strings (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.aggregate_strings)

[AggregateOrderBy (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.AggregateOrderBy)

[Alias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Alias)

[alias (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.alias)

[alias() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.alias)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.alias)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.alias)

[aliased (sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.aliased)

[aliased() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.aliased)

[AliasedClass (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.util.AliasedClass)

[AliasedInsp (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.util.AliasedInsp)

[AliasedReturnsRows (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows)

[aliasname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.aliasname)

[All() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.All)

[all() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.all)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.all)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.all)

[all\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.all_)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.all_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.all_)

[all\_mappers (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers)

[all\_orm\_descriptors (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.all_orm_descriptors)

[allow\_partial\_pks (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.allow_partial_pks)

[allows\_lambda (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.allows_lambda)

[always (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.always)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.always)

[always\_refresh (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.always_refresh)

[AmbiguousColumnError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.AmbiguousColumnError)

[AmbiguousForeignKeysError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.AmbiguousForeignKeysError)

[and\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.and_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.and_)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryableAttribute.and_)

[annotations](https://docs.sqlalchemy.org/en/21/glossary.html#term-annotations)

[anon\_key\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.anon_key_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_key_label)

[anon\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.anon_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_label)

[anon\_map (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.anon_map)

[ansi\_bind\_rules (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.ansi_bind_rules)

[AnsiFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.AnsiFunction)

[ANY (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.ANY)

[Any() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Any)

[any() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.any)

[any\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.any_)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.any_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any_)

[append (sqlalchemy.engine.URL.update\_query\_dict parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_dict.params.append)

[(sqlalchemy.engine.URL.update\_query\_pairs parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_pairs.params.append)

[(sqlalchemy.engine.URL.update\_query\_string parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_string.params.append)

[append() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.append)

[(sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.append)

[(sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.append)

[append\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.append_column)

[append\_constraint() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.append_constraint)

[append\_replacing\_same\_type() (sqlalchemy.sql.SyntaxExtension method)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.sql.SyntaxExtension.append_replacing_same_type)

[append\_wo\_mutation() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.append_wo_mutation)

[appender() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.appender)

[AppenderQuery (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery)

[apply\_fn (sqlalchemy.sql.expression.Select.apply\_syntax\_extension\_point parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.apply_syntax_extension_point.params.apply_fn)

[apply\_labels() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.apply_labels)

[apply\_syntax\_extension\_point() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.apply_syntax_extension_point)

[apply\_to\_delete() (sqlalchemy.sql.SyntaxExtension method)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.sql.SyntaxExtension.apply_to_delete)

[apply\_to\_insert() (sqlalchemy.sql.SyntaxExtension method)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.sql.SyntaxExtension.apply_to_insert)

[apply\_to\_select() (sqlalchemy.sql.SyntaxExtension method)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.sql.SyntaxExtension.apply_to_select)

[apply\_to\_update() (sqlalchemy.sql.SyntaxExtension method)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.sql.SyntaxExtension.apply_to_update)

[args (sqlalchemy.orm.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.init.params.args)

[(sqlalchemy.orm.InstanceEvents.init\_failure parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.init_failure.params.args)

[argument (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.argument)

[argument\_for() (sqlalchemy.schema.CheckConstraint class method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for)

[(sqlalchemy.schema.Column class method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.argument_for)

[(sqlalchemy.schema.ColumnCollectionConstraint class method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for) | [argument\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.argument_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.argument_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.argument_name)

[ArgumentError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.ArgumentError)

[ARRAY (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY)

[array (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array)

[ARRAY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY)

[(sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.ARRAY)

[array() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.array)

[ARRAY.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator)

[array\_agg (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.array_agg)

[array\_agg() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array_agg)

[arraysize (sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.arraysize)

[as\_boolean() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean)

[as\_comparison() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison)

[as\_declarative() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.as_declarative)

[as\_declarative\_base() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.as_declarative_base)

[as\_float() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float)

[as\_generic() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic)

[as\_integer() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer)

[as\_json() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json)

[as\_mutable() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.as_mutable)

[as\_numeric() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric)

[as\_readonly() (sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.as_readonly)

[as\_reference() (sqlalchemy.sql.expression.Label method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Label.as_reference)

[as\_scalar() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.as_scalar)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.as_scalar)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.as_scalar)

[as\_string() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string)

[as\_tuple (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.as_tuple)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.params.as_tuple)

[as\_uuid (sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER.params.as_uuid)

[(sqlalchemy.dialects.postgresql.UUID parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.UUID.params.as_uuid)

[(sqlalchemy.types.UUID parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.UUID.params.as_uuid)

[asc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.asc)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.asc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.asc)

[ascii (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.ascii)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.ascii)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.ascii)

[asdecimal (sqlalchemy.dialects.oracle.BINARY\_DOUBLE parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_DOUBLE.params.asdecimal)

[(sqlalchemy.dialects.oracle.BINARY\_FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_FLOAT.params.asdecimal)

[(sqlalchemy.dialects.oracle.FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT.params.asdecimal)

[AssertionPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.AssertionPool)

[associate\_with() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with)

[associate\_with\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with_attribute)

[association relationship](https://docs.sqlalchemy.org/en/21/glossary.html#term-association-relationship)

[ASSOCIATION\_PROXY (sqlalchemy.ext.associationproxy.AssociationProxyExtensionType attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyExtensionType.ASSOCIATION_PROXY)

[association\_proxy() (in module sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy)

[AssociationProxy (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy)

[AssociationProxyExtensionType (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyExtensionType)

[AssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance)

[astext (sqlalchemy.dialects.postgresql.JSON.Comparator attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator.astext)

[astext\_type (sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.astext_type)

[async\_creator (sqlalchemy.ext.asyncio.create\_async\_engine parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_engine.params.async_creator)

[async\_engine\_from\_config() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_engine_from_config)

[async\_object\_session() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_object_session)

[async\_scoped\_session (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session)

[async\_session (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.async_session)

[async\_session() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_session)

[async\_sessionmaker (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_sessionmaker)

[AsyncAdaptedQueuePool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.AsyncAdaptedQueuePool)

[AsyncAttrs (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncAttrs)

[AsyncConnection (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection)

[AsyncEngine (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine)

[asyncio\_safe (sqlalchemy.events.PoolResetState attribute)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolResetState.asyncio_safe)

[AsyncMappingResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncMappingResult)

[AsyncResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult)

[AsyncScalarResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncScalarResult)

[AsyncSession (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession)

[AsyncSessionTransaction (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSessionTransaction)

[AsyncTransaction (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTransaction)

[AsyncTupleResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTupleResult)

[atomicity](https://docs.sqlalchemy.org/en/21/glossary.html#term-atomicity)

[attached](https://docs.sqlalchemy.org/en/21/glossary.html#term-attached)

[attr (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.attr)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.attr)

[ATTR\_EMPTY (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.ATTR_EMPTY)

[attr\_name (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.attr_name)

[(sqlalchemy.orm.attribute\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict.params.attr_name)

[ATTR\_WAS\_SET (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.ATTR_WAS_SET)

[attribute\_instrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstrumentationEvents.attribute_instrument)

[attribute\_keyed\_dict() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict)

[attribute\_mapped\_collection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.attribute_mapped_collection)

[attribute\_names (sqlalchemy.ext.asyncio.async\_scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire.params.attribute_names)

[(sqlalchemy.ext.asyncio.AsyncSession.expire parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire.params.attribute_names)

[(sqlalchemy.orm.scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.expire.params.attribute_names)

[AttributeEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents)

[AttributeEventToken (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.AttributeEventToken)

[AttributeState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.AttributeState)

[attrname (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.attrname)

[attrs (sqlalchemy.orm.InstanceEvents.expire parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.expire.params.attrs)

[(sqlalchemy.orm.InstanceEvents.refresh parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh.params.attrs)

[(sqlalchemy.orm.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush.params.attrs)

[autobegin (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.autobegin)

[AUTOBEGIN (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.AUTOBEGIN)

[autocommit (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.autocommit)

[autoescape (sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains.params.autoescape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith.params.autoescape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains.params.autoescape)

[autoflush (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.autoflush)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.autoflush)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.autoflush)

[autoflush() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.autoflush)

[autoincrement (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.autoincrement)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.autoincrement)

[autoincrement\_column (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.autoincrement_column)

[autoload\_replace (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.autoload_replace)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.autoload_replace)

[autoload\_with (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.autoload_with)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.autoload_with)

[automap\_base() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base)

[AutomapBase (class in sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase)

[awaitable\_attrs (sqlalchemy.ext.asyncio.AsyncAttrs attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncAttrs.awaitable_attrs)

[AwaitRequired](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.AwaitRequired) | B - | | | | --- | --- | | [back\_populates (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates)

[backref](https://docs.sqlalchemy.org/en/21/glossary.html#term-backref)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref)

[backref() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.backref)

[BakedQuery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery)

[Bakery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.Bakery)

[bakery() (in module sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.bakery)

[(sqlalchemy.ext.baked.BakedQuery class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.bakery)

[base (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.base)

[(sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.base)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.base)

[BASE (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.BASE)

[Base20DeprecationWarning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning)

[base\_columns (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.base_columns)

[base\_mapper (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.base_mapper)

[BaseDDLElement (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.BaseDDLElement)

[batch (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.batch)

[before\_attach() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.before_attach)

[before\_commit() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.before_commit)

[before\_compile() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile)

[before\_compile\_delete() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete)

[before\_compile\_update() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update)

[before\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.before_configured)

[(sqlalchemy.orm.RegistryEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.RegistryEvents.before_configured)

[before\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.before_create)

[before\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute)

[before\_delete() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.before_delete)

[before\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.before_drop)

[before\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute)

[before\_flush() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush)

[before\_insert() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.before_insert)

[before\_mapper\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.before_mapper_configured)

[before\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach)

[before\_update() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.before_update)

[BEGIN (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.BEGIN)

[begin() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.begin)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.begin)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.begin)

[BEGIN\_NESTED (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.BEGIN_NESTED)

[begin\_nested() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.begin_nested)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.begin_nested)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.begin_nested)

[begin\_twophase() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.begin_twophase)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.begin_twophase)

[Best effort](https://docs.sqlalchemy.org/en/21/dialects/index.html#term-Best-effort)

[between() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.between)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.between)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.between)

[BFILE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BFILE)

[bidirectional relationship](https://docs.sqlalchemy.org/en/21/glossary.html#term-bidirectional-relationship)

[BIGINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.BIGINT)

[BigInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.BigInteger)

[BINARY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.BINARY)

[binary (sqlalchemy.dialects.mysql.CHAR parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR.params.binary)

[(sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.binary)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.binary)

[BINARY (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.BINARY)

[(sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.BINARY)

[BINARY\_DOUBLE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_DOUBLE)

[BINARY\_FLOAT (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_FLOAT)

[binary\_precision (sqlalchemy.dialects.oracle.FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT.params.binary_precision)

[BinaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression)

[bind (sqlalchemy.dialects.postgresql.DOMAIN.create parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.create.params.bind)

[(sqlalchemy.dialects.postgresql.DOMAIN.drop parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.drop.params.bind)

[(sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.bind) | [bind parameter](https://docs.sqlalchemy.org/en/21/glossary.html#term-bind-parameter)

[bind parameters](https://docs.sqlalchemy.org/en/21/glossary.html#term-bind-parameters)

[bind\_arguments (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments)

[(sqlalchemy.orm.ORMExecuteState.invoke\_statement parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.bind_arguments)

[(sqlalchemy.orm.scoped\_session.connection parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.connection.params.bind_arguments)

[bind\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression)

[bind\_mapper (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper)

[bind\_mapper() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper)

[bind\_names (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.bind_names)

[bind\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor)

[(sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.bind_processor)

[bind\_table() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bind_table)

[bind\_typing (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.bind_typing)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.bind_typing)

[bindname\_escape\_characters (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.bindname_escape_characters)

[bindparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.bindparam)

[BindParameter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter)

[bindparams (sqlalchemy.sql.expression.CacheKey attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.CacheKey.bindparams)

[bindparams() (sqlalchemy.sql.expression.TextClause method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.bindparams)

[(sqlalchemy.sql.expression.TString method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TString.bindparams)

[binds (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.binds)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.binds)

[bindtemplate (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.bindtemplate)

[BindTyping (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.BindTyping)

[BIT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BIT)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BIT)

[BitString (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString)

[BITWISE (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.BITWISE)

[bitwise\_and() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_and)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_and)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_and)

[bitwise\_lshift() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_lshift)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_lshift)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_lshift)

[bitwise\_not() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.bitwise_not)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_not)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_not)

[bitwise\_or() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_or)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_or)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_or)

[bitwise\_rshift() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_rshift)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_rshift)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_rshift)

[bitwise\_xor() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_xor)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_xor)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_xor)

[BLANK\_SCHEMA (sqlalchemy.schema.SchemaConst attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.SchemaConst.BLANK_SCHEMA)

[BLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.BLOB)

[bool\_op() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bool_op)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bool_op)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bool_op)

[BOOLEAN (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BOOLEAN)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.BOOLEAN)

[Boolean (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean)

[BOOLEAN (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.BOOLEAN)

[BOOLEAN\_ALGEBRA (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.BOOLEAN_ALGEBRA)

[bound parameter](https://docs.sqlalchemy.org/en/21/glossary.html#term-bound-parameter)

[bound parameters](https://docs.sqlalchemy.org/en/21/glossary.html#term-bound-parameters)

[bounds (sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.bounds)

[bulk\_dml() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.bulk_dml)

[bulk\_insert\_mappings() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings)

[bulk\_replace() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace)

[bulk\_save\_objects() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects)

[bulk\_update\_mappings() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_update_mappings)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings)

[Bundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle)

[by\_module (sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.by_module)

[BYTEA (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BYTEA) | C - | | | | --- | --- | | [c (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.c)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.c)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.c)

[cache (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.cache)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.cache)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.cache)

[cache\_key (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.cache_key)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.cache_key)

[cache\_ok (sqlalchemy.types.ExternalType attribute)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok)

[(sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.cache_ok)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok)

[CacheKey (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.CacheKey)

[callable\_ (sqlalchemy.schema.CheckConstraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.ddl_if.params.callable_)

[(sqlalchemy.schema.ColumnCollectionConstraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.ddl_if.params.callable_)

[(sqlalchemy.schema.Constraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint.ddl_if.params.callable_)

[callables (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.callables)

[callproc() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.callproc)

[candidate key](https://docs.sqlalchemy.org/en/21/glossary.html#term-candidate-key)

[cartesian product](https://docs.sqlalchemy.org/en/21/glossary.html#term-cartesian-product)

[cascade](https://docs.sqlalchemy.org/en/21/glossary.html#term-cascade)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.cascade)

[cascade\_backrefs (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade_backrefs)

[cascade\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.cascade_iterator)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.cascade_iterator)

[cascade\_scalar\_deletes (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.cascade_scalar_deletes)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.cascade_scalar_deletes)

[CascadeOptions (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CascadeOptions)

[cascading (sqlalchemy.orm.declared\_attr attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declared_attr.cascading)

[Case (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Case)

[case() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.case)

[Cast (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Cast)

[cast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.cast)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.cast)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.cast)

[cast\_nulls (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.cast_nulls)

[chain() (sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain)

[chained\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.chained_exception)

[changed() (sqlalchemy.ext.mutable.Mutable method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.changed)

[(sqlalchemy.ext.mutable.MutableComposite method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite.changed)

[CHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.CHAR)

[char\_length (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.char_length)

[charset (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.charset)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.charset)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.charset)

[check (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.check)

[check constraint](https://docs.sqlalchemy.org/en/21/glossary.html#term-check-constraint)

[check\_modified() (sqlalchemy.orm.IdentityMap method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.IdentityMap.check_modified)

[CheckConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint)

[CheckFirst (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst)

[checkfirst (sqlalchemy.dialects.postgresql.DOMAIN.create parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.create.params.checkfirst)

[(sqlalchemy.dialects.postgresql.DOMAIN.drop parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.drop.params.checkfirst)

[(sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.checkfirst)

[checkin() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.checkin)

[checkout() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.checkout)

[ChunkedIteratorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult)

[CIDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.CIDR)

[CircularDependencyError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.CircularDependencyError)

[CITEXT (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.CITEXT)

[class\_ (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.class_)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.class_)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_)

[class\_attribute (sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.class_attribute)

[class\_instrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstrumentationEvents.class_instrument)

[class\_manager (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_manager)

[class\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.class_mapper)

[class\_registry (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.class_registry)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.params.class_registry)

[class\_uninstrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstrumentationEvents.class_uninstrument)

[classes (sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.classes)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.classes)

[ClassManager (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager)

[classname\_for\_table (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.classname_for_table)

[classname\_for\_table() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table)

[clause (sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.clause)

[(sqlalchemy.orm.scoped\_session.get\_bind parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.get_bind.params.clause)

[(sqlalchemy.orm.Session.get\_bind parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.get_bind.params.clause)

[ClauseElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.ClauseElement)

[clauseelement (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.clauseelement)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.clauseelement)

[ClauseList (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ClauseList)

[clauses (sqlalchemy.dialects.postgresql.array parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array.params.clauses)

[(sqlalchemy.sql.functions.FunctionElement attribute)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses)

[clear() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.clear)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.clear)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.clear)

[clear\_cache() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.clear_cache)

[clear\_compiled\_cache() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.clear_compiled_cache)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.clear_compiled_cache)

[clear\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.clear_mappers)

[CLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.CLOB)

[cloned\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse)

[close (sqlalchemy.engine.Engine.dispose parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.dispose.params.close)

[(sqlalchemy.ext.asyncio.AsyncEngine.dispose parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.dispose.params.close)

[close() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.close)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.close)

[(sqlalchemy.engine.FilterResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.FilterResult.close)

[close\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.close_all)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.close_all)

[close\_all\_sessions() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.close_all_sessions)

[(in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.close_all_sessions)

[close\_detached() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.close_detached)

[close\_resets\_only (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.close_resets_only)

[closed (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.closed)

[(sqlalchemy.engine.FilterResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.FilterResult.closed)

[(sqlalchemy.engine.IteratorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.IteratorResult.closed)

[cls (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.cls)

[(sqlalchemy.orm.registry.generate\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base.params.cls)

[(sqlalchemy.orm.registry.map\_declaratively parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.map_declaratively.params.cls)

[coalesce (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.coalesce)

[coerce() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce)

[(sqlalchemy.ext.mutable.MutableBase class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce)

[(sqlalchemy.ext.mutable.MutableDict class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.coerce)

[coerce\_compared\_value() (sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.coerce_compared_value)

[(sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value)

[coerce\_to\_is\_types (sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types)

[collate() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.collate)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.collate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.collate)

[collation (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.collation)

[(sqlalchemy.dialects.mssql.NCHAR parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.NCHAR.params.collation)

[(sqlalchemy.dialects.mssql.NTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.NTEXT.params.collation)

[collection (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection)

[(sqlalchemy.orm.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection.params.collection)

[collection\_adapter (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection_adapter)

[(sqlalchemy.orm.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection.params.collection_adapter)

[collection\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.collection_class)

[(sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.collection_class)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.collection_class)

[CollectionAdapter (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.CollectionAdapter)

[cols (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.cols)

[(sqlalchemy.sql.expression.UpdateBase.return\_defaults parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.UpdateBase.return_defaults.params.cols)

[colspecs (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.colspecs)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.colspecs)

[coltype (sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.coltype)

[(sqlalchemy.types.Boolean.result\_processor parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean.result_processor.params.coltype)

[(sqlalchemy.types.Float.result\_processor parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Float.result_processor.params.coltype)

[Column (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column)

[column (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.column)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.column)

[(sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.column)

[column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.column)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.column)

[column\_attrs (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.column_attrs)

[column\_descriptions (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.column_descriptions)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.column_descriptions)

[column\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression)

[column\_keyed\_dict() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict)

[column\_keys (sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.compile.params.column_keys)

[(sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.column_keys)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.compile.params.column_keys)

[column\_mapped\_collection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.column_mapped_collection)

[column\_names (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.column_names)

[(sqlalchemy.engine.interfaces.ReflectedUniqueConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedUniqueConstraint.column_names)

[column\_prefix (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.column_prefix)

[column\_property() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property)

[column\_reflect() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.column_reflect)

[column\_sorting (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.column_sorting)

[column\_valued() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued)

[ColumnAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance)

[ColumnClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnClause)

[ColumnCollection (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection)

[ColumnCollectionConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint)

[ColumnCollectionMixin (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionMixin)

[ColumnDefault (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.ColumnDefault)

[ColumnElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement)

[ColumnExpressionArgument (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnExpressionArgument)

[ColumnOperators (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators)

[ColumnProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty)

[ColumnProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator)

[columns (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.columns)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.columns)

[(sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.columns)

[columns clause](https://docs.sqlalchemy.org/en/21/glossary.html#term-columns-clause)

[columns() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.columns)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.columns)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.columns)

[columns\_clause\_froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.columns_clause_froms)

[columns\_to\_assign (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.columns_to_assign)

[(sqlalchemy.orm.CompositeProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.columns_to_assign)

[comment (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.comment)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.comment)

[(sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint.params.comment)

[commit() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.commit)

[(sqlalchemy.engine.interfaces.DBAPIConnection method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection.commit)

[(sqlalchemy.engine.NestedTransaction method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.NestedTransaction.commit)

[commit\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.commit_twophase)

[common\_parent() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.common_parent)

[Comparator (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.Comparator)

[comparator (sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.comparator)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.comparator)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.params.comparator)

[comparator() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.comparator)

[comparator\_factory (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSON attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSONB attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.comparator_factory) | [compare (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.compare)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.compare)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.compare)

[compare() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.compare)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.compare)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare)

[compare\_values() (sqlalchemy.types.PickleType method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.compare_values)

[(sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values)

[COMPARISON (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.COMPARISON)

[compilation\_bindtemplate (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.compilation_bindtemplate)

[compile() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.compile)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.compile)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile)

[compile\_kwargs (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.params.compile_kwargs)

[(sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.compile.params.compile_kwargs)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.compile.params.compile_kwargs)

[compile\_state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.compile_state)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.compile_state)

[Compiled (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled)

[compiled (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.compiled)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.compiled)

[compiled\_cache (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.compiled_cache)

[CompileError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.CompileError)

[compiles() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.ext.compiler.compiles)

[Composite (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.Composite)

[composite primary key](https://docs.sqlalchemy.org/en/21/glossary.html#term-composite-primary-key)

[composite() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite)

[CompositeProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty)

[CompositeProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.Comparator)

[CompositeProperty.CompositeBundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle)

[composites (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.composites)

[CompoundSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect)

[Computed (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Computed)

[computed (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.computed)

[concat (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.concat)

[concat() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.concat)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.concat)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.concat)

[Concatenable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Concatenable)

[CONCATENABLE (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.CONCATENABLE)

[Concatenable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Concatenable.Comparator)

[concrete (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.concrete)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.concrete)

[ConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.ConcreteBase)

[ConcurrentModificationError (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError)

[configuration (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine_from_config.params.configuration)

[configure() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.configure)

[(sqlalchemy.ext.asyncio.async\_sessionmaker method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_sessionmaker.configure)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.configure)

[configure\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.configure_mappers)

[configured (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.configured)

[confirm\_deleted\_rows (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.confirm_deleted_rows)

[conn (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.conn)

[connect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.connect)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.connect)

[connect\_args (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.connect_args)

[Connection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection)

[connection (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.connection)

[connection() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.connection)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.connection)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.connection)

[connection\_callable() (sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable)

[connection\_proxy (sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_proxy)

[connection\_record (sqlalchemy.events.PoolEvents.checkin parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.checkin.params.connection_record)

[(sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_record)

[(sqlalchemy.events.PoolEvents.close parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.close.params.connection_record)

[ConnectionEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents)

[ConnectionPoolEntry (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry)

[consistency](https://docs.sqlalchemy.org/en/21/glossary.html#term-consistency)

[constrained](https://docs.sqlalchemy.org/en/21/glossary.html#term-constrained)

[constrained\_columns (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.constrained_columns)

[(sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint.constrained_columns)

[constraint](https://docs.sqlalchemy.org/en/21/glossary.html#term-constraint)

[Constraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint)

[constraint (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.constraint)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.constraint)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.constraint)

[constraint\_name (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.constraint_name)

[ConstraintColumnNotFoundError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.ConstraintColumnNotFoundError)

[constraints](https://docs.sqlalchemy.org/en/21/glossary.html#term-constraints)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.constraints)

[construct\_arguments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.construct_arguments)

[construct\_expanded\_state() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.construct_expanded_state)

[construct\_params() (sqlalchemy.engine.Compiled method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.construct_params)

[(sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.construct_params)

[(sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.construct_params)

[constructor (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.constructor)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.params.constructor)

[contained\_by() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.contained_by)

[(sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contained_by)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.contained_by)

[CONTAINS (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.CONTAINS)

[contains() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.contains)

[(sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.contains)

[(sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contains)

[contains\_column() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.contains_column)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.contains_column)

[(sqlalchemy.schema.ForeignKeyConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.contains_column)

[contains\_eager() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.contains_eager)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.contains_eager)

[context (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.release\_savepoint parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.release_savepoint.params.context)

[conv() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.conv)

[convert\_int (sqlalchemy.dialects.mssql.ROWVERSION parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION.params.convert_int)

[(sqlalchemy.dialects.mssql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP.params.convert_int)

[convert\_unicode (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.convert_unicode)

[copy() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.copy)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.copy)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.copy)

[correlate() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.correlate)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Exists.correlate)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate)

[correlate\_except() (sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Exists.correlate_except)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate_except)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.correlate_except)

[correlated subqueries](https://docs.sqlalchemy.org/en/21/glossary.html#term-correlated-subqueries)

[correlated subquery](https://docs.sqlalchemy.org/en/21/glossary.html#term-correlated-subquery)

[correlates](https://docs.sqlalchemy.org/en/21/glossary.html#term-correlates)

[corresponding\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.corresponding_column)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.corresponding_column)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column)

[COSINE (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.COSINE)

[count (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.count)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row.count)

[(sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.count)

[count() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.count)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.count)

[count\_from (sqlalchemy.ext.orderinglist.ordering\_list parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list.params.count_from)

[count\_from\_0() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_0)

[count\_from\_1() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_1)

[count\_from\_n\_factory() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_n_factory)

[create() (sqlalchemy.dialects.postgresql.DOMAIN method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.create)

[(sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create)

[(sqlalchemy.engine.URL class method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create)

[create\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.create_all)

[create\_async\_engine() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_engine)

[create\_async\_pool\_from\_url() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_pool_from_url)

[create\_connect\_args() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.create_connect_args)

[create\_constraint (sqlalchemy.dialects.mssql.BIT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.params.create_constraint)

[(sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.create_constraint)

[(sqlalchemy.dialects.oracle.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BOOLEAN.params.create_constraint)

[create\_cursor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.create_cursor)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.create_cursor)

[create\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine)

[create\_mock\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_mock_engine)

[create\_on\_none\_assignment (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.create_on_none_assignment)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.create_on_none_assignment)

[create\_pool\_from\_url() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_pool_from_url)

[create\_row\_processor() (sqlalchemy.orm.Bundle method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.create_row_processor)

[(sqlalchemy.orm.CompositeProperty.CompositeBundle method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle.create_row_processor)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.create_row_processor)

[create\_type (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.create_type)

[(sqlalchemy.dialects.postgresql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.params.create_type)

[(sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.create_type)

[create\_xid() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_xid)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.create_xid)

[CreateColumn (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateColumn)

[CreateEnginePlugin (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin)

[createfunc (sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)
, [\[4\]](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)

[CreateIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateIndex)

[CreateSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateSchema)

[CreateSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateSequence)

[CreateTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateTable)

[CreateTableAs (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateTableAs)

[CreateView (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView)

[creator (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.creator)

[(sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.creator)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.creator)

[criterion (sqlalchemy.orm.PropComparator.any parameter)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.any.params.criterion)

[(sqlalchemy.orm.PropComparator.has parameter)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.has.params.criterion)

[CRUD](https://docs.sqlalchemy.org/en/21/glossary.html#term-CRUD)

[crud](https://docs.sqlalchemy.org/en/21/glossary.html#term-crud)

[CTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CTE)

[cte() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.cte)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.cte)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte)

[cte\_follows\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.cte_follows_insert)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.cte_follows_insert)

[cube (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.cube)

[cume\_dist (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.cume_dist)

[CURRENT (sqlalchemy.sql.expression.FrameClauseType attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClauseType.CURRENT)

[current\_date (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.current_date)

[current\_executable (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.current_executable)

[current\_parameters (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.current_parameters)

[current\_time (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.current_time)

[current\_timestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.current_timestamp)

[current\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.current_user)

[cursor](https://docs.sqlalchemy.org/en/21/glossary.html#term-cursor)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.cursor)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.cursor)

[cursor() (sqlalchemy.engine.interfaces.DBAPIConnection method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection.cursor)

[CursorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult)

[custom\_op (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.custom_op)

[cycle (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.cycle)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.cycle)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.cycle)

[cyclomatic complexity](https://docs.sqlalchemy.org/en/21/glossary.html#term-cyclomatic-complexity) | D - | | | | --- | --- | | [data marshalling](https://docs.sqlalchemy.org/en/21/glossary.html#term-data-marshalling)

[data() (sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Values.data)

[data\_type (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.data_type)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.data_type)

[database (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.database)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.database)

[database metadata](https://docs.sqlalchemy.org/en/21/glossary.html#term-database-metadata)

[DatabaseError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DatabaseError)

[dataclass\_metadata (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.dataclass_metadata)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.dataclass_metadata)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.dataclass_metadata)

[DataError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DataError)

[datatype (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.datatype)

[DATE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.DATE)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DATE)

[Date (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Date)

[DATE\_ARITHEMETIC (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.DATE_ARITHEMETIC)

[DATEMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DATEMULTIRANGE)

[DATERANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DATERANGE)

[DATETIME (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DATETIME)

[DateTime (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DateTime)

[DATETIME (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.DATETIME)

[DATETIME2 (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIME2)

[DATETIMEOFFSET (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIMEOFFSET)

[day\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.day_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.params.day_precision)

[DBAPI](https://docs.sqlalchemy.org/en/21/glossary.html#term-DBAPI)

[dbapi (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.dbapi)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.dbapi)

[dbapi\_connection (sqlalchemy.engine.default.DefaultDialect.detect\_autocommit\_setting parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.detect_autocommit_setting.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit.params.dbapi_connection)

[dbapi\_exception\_translation\_map (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.dbapi_exception_translation_map)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.dbapi_exception_translation_map)

[DBAPIConnection (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection)

[DBAPICursor (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor)

[DBAPIError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DBAPIError)

[DBAPIType (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPIType)

[DDL](https://docs.sqlalchemy.org/en/21/glossary.html#term-DDL)

[(class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DDL)

[ddl\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.ddl_compiler)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.ddl_compiler)

[ddl\_if() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.ddl_if)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.ddl_if)

[(sqlalchemy.schema.Constraint method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Constraint.ddl_if)

[DDLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler)

[DDLEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents)

[DECIMAL (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DECIMAL)

[decimal\_return\_scale (sqlalchemy.dialects.oracle.BINARY\_DOUBLE parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_DOUBLE.params.decimal_return_scale)

[(sqlalchemy.dialects.oracle.BINARY\_FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_FLOAT.params.decimal_return_scale)

[(sqlalchemy.dialects.oracle.FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT.params.decimal_return_scale)

[declarative](https://docs.sqlalchemy.org/en/21/glossary.html#term-declarative)

[declarative\_base (sqlalchemy.ext.automap.automap\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base.params.declarative_base)

[declarative\_base() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base)

[declarative\_scan() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.declarative_scan)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.declarative_scan)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.declarative_scan)

[DeclarativeBase (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase)

[DeclarativeBaseNoMeta (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta)

[declared\_attr (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declared_attr)

[default (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.default)

[(sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.default)

[(sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.default)

[default\_expr (sqlalchemy.orm.query\_expression parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.query_expression.params.default_expr)

[default\_factory (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.default_factory)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.default_factory)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.default_factory)

[default\_from() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.default_from)

[default\_isolation\_level (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.default_isolation_level)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_isolation_level)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.default_isolation_level)

[default\_metavalue\_token (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_metavalue_token)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.default_metavalue_token)

[default\_schema\_name (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_schema_name)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.default_schema_name)

[(sqlalchemy.engine.reflection.Inspector attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.default_schema_name)

[default\_sequence\_base (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_sequence_base)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.default_sequence_base)

[DefaultClause (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.DefaultClause)

[DefaultDialect (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect)

[DefaultExecutionContext (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext)

[DefaultGenerator (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.DefaultGenerator)

[defaultload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.defaultload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.defaultload)

[defer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.defer)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.defer)

[deferrable (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.deferrable)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.deferrable)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.deferrable)

[deferred (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.deferred)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.deferred)

[(sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.deferred)

[deferred() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.deferred)

[deferred\_group (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.deferred_group)

[deferred\_raiseload (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.deferred_raiseload)

[deferred\_scalar\_loader (sqlalchemy.orm.ClassManager attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager.deferred_scalar_loader)

[DeferredReflection (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection)

[define\_constraint\_remote\_table() (sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.define_constraint_remote_table)

[defined() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.defined)

[del\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute)

[Delete (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Delete)

[delete() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.delete)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.delete)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.delete)

[delete\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.delete_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.delete_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.delete_all)

[delete\_args (sqlalchemy.orm.Query.delete parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.delete.params.delete_args)

[delete\_context (sqlalchemy.orm.QueryEvents.before\_compile\_delete parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete.params.delete_context)

[(sqlalchemy.orm.SessionEvents.after\_bulk\_delete parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_delete.params.delete_context)

[delete\_executemany\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.delete_executemany_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.delete_executemany_returning)

[delete\_extra\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.delete_extra_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.delete_extra_from_clause)

[delete\_path() (sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.delete_path)

[delete\_post\_criteria\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.delete_post_criteria_clause)

[delete\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.delete_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.delete_returning)

[delete\_returning\_multifrom (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.delete_returning_multifrom)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.delete_returning_multifrom)

[deleted](https://docs.sqlalchemy.org/en/21/glossary.html#term-deleted)

[(sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.deleted)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.deleted)

[deleted\_to\_detached() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_detached)

[deleted\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_persistent)

[deleter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.deleter)

[denormalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.denormalize_name)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.denormalize_name)

[DENSE (sqlalchemy.dialects.oracle.VectorStorageType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageType.DENSE)

[dense\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.dense_rank)

[deprecated\_since (sqlalchemy.exc.Base20DeprecationWarning attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning.deprecated_since)

[(sqlalchemy.exc.SADeprecationWarning attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning.deprecated_since)

[(sqlalchemy.exc.SAPendingDeprecationWarning attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning.deprecated_since)

[deregister() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.ext.compiler.deregister)

[desc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.desc)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.desc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.desc)

[description (sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.description)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.description)

[(sqlalchemy.sql.expression.AliasedReturnsRows attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.description)

[descriptor](https://docs.sqlalchemy.org/en/21/glossary.html#term-descriptor)

[(sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.descriptor)

[descriptors](https://docs.sqlalchemy.org/en/21/glossary.html#term-descriptors)

[Deserializer (class in sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.Deserializer)

[detach() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.detach)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.detach)

[(sqlalchemy.pool.PoolProxiedConnection method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.detach)

[detached](https://docs.sqlalchemy.org/en/21/glossary.html#term-detached)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.detached)

[detached\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.detached_to_persistent)

[DetachedInstanceError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError)

[detect\_autocommit\_setting() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.detect_autocommit_setting)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.detect_autocommit_setting)

[dialect](https://docs.sqlalchemy.org/en/21/glossary.html#term-dialect)

[Dialect (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect)

[dialect (sqlalchemy.dialects.postgresql.HSTORE.bind\_processor parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor.params.dialect)

[(sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.dialect)

[(sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.params.dialect) | [dialect\_impl() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl)

[dialect\_kw (sqlalchemy.schema.CreateView parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.params.dialect_kw)

[dialect\_kwargs (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.dialect_kwargs)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.dialect_kwargs)

[(sqlalchemy.schema.ColumnCollectionConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.dialect_kwargs)

[dialect\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.dialect_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.dialect_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.dialect_name)

[dialect\_options (sqlalchemy.engine.interfaces.ReflectedCheckConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedCheckConstraint.dialect_options)

[(sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.dialect_options)

[(sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.dialect_options)

[DialectEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents)

[DialectKWArgs (class in sqlalchemy.sql.base)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs)

[dict (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.dict)

[dict\_ (sqlalchemy.orm.AttributeEvents.init\_scalar parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar.params.dict_)

[dict\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter)

[DictBundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.DictBundle)

[difference() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.difference)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.difference)

[difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.difference_update)

[difference\_update\_query() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.difference_update_query)

[dim (sqlalchemy.dialects.oracle.VECTOR parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR.params.dim)

[dimensions (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.dimensions)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.params.dimensions)

[direction (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.direction)

[directive (sqlalchemy.orm.declared\_attr attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declared_attr.directive)

[dirty (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.dirty)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.dirty)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.dirty)

[discard() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.discard)

[DisconnectionError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DisconnectionError)

[discriminator](https://docs.sqlalchemy.org/en/21/glossary.html#term-discriminator)

[dispatch (sqlalchemy.event.base.Events attribute)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.event.base.Events.dispatch)

[(sqlalchemy.events.ConnectionEvents attribute)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.dispatch)

[(sqlalchemy.events.DDLEvents attribute)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.dispatch)

[display\_width (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.display_width)

[(sqlalchemy.dialects.mysql.INTEGER parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER.params.display_width)

[(sqlalchemy.dialects.mysql.MEDIUMINT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT.params.display_width)

[dispose() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.dispose)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.dispose)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.dispose)

[dispose\_collection() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.dispose_collection)

[distance (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.distance)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.distance)

[distinct() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.distinct)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.distinct)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.distinct)

[distinct\_on() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.distinct_on)

[distinct\_target\_key (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.distinct_target_key)

[div\_is\_floordiv (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.div_is_floordiv)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.div_is_floordiv)

[DML](https://docs.sqlalchemy.org/en/21/glossary.html#term-DML)

[dml\_compile\_state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.dml_compile_state)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.dml_compile_state)

[DMLTargetCopy (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.DMLTargetCopy)

[do\_begin() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_begin)

[do\_begin\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_begin_twophase)

[do\_close() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_close)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_close)

[do\_commit() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_commit)

[do\_commit\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase)

[do\_connect() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents.do_connect)

[do\_execute() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_execute)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents.do_execute)

[do\_execute\_no\_params() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute_no_params)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_execute_no_params)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents.do_execute_no_params)

[do\_executemany() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_executemany)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_executemany)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents.do_executemany)

[do\_init() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.do_init)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.do_init)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.do_init)

[do\_orm\_execute() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute)

[do\_ping() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_ping)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_ping)

[do\_prepare\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_prepare_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_prepare_twophase)

[do\_recover\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_recover_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_recover_twophase)

[do\_release\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_release_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_release_savepoint)

[do\_rollback() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_rollback)

[do\_rollback\_to\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_to_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_rollback_to_savepoint)

[do\_rollback\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_rollback_twophase)

[do\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_savepoint)

[do\_set\_input\_sizes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_set_input_sizes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_set_input_sizes)

[do\_setinputsizes() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents.do_setinputsizes)

[do\_terminate() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_terminate)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_terminate)

[doc (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.doc)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.doc)

[(sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.doc)

[DOMAIN (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN)

[domain model](https://docs.sqlalchemy.org/en/21/glossary.html#term-domain-model)

[DontWrapMixin (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DontWrapMixin)

[DOT (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.DOT)

[DOUBLE (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DOUBLE)

[Double (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Double)

[DOUBLE\_PRECISION (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.DOUBLE_PRECISION)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DOUBLE_PRECISION)

[dp\_annotations\_key (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key)

[dp\_anon\_name (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name)

[dp\_boolean (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean)

[dp\_clauseelement (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement)

[dp\_clauseelement\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list)

[dp\_clauseelement\_tuple (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple)

[dp\_clauseelement\_tuples (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples)

[dp\_dialect\_options (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options)

[dp\_dml\_multi\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values)

[dp\_dml\_ordered\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values)

[dp\_dml\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values)

[dp\_fromclause\_canonical\_column\_collection (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection)

[dp\_fromclause\_ordered\_set (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set)

[dp\_has\_cache\_key (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key)

[dp\_has\_cache\_key\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list)

[dp\_has\_cache\_key\_tuples (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_tuples)

[dp\_ignore (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_ignore)

[dp\_inspectable (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable)

[dp\_inspectable\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable_list)

[dp\_multi (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_multi)

[dp\_multi\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_multi_list)

[dp\_named\_ddl\_element (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element)

[dp\_operator (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator)

[dp\_params (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_params)

[dp\_plain\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict)

[dp\_plain\_obj (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj)

[dp\_prefix\_sequence (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence)

[dp\_propagate\_attrs (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs)

[dp\_statement\_hint\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list)

[dp\_string (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string)

[dp\_string\_clauseelement\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict)

[dp\_string\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list)

[dp\_string\_multi\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict)

[dp\_table\_hint\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list)

[dp\_type (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type)

[dp\_unknown\_structure (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure)

[DQL](https://docs.sqlalchemy.org/en/21/glossary.html#term-DQL)

[driver (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.driver)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.driver)

[(sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.driver)

[driver\_column\_names (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.driver_column_names)

[driver\_connection (sqlalchemy.engine.AdaptedConnection attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.AdaptedConnection.driver_connection)

[(sqlalchemy.pool.ConnectionPoolEntry attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.driver_connection)

[(sqlalchemy.pool.ManagesConnection attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ManagesConnection.driver_connection)

[driver\_exception (sqlalchemy.exc.DBAPIError attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DBAPIError.driver_exception)

[(sqlalchemy.exc.EmulatedDBAPIException attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.EmulatedDBAPIException.driver_exception)

[drivername (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.drivername)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.drivername)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set.params.drivername)

[drop() (sqlalchemy.dialects.postgresql.DOMAIN method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.drop)

[(sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop)

[(sqlalchemy.schema.Index method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Index.drop)

[drop\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.drop_all)

[DropConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropConstraint)

[DropIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropIndex)

[DropSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropSchema)

[DropSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropSequence)

[DropTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropTable)

[DropView (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropView)

[dumps() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.dumps)

[DuplicateColumnError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.DuplicateColumnError)

[duplicates\_constraint (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.duplicates_constraint)

[duplicates\_index (sqlalchemy.engine.interfaces.ReflectedUniqueConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedUniqueConstraint.duplicates_index)

[durability](https://docs.sqlalchemy.org/en/21/glossary.html#term-durability)

[dynamic\_loader() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.dynamic_loader)

[DynamicMapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.DynamicMapped) | E - | | | | --- | --- | | [e (sqlalchemy.pool.ConnectionPoolEntry.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.invalidate.params.e)

[(sqlalchemy.pool.ManagesConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ManagesConnection.invalidate.params.e)

[(sqlalchemy.pool.PoolProxiedConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.invalidate.params.e)

[eager load](https://docs.sqlalchemy.org/en/21/glossary.html#term-eager-load)

[eager loaded](https://docs.sqlalchemy.org/en/21/glossary.html#term-eager-loaded)

[eager loading](https://docs.sqlalchemy.org/en/21/glossary.html#term-eager-loading)

[eager loads](https://docs.sqlalchemy.org/en/21/glossary.html#term-eager-loads)

[eager\_defaults (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.eager_defaults)

[eagerly load](https://docs.sqlalchemy.org/en/21/glossary.html#term-eagerly-load)

[echo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.echo)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.echo)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.params.echo)

[echo\_pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.echo_pool)

[effective\_returning (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.effective_returning)

[effective\_value (sqlalchemy.sql.expression.BindParameter attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.effective_value)

[element (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.element)

[(sqlalchemy.schema.AddConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.AddConstraint.params.element)

[(sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateIndex.params.element)

[elements (sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.elements)

[else\_ (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.case.params.else_)

[empty (sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.empty)

[empty() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.empty)

[empty\_in\_strategy (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.empty_in_strategy)

[EmulatedDBAPIException](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.EmulatedDBAPIException)

[enable\_assertions() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.enable_assertions)

[enable\_baked\_queries (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.enable_baked_queries)

[enable\_eagerloads() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.enable_eagerloads)

[enable\_from\_linting (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.enable_from_linting)

[enable\_relationship\_loading() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading)

[enable\_tracking (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.enable_tracking)

[end (sqlalchemy.sql.expression.FrameClause parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClause.params.end)

[end\_frame\_type (sqlalchemy.sql.expression.FrameClause parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClause.params.end_frame_type)

[endswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.endswith)

[Engine (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine)

[engine (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.engine)

[(sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.engine)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.engine)

[engine\_config\_types (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.engine_config_types)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.engine_config_types)

[engine\_connect() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.engine_connect)

[engine\_created() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.engine_created)

[(sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.engine_created)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.engine_created)

[engine\_disposed() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.engine_disposed)

[engine\_from\_config() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine_from_config)

[ensure\_kwarg (sqlalchemy.sql.compiler.GenericTypeCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler.ensure_kwarg)

[(sqlalchemy.types.UserDefinedType attribute)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.UserDefinedType.ensure_kwarg)

[entities (sqlalchemy.orm.Query parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.params.entities)

[entity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.entity)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.entity)

[entity\_description (sqlalchemy.sql.expression.UpdateBase attribute)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.UpdateBase.entity_description)

[entity\_namespace (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.entity_namespace)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.entity_namespace)

[(sqlalchemy.sql.expression.FromClause attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause.entity_namespace)

[entity\_or\_base (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.entity_or_base)

[ENUM (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM)

[Enum (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum)

[enums (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.enums)

[escape (sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains.params.escape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith.params.escape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains.params.escape)

[escaped\_bind\_names (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.escaped_bind_names)

[EUCLIDEAN (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.EUCLIDEAN)

[evaluates\_none() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none)

[Events (class in sqlalchemy.event.base)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.event.base.Events)

[events (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.params.events)

examples.adjacency\_list

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.adjacency_list)

examples.association

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.association)

examples.asyncio

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.asyncio)

examples.custom\_attributes

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.custom_attributes)

examples.dogpile\_caching

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.dogpile_caching)

examples.dynamic\_dict

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.dynamic_dict)

examples.extending\_query

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.extending_query)

examples.generic\_associations

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.generic_associations)

examples.graphs

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.graphs)

examples.inheritance

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.inheritance)

examples.materialized\_paths

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.materialized_paths)

examples.nested\_sets

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.nested_sets)

examples.performance

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.performance)

examples.sharding

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.sharding) | examples.space\_invaders

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.space_invaders)

examples.syntax\_extensions

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.syntax_extensions)

examples.versioned\_history

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.versioned_history)

examples.versioned\_rows

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.versioned_rows)

examples.vertical

[module](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.vertical)

[except\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.except_)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.except_)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.except_)

[except\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.except_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.except_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.except_all)

[exception (sqlalchemy.engine.Connection.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.invalidate.params.exception)

[(sqlalchemy.events.PoolEvents.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.invalidate.params.exception)

[(sqlalchemy.events.PoolEvents.soft\_invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate.params.exception)

[ExceptionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext)

[exclude\_properties (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.exclude_properties)

[exclude\_set\_input\_sizes (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.exclude_set_input_sizes)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.exclude_set_input_sizes)

[ExcludeConstraint (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint)

[excluded (sqlalchemy.dialects.postgresql.Insert attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.excluded)

[(sqlalchemy.dialects.sqlite.Insert attribute)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.excluded)

[exec\_driver\_sql() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.exec_driver_sql)

[Executable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Executable)

[ExecutableDDLElement (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.ExecutableDDLElement)

[ExecutableStatement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ExecutableStatement)

[execute() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execute)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.execute)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.execute)

[execute\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.execute_chooser)

[execute\_if() (sqlalchemy.schema.ExecutableDDLElement method)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.ExecutableDDLElement.execute_if)

[execute\_sequence\_format (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execute_sequence_format)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.execute_sequence_format)

[execute\_style (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.execute_style)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.execute_style)

[executemany](https://docs.sqlalchemy.org/en/21/glossary.html#term-executemany)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.executemany)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.executemany)

[executemany() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.executemany)

[execution\_context (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.execution_context)

[execution\_ctx\_cls (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execution_ctx_cls)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.execution_ctx_cls)

[execution\_options (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.execution_options)

[(sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.execution_options)

[(sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execute.params.execution_options)

[execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.execution_options)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.execution_options)

[ExecutionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext)

[executor (sqlalchemy.create\_mock\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_mock_engine.params.executor)

[existing\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace.params.existing_adapter)

[Exists (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Exists)

[exists() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.exists)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.exists)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.exists)

[ExpandedState (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.ExpandedState)

[expanding (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.expanding)

[expire](https://docs.sqlalchemy.org/en/21/glossary.html#term-expire)

[expire() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire)

[(sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.expire)

[expire\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.expire_all)

[expire\_on\_commit (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.expire_on_commit)

[(sqlalchemy.orm.sessionmaker parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.expire_on_commit)

[expire\_on\_flush (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.expire_on_flush)

[expired](https://docs.sqlalchemy.org/en/21/glossary.html#term-expired)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.expired)

[expired\_attribute\_loader (sqlalchemy.orm.ClassManager attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager.expired_attribute_loader)

[expired\_attributes (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.expired_attributes)

[expires](https://docs.sqlalchemy.org/en/21/glossary.html#term-expires)

[Expiring](https://docs.sqlalchemy.org/en/21/glossary.html#term-Expiring)

[expiring](https://docs.sqlalchemy.org/en/21/glossary.html#term-expiring)

[exported\_columns (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.exported_columns)

[(sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.exported_columns)

[(sqlalchemy.sql.expression.FromClause attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause.exported_columns)

[expr (sqlalchemy.orm.with\_expression parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.with_expression.params.expr)

[(sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.between.params.expr)

[(sqlalchemy.sql.expression.extract parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.extract.params.expr)

[expression (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.expression)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryableAttribute.expression)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.expression)

[expression() (sqlalchemy.ext.hybrid.hybrid\_method method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.expression)

[(sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.expression)

[expressions (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.expressions)

[(sqlalchemy.orm.ColumnProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.expressions)

[expunge() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expunge)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expunge)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.expunge)

[expunge\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expunge_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expunge_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.expunge_all)

[ext() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.ext)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.ext)

[extend() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.extend)

[(sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.extend)

[extend\_existing (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.extend_existing)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.extend_existing)

[ExtendedInstrumentationRegistry (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry)

[extension\_type (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.extension_type)

[ExternalTraversal (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal)

[ExternalType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.ExternalType)

[extra\_dependencies (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.sort_tables.params.extra_dependencies)

[(sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.extra_dependencies)

[Extract (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Extract)

[extract() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.extract) | F - | | | | --- | --- | | [facade](https://docs.sqlalchemy.org/en/21/glossary.html#term-facade)

[false() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.false)

[False\_ (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.False_)

[favor\_returning\_over\_lastrowid (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.favor_returning_over_lastrowid)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.favor_returning_over_lastrowid)

[fetch() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.fetch)

[fetchall() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.fetchall)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.fetchall)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.fetchall)

[fetchall\_for\_returning() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.fetchall_for_returning)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.fetchall_for_returning)

[FetchedValue (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.FetchedValue)

[fetchmany() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.fetchmany)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.fetchmany)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.fetchmany)

[fetchone() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.fetchone)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.fetchone)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.fetchone)

[field (sqlalchemy.sql.expression.extract parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.extract.params.field)

[fields (sqlalchemy.dialects.postgresql.INTERVAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL.params.fields)

[filestream (sqlalchemy.dialects.mssql.VARBINARY parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.VARBINARY.params.filestream)

[filter() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.filter)

[(sqlalchemy.sql.expression.AggregateOrderBy method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.AggregateOrderBy.filter)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.filter)

[filter\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.filter_by)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.filter_by)

[filter\_fn (sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.filter_fn)

[filter\_names (sqlalchemy.engine.reflection.Inspector.get\_multi\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints.params.filter_names)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns.params.filter_names)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys.params.filter_names)

[filter\_states\_for\_dep() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction.filter_states_for_dep)

[FilterResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.FilterResult)

[finalize\_flush\_changes() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction.finalize_flush_changes)

[fire\_sequence() (sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.fire_sequence)

[first() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.first)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.first)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.first)

[first\_connect() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.first_connect)

[flag\_dirty() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty)

[flag\_modified() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified)

[flags (sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_match.params.flags)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace.params.flags)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match.params.flags)

[flat (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.flat)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.flat)

[(sqlalchemy.sql.expression.alias parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.alias.params.flat) | [FLOAT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT)

[(class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.FLOAT)

[Float (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Float)

[FLOAT32 (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.FLOAT32)

[FLOAT64 (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.FLOAT64)

[flush](https://docs.sqlalchemy.org/en/21/glossary.html#term-flush)

[flush() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.flush)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.flush)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.flush)

[flush\_context (sqlalchemy.orm.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush.params.flush_context)

[(sqlalchemy.orm.SessionEvents.after\_flush parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush.params.flush_context)

[(sqlalchemy.orm.SessionEvents.after\_flush\_postexec parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec.params.flush_context)

[flushed](https://docs.sqlalchemy.org/en/21/glossary.html#term-flushed)

[FlushError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.FlushError)

[flushing](https://docs.sqlalchemy.org/en/21/glossary.html#term-flushing)

[FOLLOWING (sqlalchemy.sql.expression.FrameClauseType attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClauseType.FOLLOWING)

[for\_class() (sqlalchemy.ext.associationproxy.AssociationProxy method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class)

[for\_executemany (sqlalchemy.sql.compiler.SQLCompiler parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.params.for_executemany)

[for\_proxy() (sqlalchemy.ext.associationproxy.AssociationProxyInstance class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.for_proxy)

[for\_session() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.for_session)

[for\_update (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.for_update)

[foreign key constraint](https://docs.sqlalchemy.org/en/21/glossary.html#term-foreign-key-constraint)

[foreign() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.foreign)

[foreign\_key\_constraints (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.foreign_key_constraints)

[foreign\_keys (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.foreign_keys)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.foreign_keys)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.foreign_keys)

[ForeignKey (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey)

[ForeignKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint)

[format\_column() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_column)

[format\_label\_name() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_label_name)

[format\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_schema)

[format\_table() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table)

[format\_table\_seq() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table_seq)

[FrameClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClause)

[FrameClauseType (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClauseType)

[freeze() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.freeze)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.freeze)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.freeze)

[FROM clause](https://docs.sqlalchemy.org/en/21/glossary.html#term-FROM-clause)

[from\_ (sqlalchemy.sql.expression.Select.join\_from parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.join_from.params.from_)

[from\_bytes() (sqlalchemy.dialects.postgresql.BitString class method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.from_bytes)

[from\_dml\_column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.from_dml_column)

[from\_engine() (sqlalchemy.engine.reflection.Inspector class method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.from_engine)

[from\_entity (sqlalchemy.orm.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_parent.params.from_entity)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_parent.params.from_entity)

[from\_int() (sqlalchemy.dialects.postgresql.BitString class method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.from_int)

[from\_select() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.from_select)

[from\_statement() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.from_statement)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.from_statement)

[FromClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause)

[froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.froms)

[FrozenResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.FrozenResult)

[fsp (sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP.params.fsp)

[full (sqlalchemy.ext.baked.BakedQuery.spoil parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil.params.full)

[(sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.join.params.full)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.join.params.full)

[full\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.full_returning)

[func (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.func)

[funcfilter() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.funcfilter)

[Function (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.Function)

[FunctionElement (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement)

[FunctionFilter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter)

[future (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.future)

[(sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.future) | G - | | | | --- | --- | | [generate\_base() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base)

[generate\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.generate_relationship)

[generate\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship)

[generative](https://docs.sqlalchemy.org/en/21/glossary.html#term-generative)

[GenerativeSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect)

[GenericFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.GenericFunction)

[GenericTypeCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler)

[get() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.get)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get)

[get\_async\_dialect\_cls() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_async_dialect_cls)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_async_dialect_cls)

[get\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute)

[get\_attribute\_history() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction.get_attribute_history)

[get\_backend\_name() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.get_backend_name)

[get\_bind() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get_bind)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_bind)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind)

[get\_bit() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.get_bit)

[get\_check\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_check_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_check_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints)

[get\_children() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.get_children)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.get_children)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.get_children)

[get\_columns() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_columns)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_columns)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns)

[get\_current\_parameters() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters)

[get\_dbapi\_type() (sqlalchemy.types.Date method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type)

[(sqlalchemy.types.DateTime method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type)

[(sqlalchemy.types.Integer method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type)

[get\_default\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_default_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_default_isolation_level)

[get\_dialect() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.get_dialect)

[get\_dialect\_cls() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_dialect_cls)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_dialect_cls)

[get\_dialect\_pool\_class() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_dialect_pool_class)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_dialect_pool_class)

[get\_domains() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_domains)

[get\_driver\_connection() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_driver_connection)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_driver_connection)

[get\_driver\_name() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.get_driver_name)

[get\_engine() (sqlalchemy.ext.serializer.Deserializer method)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine)

[get\_enums() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums)

[get\_execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.get_execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.get_execution_options)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.get_execution_options)

[get\_final\_froms() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.get_final_froms)

[get\_foreign\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_foreign_keys)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_foreign_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_foreign_keys)

[get\_foreign\_table\_names() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_foreign_table_names)

[get\_history() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.get_history)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.get_history)

[get\_indexes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_indexes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_indexes)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_indexes)

[get\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict)

[get\_isolation\_level() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.get_isolation_level)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_isolation_level)

[get\_isolation\_level\_values() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_isolation_level_values)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_isolation_level_values)

[get\_label\_style (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.get_label_style)

[get\_label\_style() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.get_label_style)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.get_label_style)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.get_label_style) | [get\_lastrowid() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_lastrowid)

[get\_materialized\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_materialized_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_materialized_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_materialized_view_names)

[get\_multi\_check\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_check_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_check_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints)

[get\_multi\_columns() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_columns)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_columns)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns)

[get\_multi\_foreign\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_foreign_keys)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_foreign_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys)

[get\_multi\_indexes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_indexes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_indexes)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_indexes)

[get\_multi\_pk\_constraint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_pk_constraint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_pk_constraint)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_pk_constraint)

[get\_multi\_table\_comment() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_table_comment)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_table_comment)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_table_comment)

[get\_multi\_table\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_table_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_table_options)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_table_options)

[get\_multi\_unique\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_unique_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_multi_unique_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_unique_constraints)

[get\_nested\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.get_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_nested_transaction)

[get\_one() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get_one)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_one)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.get_one)

[get\_out\_parameter\_values() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_out_parameter_values)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.get_out_parameter_values)

[get\_pk\_constraint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_pk_constraint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_pk_constraint)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_pk_constraint)

[get\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property)

[get\_property\_by\_column() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property_by_column)

[get\_raw\_connection() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_raw_connection)

[get\_referent() (sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.get_referent)

[get\_result\_processor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_result_processor)

[get\_rowcount() (sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.get_rowcount)

[get\_schema\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_schema_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_schema_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_schema_names)

[get\_schema\_object\_by\_name() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.get_schema_object_by_name)

[get\_schema\_objects() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.get_schema_objects)

[get\_select\_precolumns() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.get_select_precolumns)

[get\_sequence\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_sequence_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_sequence_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sequence_names)

[get\_sorted\_table\_and\_fkc\_names() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sorted_table_and_fkc_names)

[get\_table\_comment() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_comment)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_table_comment)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_comment)

[get\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_names)

[get\_table\_oid() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid)

[get\_table\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_table_options)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_options)

[get\_temp\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_table_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_temp_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_table_names)

[get\_temp\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_temp_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_view_names)

[get\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.get_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_transaction)

[get\_unique\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_unique_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_unique_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_unique_constraints)

[get\_view\_definition() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_definition)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_view_definition)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_definition)

[get\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.get_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_names)

[getset\_factory (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.getset_factory)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.getset_factory)

[getter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.getter)

[global\_track\_bound\_values (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.global_track_bound_values)

[group (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.group)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.group)

[group\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.group_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by)

[group\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.group_by_clause)

[grouping\_sets (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.grouping_sets)

[groups (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.over.params.groups) | H - | | | | --- | --- | | [handle\_dbapi\_exception() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.handle_dbapi_exception)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.handle_dbapi_exception)

[handle\_dialect\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_dialect_kwargs)

[handle\_error() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DialectEvents.handle_error)

[handle\_pool\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_pool_kwargs)

[has() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.has)

[has\_all() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_all)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_all)

[has\_any() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_any)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_any)

[has\_changes() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes)

[has\_identity (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.has_identity)

[has\_index() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_index)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.has_index)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_index)

[has\_inherited\_table() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.has_inherited_table)

[has\_key() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_key)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_key)

[has\_out\_parameters (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.has_out_parameters)

[has\_parent() (sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager.has_parent)

[has\_schema() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_schema)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.has_schema)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_schema)

[has\_sequence() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_sequence)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.has_sequence)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_sequence)

[has\_table() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_table)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.has_table)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_table)

[has\_terminate (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_terminate)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.has_terminate)

[has\_type() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.has_type) | [HasCacheKey (class in sqlalchemy.sql.traversals)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey)

[HasConditionalDDL (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.HasConditionalDDL)

[HasCTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE)

[HasDescriptionCode (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.HasDescriptionCode)

[hash (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.hash)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.hash)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.hash)

[hashable (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.hashable)

[(sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.hashable)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.hashable)

[HasPrefixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes)

[HasSuffixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes)

[having() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.having)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.having)

[hide\_parameters (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.hide_parameters)

[hide\_password (sqlalchemy.engine.URL.render\_as\_string parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.render_as_string.params.hide_password)

[History (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History)

[history (sqlalchemy.orm.AttributeState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.AttributeState.history)

[HNSW (sqlalchemy.dialects.oracle.VectorIndexType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexType.HNSW)

[hnsw\_efconstruction (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.hnsw_efconstruction)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.hnsw_efconstruction)

[hnsw\_neighbors (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.hnsw_neighbors)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.hnsw_neighbors)

[host (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.host)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.host)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set.params.host)

[HSTORE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE)

[hstore (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore)

[HSTORE.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator)

[hybrid\_method (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method)

[HYBRID\_METHOD (sqlalchemy.ext.hybrid.HybridExtensionType attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HybridExtensionType.HYBRID_METHOD)

[hybrid\_property (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property)

[HYBRID\_PROPERTY (sqlalchemy.ext.hybrid.HybridExtensionType attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HybridExtensionType.HYBRID_PROPERTY)

[HybridExtensionType (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HybridExtensionType) | I - | | | | --- | --- | | [icontains() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.icontains)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.icontains)

[ident (sqlalchemy.orm.Query.get parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.get.params.ident)

[(sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.ident)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.get.params.ident)

[Identified (class in sqlalchemy.log)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.log.Identified)

[identifier\_preparer (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.identifier_preparer)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.identifier_preparer)

[IdentifierError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.IdentifierError)

[IdentifierPreparer (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer)

[Identity (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity)

[identity (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.identity)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.identity)

[identity key](https://docs.sqlalchemy.org/en/21/glossary.html#term-identity-key)

[identity map](https://docs.sqlalchemy.org/en/21/glossary.html#term-identity-map)

[identity\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.identity_chooser)

[identity\_key (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.identity_key)

[identity\_key() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.util.identity_key)

[(sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.identity_key)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.identity_key)

[identity\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_instance)

[identity\_key\_from\_primary\_key() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_primary_key)

[identity\_key\_from\_row() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row)

[identity\_map (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.identity_map)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.identity_map)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.identity_map)

[IdentityMap (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.IdentityMap)

[iendswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.iendswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.iendswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.iendswith)

[if\_exists (sqlalchemy.schema.DropConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropConstraint.params.if_exists)

[(sqlalchemy.schema.DropIndex parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropIndex.params.if_exists)

[(sqlalchemy.schema.DropTable parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropTable.params.if_exists)

[if\_not\_exists (sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateIndex.params.if_not_exists)

[(sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateTable.params.if_not_exists)

[(sqlalchemy.schema.CreateTableAs parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateTableAs.params.if_not_exists)

[ignore\_unpopulated\_attribute (sqlalchemy.orm.attribute\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict.params.ignore_unpopulated_attribute)

[(sqlalchemy.orm.column\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict.params.ignore_unpopulated_attribute)

[(sqlalchemy.orm.keyfunc\_mapping parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping.params.ignore_unpopulated_attribute)

[ilike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.ilike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.ilike)

[IllegalStateChangeError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.IllegalStateChangeError)

[IMAGE (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE)

[immediateload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.immediateload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.immediateload)

[imperative](https://docs.sqlalchemy.org/en/21/glossary.html#term-imperative)

[impl (sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.impl)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.impl)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.params.impl)

[implicit\_returning (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.implicit_returning)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.implicit_returning)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.implicit_returning)

[import\_dbapi() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.import_dbapi)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.import_dbapi)

[in\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.in_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.in_)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.in_)

[in\_boolean\_mode (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.in_boolean_mode)

[in\_boolean\_mode() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.in_boolean_mode)

[in\_natural\_language\_mode (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.in_natural_language_mode)

[in\_natural\_language\_mode() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.in_natural_language_mode)

[in\_nested\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.in_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.in_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.in_nested_transaction)

[in\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.in_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.in_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.in_transaction)

[in\_use (sqlalchemy.pool.ConnectionPoolEntry attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.in_use)

[include\_aliases (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.include_aliases)

[include\_backrefs (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_backrefs)

[include\_collections (sqlalchemy.ext.asyncio.async\_scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified.params.include_collections)

[(sqlalchemy.ext.asyncio.AsyncSession.is\_modified parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_modified.params.include_collections)

[(sqlalchemy.orm.scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.is_modified.params.include_collections)

[include\_columns (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.include_columns)

[(sqlalchemy.engine.reflection.Inspector.reflect\_table parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table.params.include_columns)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.include_columns)

[include\_defaults (sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.include_defaults)

[include\_foreign\_key\_constraints (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateTable.params.include_foreign_key_constraints)

[include\_properties (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.include_properties)

[include\_removes (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_removes)

[include\_set\_input\_sizes (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.include_set_input_sizes)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.include_set_input_sizes)

[increment (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.increment)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.increment)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.increment)

[Index (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Index)

[index (sqlalchemy.engine.CursorResult.scalars parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.scalars.params.index)

[(sqlalchemy.engine.Result.scalars parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.scalars.params.index)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row.index)

[index\_elements (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_elements)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_elements)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing.params.index_elements)

[index\_name (sqlalchemy.engine.reflection.Inspector.has\_index parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_index.params.index_name)

[index\_property (class in sqlalchemy.ext.indexable)](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property)

[index\_type (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.index_type)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.index_type)

[index\_where (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_where)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing.params.index_where)

[Indexable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Indexable)

[INDEXABLE (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.INDEXABLE)

[Indexable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Indexable.Comparator)

[INDEXES (sqlalchemy.schema.CheckFirst attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst.INDEXES)

[indexes (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.indexes)

[INET (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INET)

[INET4 (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.INET4)

[INET6 (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.INET6)

[info (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.info)

[(sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.info)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.info)

[info\_cache (sqlalchemy.engine.reflection.Inspector attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.info_cache)

[inherit\_cache (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inherit_cache)

[(sqlalchemy.dialects.mysql.match attribute)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.inherit_cache)

[(sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.inherit_cache)

[inherit\_condition (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.inherit_condition)

[inherit\_foreign\_keys (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.inherit_foreign_keys)

[inherit\_schema (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema)

[(sqlalchemy.types.SchemaType attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.SchemaType.inherit_schema)

[inherits (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.inherits)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.inherits)

[init (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.init)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.init)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.init)

[init() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.init)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.init)

[init\_collection() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.init_collection)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection)

[init\_failure() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.init_failure)

[init\_scalar() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar)

[initialize() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.initialize)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.initialize)

[initialize\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict)

[initially (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.initially)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.initially)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.initially)

[initiator (sqlalchemy.orm.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.append.params.initiator)

[(sqlalchemy.orm.AttributeEvents.append\_wo\_mutation parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.append_wo_mutation.params.initiator)

[(sqlalchemy.orm.AttributeEvents.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace.params.initiator)

[inline (sqlalchemy.sql.expression.insert parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.insert.params.inline)

[inline() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.inline)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Update.inline)

[inline\_comments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.inline_comments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.inline_comments)

[inner\_columns (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.inner_columns)

[innerjoin (sqlalchemy.orm.joinedload parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.joinedload.params.innerjoin)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.innerjoin)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.innerjoin)

[inplace (sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.inplace)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.inplace)

[Insert (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert)

[insert (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listen.params.insert)

[insert sentinel](https://docs.sqlalchemy.org/en/21/glossary.html#term-insert-sentinel)

[insert() (in module sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.insert)

[(in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert)

[(in module sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.insert)

[insert\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.insert_column)

[insert\_default (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.insert_default)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.insert_default)

[insert\_executemany\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insert_executemany_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.insert_executemany_returning)

[insert\_executemany\_returning\_sort\_by\_parameter\_order (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insert_executemany_returning_sort_by_parameter_order)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.insert_executemany_returning_sort_by_parameter_order)

[insert\_prefetch (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.insert_prefetch)

[insert\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insert_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.insert_returning)

[insert\_sentinel (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.insert_sentinel)

[insert\_sentinel() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.insert_sentinel)

[insert\_single\_values\_expr (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.insert_single_values_expr)

[inserted (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inserted)

[inserted\_primary\_key (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.inserted_primary_key)

[inserted\_primary\_key\_rows (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.inserted_primary_key_rows) | [insertmanyvalues](https://docs.sqlalchemy.org/en/21/glossary.html#term-insertmanyvalues)

[insertmanyvalues\_implicit\_sentinel (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insertmanyvalues_implicit_sentinel)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.insertmanyvalues_implicit_sentinel)

[insertmanyvalues\_max\_parameters (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insertmanyvalues_max_parameters)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.insertmanyvalues_max_parameters)

[insertmanyvalues\_page\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.insertmanyvalues_page_size)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.insertmanyvalues_page_size)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insertmanyvalues_page_size)

[inspect() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/inspection.html#sqlalchemy.inspect)

[InspectionAttr (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr)

[InspectionAttrExtensionType (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttrExtensionType)

[InspectionAttrInfo (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttrInfo)

[Inspector (class in sqlalchemy.engine.reflection)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector)

[install\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor)

[install\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member)

[install\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state)

[instance (sqlalchemy.ext.asyncio.async\_object\_session parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_object_session.params.instance)

[(sqlalchemy.ext.asyncio.async\_scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire.params.instance)

[(sqlalchemy.ext.asyncio.async\_scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified.params.instance)

[instance\_state() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.instance_state)

[InstanceEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents)

[instances (sqlalchemy.orm.SessionEvents.before\_flush parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush.params.instances)

[instances() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.instances)

[InstanceState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState)

[instrument\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute)

[instrument\_class() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.instrument_class)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.instrument_class)

[(sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.instrument_class)

[instrument\_collection\_class() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class)

[instrumentation](https://docs.sqlalchemy.org/en/21/glossary.html#term-instrumentation)

[instrumentation\_finders (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders)

[INSTRUMENTATION\_MANAGER (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER)

[InstrumentationEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstrumentationEvents)

[InstrumentationFactory (class in sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory)

[InstrumentationManager (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager)

[instrumented](https://docs.sqlalchemy.org/en/21/glossary.html#term-instrumented)

[InstrumentedAttribute (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute)

[InstrumentedDict (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedDict)

[InstrumentedList (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedList)

[InstrumentedSet (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedSet)

[instrumenting](https://docs.sqlalchemy.org/en/21/glossary.html#term-instrumenting)

[INT (in module sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.INT)

[INT4MULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT4MULTIRANGE)

[INT4RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT4RANGE)

[INT8 (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.INT8)

[INT8MULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT8MULTIRANGE)

[INT8RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT8RANGE)

[INTEGER (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.INTEGER)

[Integer (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Integer)

[INTEGER (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.INTEGER)

[IntegrityError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.IntegrityError)

[InterfaceError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.InterfaceError)

[InternalError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.InternalError)

[internally\_instrumented() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.internally_instrumented)

[InternalTraversal (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal)

[intersect() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.intersect)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.intersect)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.intersect)

[intersect\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.intersect_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.intersect_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.intersect_all)

[intersection() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.intersection)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.intersection)

[intersection\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.intersection_update)

[INTERVAL (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL)

[Interval (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval)

[Interval.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.Comparator)

[into() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.into)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.into)

[(sqlalchemy.sql.expression.SelectBase method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectBase.into)

[invalidate() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.invalidate)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.invalidate)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.invalidate)

[invalidate\_pool\_on\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.invalidate_pool_on_disconnect)

[invalidated (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.invalidated)

[(sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.invalidated)

[InvalidatePoolError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.InvalidatePoolError)

[InvalidRequestError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.InvalidRequestError)

[invoke\_statement() (sqlalchemy.orm.ORMExecuteState method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement)

[invoked\_statement (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.invoked_statement)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.invoked_statement)

[is\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_)

[is\_active (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_active)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_active)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.is_active)

[is\_aliased\_class (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_aliased_class)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_aliased_class)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_aliased_class)

[is\_async (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.is_async)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.is_async)

[is\_attribute (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.is_attribute)

[is\_bundle (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_bundle)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_bundle)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_bundle)

[is\_clause\_element (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_clause_element)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_clause_element)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_clause_element)

[is\_column\_load (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load)

[is\_comparison (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.is_comparison)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.is_comparison)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.is_comparison)

[is\_delete (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_delete)

[is\_deleted() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction.is_deleted)

[is\_derived\_from() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.is_derived_from)

[(sqlalchemy.sql.expression.AliasedReturnsRows method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.is_derived_from)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.is_derived_from)

[is\_detached (sqlalchemy.pool.PoolProxiedConnection attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.is_detached)

[is\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.is_disconnect)

[is\_disconnect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.is_disconnect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.is_disconnect)

[is\_distinct\_from() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_distinct_from)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_distinct_from)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_distinct_from)

[is\_dml (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.is_dml)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_dml)

[is\_empty (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.is_empty)

[is\_executemany (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_executemany)

[is\_from\_statement (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_from_statement)

[is\_insert (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.is_insert)

[(sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_insert)

[is\_instance (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_instance)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_instance)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.is_instance)

[is\_instrumented() (in module sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented)

[is\_literal (sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.column.params.is_literal)

[is\_mapper (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_mapper)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_mapper)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_mapper)

[is\_modified() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_modified)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.is_modified)

[is\_not() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_not)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_not)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_not)

[is\_not\_distinct\_from() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_not_distinct_from)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_not_distinct_from)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_not_distinct_from)

[is\_orm\_statement (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement)

[is\_pre\_ping (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.is_pre_ping)

[is\_prepared (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.is_prepared)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.is_prepared)

[(sqlalchemy.engine.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase.params.is_prepared)

[is\_property (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_property)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_property)

[(sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.is_property)

[is\_relationship\_load (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load)

[is\_select (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_select)

[is\_selectable (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_selectable)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_selectable)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.is_selectable)

[is\_sibling() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.is_sibling)

[is\_single\_entity (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.is_single_entity)

[is\_text (sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_text)

[is\_update (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_update)

[is\_valid (sqlalchemy.pool.PoolProxiedConnection attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.is_valid)

[is\_view (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.is_view)

[isa() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.isa)

[isempty (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.isempty)

[isinsert (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.isinsert)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.isinsert)

[ismulti (sqlalchemy.exc.StatementError attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.StatementError.ismulti)

[isnot() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.isnot)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.isnot)

[isnot\_distinct\_from() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.isnot_distinct_from)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot_distinct_from)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.isnot_distinct_from)

[isolate\_from\_table (sqlalchemy.schema.AddConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.AddConstraint.params.isolate_from_table)

[(sqlalchemy.schema.DropConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropConstraint.params.isolate_from_table)

[isolate\_multiinsert\_groups (sqlalchemy.engine.default.DefaultExecutionContext.get\_current\_parameters parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters.params.isolate_multiinsert_groups)

[isolated](https://docs.sqlalchemy.org/en/21/glossary.html#term-isolated)

[isolation](https://docs.sqlalchemy.org/en/21/glossary.html#term-isolation)

[isolation level](https://docs.sqlalchemy.org/en/21/glossary.html#term-isolation-level)

[isolation\_level (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.isolation_level)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.isolation_level)

[isouter (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.join.params.isouter)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.join.params.isouter)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.isouter)

[isoutparam (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.isoutparam)

[istartswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.istartswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.istartswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.istartswith)

[isupdate (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.isupdate)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.isupdate)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.isupdate)

[item\_type (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.item_type)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.params.item_type)

[items() (sqlalchemy.engine.RowMapping method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.RowMapping.items)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.items)

[iterate() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.iterate)

[(sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate)

[iterate\_properties (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.iterate_properties)

[iterator (sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.iterator)

[iterator() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.iterator)

[IteratorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.IteratorResult)

[IVF (sqlalchemy.dialects.oracle.VectorIndexType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexType.IVF)

[ivf\_min\_vectors\_per\_partition (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.ivf_min_vectors_per_partition)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.ivf_min_vectors_per_partition)

[ivf\_neighbor\_partitions (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.ivf_neighbor_partitions)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.ivf_neighbor_partitions)

[ivf\_sample\_per\_partition (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.ivf_sample_per_partition)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.ivf_sample_per_partition) | J - | | | | --- | --- | | [Join (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Join)

[join() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.join)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.join)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.join)

[join\_depth (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.join_depth)

[join\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.join_from)

[join\_transaction\_mode (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.join_transaction_mode)

[joinedload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.joinedload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.joinedload)

[joins\_implicitly (sqlalchemy.sql.functions.FunctionElement.alias parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias.params.joins_implicitly)

[(sqlalchemy.sql.functions.FunctionElement.column\_valued parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued.params.joins_implicitly)

[(sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.joins_implicitly)

[JSON (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.JSON)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON) | [JSON.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.Comparator)

[JSON.JSONElementType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType)

[JSON.JSONIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType)

[JSON.JSONIntIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType)

[JSON.JSONPathType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType)

[JSON.JSONStrIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType)

[json\_deserializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.json_deserializer)

[JSON\_GETITEM (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.JSON_GETITEM)

[json\_serializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.json_serializer)

[JSONB (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB)

[JSONB.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator)

[JSONPATH (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONPATH) | K - | | | | --- | --- | | [keep\_existing (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.keep_existing)

[key (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.key)

[(sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.key)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.key)

[key\_share (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.key_share)

[key\_value\_pairs (sqlalchemy.engine.URL.update\_query\_pairs parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_pairs.params.key_value_pairs)

[keyfunc (sqlalchemy.orm.keyfunc\_mapping parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping.params.keyfunc)

[keyfunc\_mapping() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping)

[KeyFuncDict (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict)

[keys (sqlalchemy.orm.AttributeEvents.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace.params.keys)

[keys() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.keys)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.keys)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.keys) | [kind (sqlalchemy.engine.reflection.Inspector.get\_multi\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints.params.kind)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns.params.kind)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys.params.kind)

[kw\_only (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.kw_only)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.kw_only)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.kw_only)

[kwargs (sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.kwargs)

[(sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine_from_config.params.kwargs)

[(sqlalchemy.orm.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.init.params.kwargs) | L - | | | | --- | --- | | [Label (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Label)

[label() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.label)

[(sqlalchemy.orm.Bundle method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.label)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.label)

[label\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.label_length)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.label_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.label_length)

[LABEL\_STYLE\_DEFAULT (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_DEFAULT)

[LABEL\_STYLE\_DISAMBIGUATE\_ONLY (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_DISAMBIGUATE_ONLY)

[LABEL\_STYLE\_NONE (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_NONE)

[LABEL\_STYLE\_TABLENAME\_PLUS\_COL (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_TABLENAME_PLUS_COL)

[lambda\_cache (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.lambda_cache)

[lambda\_stmt() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt)

[LambdaElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.LambdaElement)

[LargeBinary (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.LargeBinary)

[last\_inserted\_params() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.last_inserted_params)

[last\_updated\_params() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.last_updated_params)

[lastrow\_has\_defaults() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.lastrow_has_defaults)

[(sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.lastrow_has_defaults)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.lastrow_has_defaults)

[lastrowid (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.lastrowid)

[(sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.lastrowid)

[Lateral (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Lateral)

[lateral() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.lateral)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.lateral)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.lateral)

[lazy (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.lazy)

[lazy initialization](https://docs.sqlalchemy.org/en/21/glossary.html#term-lazy-initialization)

[lazy load](https://docs.sqlalchemy.org/en/21/glossary.html#term-lazy-load)

[lazy loaded](https://docs.sqlalchemy.org/en/21/glossary.html#term-lazy-loaded)

[lazy loading](https://docs.sqlalchemy.org/en/21/glossary.html#term-lazy-loading)

[lazy loads](https://docs.sqlalchemy.org/en/21/glossary.html#term-lazy-loads)

[lazy\_loaded\_from (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from)

[(sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.lazy_loaded_from)

[lazyload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.lazyload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.lazyload)

[left (sqlalchemy.sql.expression.join parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.join.params.left)

[(sqlalchemy.sql.expression.outerjoin parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.outerjoin.params.left)

[left\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.left_index)

[legacy\_is\_orphan (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.legacy_is_orphan)

[LegacyAPIWarning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.LegacyAPIWarning)

[length (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.length)

[(sqlalchemy.dialects.mssql.IMAGE parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.params.length)

[(sqlalchemy.dialects.mssql.NCHAR parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.NCHAR.params.length) | [like() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.like)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.like)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.like)

[limit (sqlalchemy.sql.expression.CompoundSelect.limit parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit.params.limit)

[(sqlalchemy.sql.expression.GenerativeSelect.limit parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit.params.limit)

[(sqlalchemy.sql.expression.Select.limit parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.limit.params.limit)

[limit() (in module sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.limit)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.limit)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit)

[link\_to\_name (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.link_to_name)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.link_to_name)

[listen() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listen)

[listeners (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.listeners)

[listens\_for() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listens_for)

[literal() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.literal)

[literal\_binds (sqlalchemy.sql.expression.values parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.values.params.literal_binds)

[literal\_column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.literal_column)

[literal\_execute (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.literal_execute)

[(sqlalchemy.sql.expression.literal parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.literal.params.literal_execute)

[literal\_execute\_params (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.literal_execute_params)

[literal\_processor() (sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor)

[(sqlalchemy.types.Date method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Date.literal_processor)

[(sqlalchemy.types.DateTime method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.DateTime.literal_processor)

[lmb (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.lmb)

[Load (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load)

[load (sqlalchemy.orm.scoped\_session.merge parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.merge.params.load)

[(sqlalchemy.orm.Session.merge parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.merge.params.load)

[load() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.load)

[load\_dialect\_impl() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl)

[load\_history() (sqlalchemy.orm.AttributeState method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.AttributeState.load_history)

[load\_on\_pending (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.load_on_pending)

[load\_only() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.load_only)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.load_only)

[load\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options)

[load\_provisioning() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.load_provisioning)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.load_provisioning)

[loaded\_as\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.loaded_as_persistent)

[loaded\_dbapi (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.loaded_dbapi)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.loaded_dbapi)

[loaded\_value (sqlalchemy.orm.AttributeState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.AttributeState.loaded_value)

[loader\_strategy\_path (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path)

[LoaderCallableStatus (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus)

[LoaderStrategyException](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException)

[loads() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.loads)

[local\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.local_attr)

[local\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.local_cls)

[local\_execution\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options)

[local\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.local_table)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.local_table)

[(sqlalchemy.orm.registry.map\_imperatively parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.map_imperatively.params.local_table)

[local\_timezone (sqlalchemy.dialects.oracle.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.TIMESTAMP.params.local_timezone)

[localtime (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.localtime)

[localtimestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.localtimestamp)

[logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.logging_name)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.params.logging_name)

[logging\_token (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.logging_token)

[LONG (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.LONG)

[LONGBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGBLOB)

[LONGTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT)

[lower (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.lower)

[(sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.lower)

[lower\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.between.params.lower_bound)

[lower\_inc (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.lower_inc)

[lower\_inf (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.lower_inf)

[lstrip() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.lstrip) | M - | | | | --- | --- | | [MACADDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR)

[MACADDR8 (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR8)

[maintain\_column\_froms (sqlalchemy.sql.expression.Select.with\_only\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns.params.maintain_column_froms)

[make\_transient() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.make_transient)

[make\_transient\_to\_detached() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached)

[make\_url() (in module sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.make_url)

[manage() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager.manage)

[manager\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter)

[ManagesConnection (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ManagesConnection)

[MANHATTAN (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.MANHATTAN)

[many to many](https://docs.sqlalchemy.org/en/21/glossary.html#term-many-to-many)

[many to one](https://docs.sqlalchemy.org/en/21/glossary.html#term-many-to-one)

[MANYTOMANY (sqlalchemy.orm.RelationshipDirection attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipDirection.MANYTOMANY)

[MANYTOONE (sqlalchemy.orm.RelationshipDirection attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipDirection.MANYTOONE)

[map\_column (sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.map_column)

[map\_declaratively() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.map_declaratively)

[map\_imperatively() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.map_imperatively)

[mapped](https://docs.sqlalchemy.org/en/21/glossary.html#term-mapped)

[Mapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.Mapped)

[mapped class](https://docs.sqlalchemy.org/en/21/glossary.html#term-mapped-class)

[mapped() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.mapped)

[mapped\_as\_dataclass() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_as_dataclass)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.mapped_as_dataclass)

[mapped\_collection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.mapped_collection)

[mapped\_column() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column)

[MappedAnnotationError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.MappedAnnotationError)

[MappedAsDataclass (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.MappedAsDataclass)

[MappedClassProtocol (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.MappedClassProtocol)

[MappedCollection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.MappedCollection)

[MappedColumn (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MappedColumn)

[MappedSQLExpression (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MappedSQLExpression)

[Mapper (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper)

[mapper (sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.mapper)

[(sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.mapper)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.mapper)

[mapper\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.mapper_configured)

[mapper\_property\_to\_assign (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ColumnProperty.mapper_property_to_assign)

[(sqlalchemy.orm.CompositeProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.CompositeProperty.mapper_property_to_assign)

[MapperEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents)

[MapperProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty)

[mappers (sqlalchemy.orm.registry attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.mappers)

[mapping](https://docs.sqlalchemy.org/en/21/glossary.html#term-mapping)

[mapping\_spec (sqlalchemy.orm.column\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict.params.mapping_spec)

[MappingResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult)

[mappings (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.mappings)

[(sqlalchemy.orm.scoped\_session.bulk\_update\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_update_mappings.params.mappings)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.mappings)

[mappings() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.mappings)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.mappings)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.mappings)

[marshalling](https://docs.sqlalchemy.org/en/21/glossary.html#term-marshalling)

[match (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.match)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.match)

[match() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.match)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.match)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.match)

[MatchType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.MatchType)

[materialized (sqlalchemy.schema.CreateView attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.materialized)

[(sqlalchemy.schema.CreateView parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.params.materialized)

[(sqlalchemy.schema.DropView attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropView.materialized)

[MATH (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.MATH)

[matrix() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.matrix)

[max (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.max)

[max\_constraint\_name\_length (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.max_constraint_name_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.max_constraint_name_length)

[max\_identifier\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.max_identifier_length)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.max_identifier_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.max_identifier_length)

[max\_index\_name\_length (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.max_index_name_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.max_index_name_length)

[max\_overflow (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.max_overflow)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.QueuePool.params.max_overflow)

[max\_row\_buffer (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.max_row_buffer)

[maxvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.maxvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.maxvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.maxvalue)

[MEDIUMBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMBLOB)

[MEDIUMINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT)

[MEDIUMTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT)

[merge() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.merge)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.merge)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.merge)

[merge\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.merge_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.merge_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.merge_all)

[merge\_frozen\_result() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.merge_frozen_result)

[merge\_result() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.merge_result)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.merge_result)

[MergedResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MergedResult) | [metaclass (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.metaclass)

[(sqlalchemy.orm.registry.generate\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base.params.metaclass)

[metadata](https://docs.sqlalchemy.org/en/21/glossary.html#term-metadata)

[MetaData (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData)

[metadata (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.metadata)

[(sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.metadata)

[(sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.metadata)

[method chaining](https://docs.sqlalchemy.org/en/21/glossary.html#term-method-chaining)

[min (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.min)

[minvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.minvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.minvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.minvalue)

[MissingGreenlet](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.MissingGreenlet)

[mixin class](https://docs.sqlalchemy.org/en/21/glossary.html#term-mixin-class)

[mixin classes](https://docs.sqlalchemy.org/en/21/glossary.html#term-mixin-classes)

[mode (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.mode)

[modified (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.modified)

[modified() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.modified)

module

[examples.adjacency\_list](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.adjacency_list)

[examples.association](https://docs.sqlalchemy.org/en/21/orm/examples.html#module-examples.association)

[module (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.module)

[modulename\_for\_table (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.modulename_for_table)

[MONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.MONEY)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MONEY)

[MovedIn20Warning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.MovedIn20Warning)

[multiparams (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.multiparams)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.multiparams)

[MultipleResultsFound](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.MultipleResultsFound)

[MultiRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MultiRange)

[must\_exist (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.must_exist)

[Mutable (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable)

[mutable (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.mutable)

[MutableBase (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase)

[MutableComposite (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite)

[MutableDict (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict)

[MutableList (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList)

[MutableSet (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet) | N - | | | | --- | --- | | [N plus one](https://docs.sqlalchemy.org/en/21/glossary.html#term-N-plus-one)

[N plus one problem](https://docs.sqlalchemy.org/en/21/glossary.html#term-N-plus-one-problem)

[name (sqlalchemy.dialects.mssql.BIT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.params.name)

[(sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.name)

[(sqlalchemy.dialects.oracle.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.BOOLEAN.params.name)

[name\_cte\_columns (sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.name_cte_columns)

[(sqlalchemy.sql.expression.HasCTE attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE.name_cte_columns)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.name_cte_columns)

[name\_for\_collection\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_collection_relationship)

[name\_for\_collection\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship)

[name\_for\_scalar\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_scalar_relationship)

[name\_for\_scalar\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship)

[named (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listen.params.named)

[names (sqlalchemy.engine.URL.translate\_connect\_args parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.translate_connect_args.params.names)

[(sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.names)

[naming\_convention (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.params.naming_convention)

[national (sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.national)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.national)

[(sqlalchemy.dialects.mysql.TEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TEXT.params.national)

[native (sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.params.native)

[native\_enum (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.native_enum)

[native\_uuid (sqlalchemy.types.Uuid parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Uuid.params.native_uuid)

[NCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.NCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.NCHAR)

[NCLOB (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.NCLOB)

[negation\_clause (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.negation_clause)

[nest\_here (sqlalchemy.sql.expression.CompoundSelect.add\_cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte.params.nest_here)

[(sqlalchemy.sql.expression.HasCTE.add\_cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte.params.nest_here)

[(sqlalchemy.sql.expression.Select.add\_cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte.params.nest_here)

[nested (sqlalchemy.orm.scoped\_session.begin parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.begin.params.nested)

[(sqlalchemy.orm.Session.begin parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.begin.params.nested)

[(sqlalchemy.orm.SessionTransaction attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested)

[NestedTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.NestedTransaction)

[nesting (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.nesting)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.nesting)

[(sqlalchemy.sql.expression.Select.cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.cte.params.nesting)

[NEVER\_SET (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.NEVER_SET)

[new (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.new)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.new)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.new)

[new\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace.params.new_adapter)

[next\_value (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.next_value)

[next\_value() (sqlalchemy.schema.Sequence method)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.next_value)

[nextset() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.nextset)

[no\_autoflush (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.no_autoflush)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.no_autoflush)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.no_autoflush)

[no\_parameters (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.no_parameters)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.no_parameters)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.no_parameters)

[NO\_STATE (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE)

[NO\_VALUE (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.NO_VALUE)

[NoForeignKeysError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoForeignKeysError)

[NoInspectionAvailable](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable)

[noload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.noload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.noload)

[nomaxvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.nomaxvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.nomaxvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.nomaxvalue)

[nominvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.nominvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.nominvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.nominvalue)

[non\_added() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added)

[non\_deleted() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted)

[NONE (sqlalchemy.engine.BindTyping attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.BindTyping.NONE)

[(sqlalchemy.schema.CheckFirst attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst.NONE) | [none\_as\_null (sqlalchemy.dialects.mssql.JSON parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON.params.none_as_null)

[(sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.none_as_null)

[(sqlalchemy.dialects.sqlite.JSON parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.JSON.params.none_as_null)

[NoReferencedColumnError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoReferencedColumnError)

[NoReferencedTableError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoReferencedTableError)

[NoReferenceError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoReferenceError)

[NoResultFound](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoResultFound)

[normalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.normalize_name)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.normalize_name)

[normalized\_query (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.normalized_query)

[NoSuchColumnError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoSuchColumnError)

[NoSuchModuleError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoSuchModuleError)

[NoSuchTableError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NoSuchTableError)

[not\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.not_)

[not\_extend\_left\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.not_extend_left_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.not_extend_left_of)

[not\_extend\_right\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.not_extend_right_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.not_extend_right_of)

[NOT\_EXTENSION (sqlalchemy.orm.NotExtension attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.NotExtension.NOT_EXTENSION)

[not\_ilike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.not_ilike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_ilike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.not_ilike)

[not\_in() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.not_in)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_in)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.not_in)

[not\_like() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.not_like)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_like)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.not_like)

[not\_null (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.not_null)

[NotExtension (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.NotExtension)

[notilike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.notilike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notilike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.notilike)

[notin\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.notin_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notin_)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.notin_)

[notlike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.notlike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notlike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.notlike)

[NotNullable() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.NotNullable)

[NotSupportedError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.NotSupportedError)

[now (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.now)

[nowait (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.nowait)

[NTEXT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.NTEXT)

[Null (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Null)

[NULL (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.NULL)

[null() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.null)

[NULL\_UNSPECIFIED (sqlalchemy.schema.SchemaConst attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.SchemaConst.NULL_UNSPECIFIED)

[nullable (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.nullable)

[(sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.nullable)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.nullable)

[Nullable() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.Nullable)

[NullPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.NullPool)

[nulls\_first() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.nulls_first)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nulls_first)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nulls_first)

[nulls\_last() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.nulls_last)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nulls_last)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nulls_last)

[nullsfirst() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.nullsfirst)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nullsfirst)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullsfirst)

[nullslast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.nullslast)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nullslast)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullslast)

[NullType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.NullType)

[num (sqlalchemy.engine.ChunkedIteratorResult.yield\_per parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult.yield_per.params.num)

[(sqlalchemy.engine.CursorResult.yield\_per parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.yield_per.params.num)

[(sqlalchemy.engine.Result.yield\_per parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.yield_per.params.num)

[NUMBER (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.NUMBER)

[NUMERIC (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.NUMERIC)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.NUMERIC)

[Numeric (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Numeric)

[NUMERIC (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.NUMERIC)

[NumericCommon (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.NumericCommon)

[NUMMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.NUMMULTIRANGE)

[NUMRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.NUMRANGE)

[NVARCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.NVARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.NVARCHAR)

[NVARCHAR2 (in module sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.NVARCHAR2) | O - | | | | --- | --- | | [obj (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.obj)

[(sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.obj)

[(sqlalchemy.orm.attributes.init\_collection parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.init_collection.params.obj)

[object (sqlalchemy.ext.asyncio.AsyncConnection.execute parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.execute.params.object)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.object)

[object\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.object_mapper)

[object\_session() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.object_session)

[(sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.object_session)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.object_session)

[object\_state() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.util.object_state)

[ObjectAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance)

[ObjectDeletedError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError)

[ObjectDereferencedError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError)

[ObjectNotExecutableError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.ObjectNotExecutableError)

[objects (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.objects)

[(sqlalchemy.orm.scoped\_session.flush parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.flush.params.objects)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.objects)

[of (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.of)

[of\_type() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.of_type)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryableAttribute.of_type)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.of_type)

[offset (sqlalchemy.sql.expression.CompoundSelect.offset parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset.params.offset)

[(sqlalchemy.sql.expression.GenerativeSelect.offset parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset.params.offset)

[(sqlalchemy.sql.expression.Select.offset parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.offset.params.offset)

[offset() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.offset)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset)

[OID (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.OID)

[oldvalue (sqlalchemy.orm.AttributeEvents.set parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.set.params.oldvalue)

[omit\_aliases (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.omit_aliases)

[omit\_join (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.omit_join)

[on (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CreateTable.params.on)

[(sqlalchemy.schema.DropTable parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.DropTable.params.on)

[on\_conflict\_do\_nothing() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing)

[(sqlalchemy.dialects.sqlite.Insert method)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing)

[on\_conflict\_do\_update() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update)

[(sqlalchemy.dialects.sqlite.Insert method)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update)

[on\_connect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.on_connect)

[on\_connect\_url() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect_url)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.on_connect_url)

[on\_duplicate\_key\_update() (sqlalchemy.dialects.mysql.Insert method)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update)

[on\_null (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.on_null)

[(sqlalchemy.schema.Identity attribute)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.on_null)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.on_null)

[once (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listen.params.once)

[onclause (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.join.params.onclause)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.onclause)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.onclause)

[ondelete (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.ondelete)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.ondelete)

[one to many](https://docs.sqlalchemy.org/en/21/glossary.html#term-one-to-many)

[one() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.one)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.one)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.one)

[one\_or\_none() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.one_or_none)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.one_or_none)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.one_or_none)

[onebased (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.onebased)

[ONETOMANY (sqlalchemy.orm.RelationshipDirection attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipDirection.ONETOMANY)

[only (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.only)

[only\_return\_tuples() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.only_return_tuples)

[only\_synonyms (sqlalchemy.sql.expression.Select.reduce\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns.params.only_synonyms)

[onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.onupdate)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.onupdate)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.onupdate)

[op (sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate.params.op)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.op)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate.params.op)

[op() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op)

[operate() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate)

[OperationalError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.OperationalError)

[operator (sqlalchemy.types.ARRAY.Comparator.all parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all.params.operator)

[(sqlalchemy.types.ARRAY.Comparator.any parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any.params.operator)

[operator\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.operator_class)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.operator_class)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.operator_class)

[operator\_classes (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.operator_classes)

[(sqlalchemy.dialects.postgresql.JSONB attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.operator_classes)

[(sqlalchemy.types.Boolean attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean.operator_classes) | [OperatorClass (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass)

[Operators (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Operators)

[ops (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.ops)

[opstring (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.opstring)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.opstring)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.opstring)

[optional (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.optional)

[options (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.options)

[(sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.options)

[(sqlalchemy.orm.scoped\_session.merge parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.merge.params.options)

[options() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.options)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.options)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.options)

[opts (sqlalchemy.events.ConnectionEvents.set\_connection\_execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options.params.opts)

[(sqlalchemy.events.ConnectionEvents.set\_engine\_execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options.params.opts)

[(sqlalchemy.sql.visitors.iterate parameter)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.iterate.params.opts)

[or\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.or_)

[or\_replace (sqlalchemy.schema.CreateView attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.or_replace)

[(sqlalchemy.schema.CreateView parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.params.or_replace)

[order (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.order)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.order)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.order)

[order\_by (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.order_by)

[(sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.over.params.order_by)

[order\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.order_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.order_by)

[order\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.order_by_clause)

[OrderByList (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OrderByList)

[ordered\_values() (sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Update.ordered_values)

[ordering\_attr (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_attr)

[ordering\_func (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_func)

[ordering\_list() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list)

[OrderingList (class in sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList)

[orig (sqlalchemy.exc.StatementError attribute)](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.StatementError.orig)

[origin (sqlalchemy.orm.SessionTransaction attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransaction.origin)

[original (sqlalchemy.sql.expression.AliasedReturnsRows attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.original)

[original\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.original_exception)

[ORM mapped class](https://docs.sqlalchemy.org/en/21/glossary.html#term-ORM-mapped-class)

[ORM-annotated](https://docs.sqlalchemy.org/en/21/glossary.html#term-ORM-annotated)

[orm\_execute\_state (sqlalchemy.orm.SessionEvents.do\_orm\_execute parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute.params.orm_execute_state)

[orm\_insert\_sentinel() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.orm_insert_sentinel)

[ORMExecuteState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState)

[other (sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains.params.other)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith.params.other)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains.params.other)

[outerjoin() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.outerjoin)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.outerjoin)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.outerjoin)

[outerjoin\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.outerjoin_from)

[outparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.outparam)

[Over (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Over)

[over() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.over)

[(sqlalchemy.sql.expression.AggregateOrderBy method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.AggregateOrderBy.over)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.over)

[overlap() (sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.overlap)

[overlaps (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.overlaps)

[overlaps() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.overlaps)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.overlaps)

[overrides (sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.overrides) | P - | | | | --- | --- | | [packagenames (sqlalchemy.sql.functions.Function parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.Function.params.packagenames)

[parallel (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.parallel)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.parallel)

[parameter\_expansion (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.parameter_expansion)

[parameters (sqlalchemy.engine.Connection.exec\_driver\_sql parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql.params.parameters)

[(sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execute.params.parameters)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.parameters)

[params (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.params)

[(sqlalchemy.engine.Compiled.construct\_params parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.construct_params.params.params)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.params)

[params() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.params)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params)

[paramstyle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.paramstyle)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.paramstyle)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.paramstyle)

[parent (sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.parent)

[(sqlalchemy.events.DDLEvents.before\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach.params.parent)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.parent)

[partition\_by (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.over.params.partition_by)

[partitions() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.partitions)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.partitions)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.partitions)

[passive (sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.passive)

[PASSIVE\_CLASS\_MISMATCH (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.PASSIVE_CLASS_MISMATCH)

[passive\_deletes (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.passive_deletes)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_deletes)

[PASSIVE\_NO\_RESULT (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.PASSIVE_NO_RESULT)

[passive\_updates (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.passive_updates)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_updates)

[password (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.password)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.password)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set.params.password)

[path\_exists() (sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.path_exists)

[path\_match() (sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.path_match)

[pattern (sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_match.params.pattern)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace.params.pattern)
[\[0\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace.params.pattern)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match.params.pattern)

[pending](https://docs.sqlalchemy.org/en/21/glossary.html#term-pending)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.pending)

[pending\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_persistent)

[pending\_to\_transient() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_transient)

[PendingRollbackError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.PendingRollbackError)

[pep-249](https://docs.sqlalchemy.org/en/21/glossary.html#term-pep-249)

[pep\_593\_resolved\_argument (sqlalchemy.orm.TypeResolve attribute)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.pep_593_resolved_argument)

[pep\_695\_resolved\_value (sqlalchemy.orm.TypeResolve attribute)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.pep_695_resolved_value)

[percent (sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.percent)

[(sqlalchemy.sql.expression.GenerativeSelect.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch.params.percent)

[(sqlalchemy.sql.expression.Select.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.fetch.params.percent)

[percent\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.percent_rank)

[percentile\_cont (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.percentile_cont)

[percentile\_disc (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.percentile_disc)

[persist\_selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.persist_selectable)

[persisted (sqlalchemy.engine.interfaces.ReflectedComputed attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedComputed.persisted)

[(sqlalchemy.schema.Computed parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Computed.params.persisted)

[persistent](https://docs.sqlalchemy.org/en/21/glossary.html#term-persistent)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.persistent)

[persistent\_id() (sqlalchemy.ext.serializer.Serializer method)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id)

[persistent\_load() (sqlalchemy.ext.serializer.Deserializer method)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load)

[persistent\_to\_deleted() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_deleted)

[persistent\_to\_detached() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_detached)

[persistent\_to\_transient() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_transient)

[PGInspector (class in sqlalchemy.dialects.postgresql.base)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector)

[phraseto\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.phraseto_tsquery)

[pickle() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.pickle)

[pickler (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.params.pickler)

[PickleType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType)

[plainto\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.plainto_tsquery)

[plugin](https://docs.sqlalchemy.org/en/21/glossary.html#term-plugin)

[plugin-enabled](https://docs.sqlalchemy.org/en/21/glossary.html#term-plugin-enabled)

[plugin-specific](https://docs.sqlalchemy.org/en/21/glossary.html#term-plugin-specific)

[plugins (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.plugins)

[polymorphic](https://docs.sqlalchemy.org/en/21/glossary.html#term-polymorphic)

[polymorphic\_abstract (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_abstract)

[polymorphic\_identity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_identity)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_identity)

[polymorphic\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_iterator)

[polymorphic\_load (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_load)

[polymorphic\_map (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_map)

[polymorphic\_on (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_on)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_on)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.polymorphic_on)

[polymorphic\_union() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union)

[polymorphically](https://docs.sqlalchemy.org/en/21/glossary.html#term-polymorphically)

[Pool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool)

[pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.pool)

[pool\_logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_logging_name)

[pool\_pre\_ping (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_pre_ping)

[pool\_recycle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_recycle)

[pool\_reset\_on\_return (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_reset_on_return)

[pool\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_size)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.QueuePool.params.pool_size)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.pool_size)

[pool\_timeout (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_timeout)

[pool\_use\_lifo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.pool_use_lifo)

[poolclass (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.poolclass)

[PoolEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents)

[PoolProxiedConnection (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection)

[PoolResetState (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolResetState)

[pop() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.pop)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.pop)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.pop)

[popitem() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.popitem)

[(sqlalchemy.orm.KeyFuncDict method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict.popitem)

[populate\_existing (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.populate_existing)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.get.params.populate_existing)

[populate\_existing() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.populate_existing)

[port (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.port)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.port)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set.params.port) | [position (sqlalchemy.sql.expression.Select.apply\_syntax\_extension\_point parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.apply_syntax_extension_point.params.position)

[positional (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.positional)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.positional)

[positional\_parameters (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.positional_parameters)

[positiontup (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.positiontup)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.positiontup)

[post\_compile\_params (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.post_compile_params)

[post\_configure\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute)

[post\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.post_exec)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.post_exec)

[post\_instrument\_class() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.post_instrument_class)

[post\_update (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.post_update)

[postfetch (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.postfetch)

[postfetch\_cols (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.postfetch_cols)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.postfetch_cols)

[postfetch\_cols() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.postfetch_cols)

[postfetch\_lastrowid (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.postfetch_lastrowid)

[pow (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.pow)

[pre\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.pre_exec)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.pre_exec)

[pre\_ping (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.params.pre_ping)

[precedence (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.precedence)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.precedence)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.precedence)

[PRECEDING (sqlalchemy.sql.expression.FrameClauseType attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClauseType.PRECEDING)

[precision (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.precision)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.precision)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.precision)

[preexecute\_autoincrement\_sequences (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.preexecute_autoincrement_sequences)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.preexecute_autoincrement_sequences)

[prefetch\_cols (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.prefetch_cols)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.prefetch_cols)

[prefetch\_cols() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.prefetch_cols)

[prefix (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine_from_config.params.prefix)

[prefix\_with() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.prefix_with)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.prefix_with)

[(sqlalchemy.sql.expression.HasPrefixes method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes.prefix_with)

[prefixes (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.prefixes)

[prepare() (sqlalchemy.engine.TwoPhaseTransaction method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction.prepare)

[(sqlalchemy.ext.automap.AutomapBase class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare)

[(sqlalchemy.ext.declarative.DeferredReflection class method)](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection.prepare)

[prepare\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.prepare_twophase)

[preparer (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.preparer)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.preparer)

[preserve\_order (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.preserve_order)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.preserve_order)

[preserve\_rowcount (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.preserve_rowcount)

[previous\_transaction (sqlalchemy.orm.SessionEvents.after\_soft\_rollback parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback.params.previous_transaction)

[primary key](https://docs.sqlalchemy.org/en/21/glossary.html#term-primary-key)

[primary key constraint](https://docs.sqlalchemy.org/en/21/glossary.html#term-primary-key-constraint)

[primary\_key (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.primary_key)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.primary_key)

[primary\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key_from_instance)

[primary\_mapper() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_mapper)

[primaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin)

[PrimaryKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.PrimaryKeyConstraint)

[process\_bind\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param)

[process\_compile\_state() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.process_compile_state)

[process\_compile\_state\_replaced\_entities() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.process_compile_state_replaced_entities)

[process\_literal\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param)

[process\_result\_value() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value)

[processors (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.processors)

[ProgrammingError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.ProgrammingError)

[propagate (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listen.params.propagate)

[(sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.params.propagate)

[(sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.params.propagate)

[propagate\_to\_loaders (sqlalchemy.ext.horizontal\_shard.set\_shard\_id attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.propagate_to_loaders)

[(sqlalchemy.ext.horizontal\_shard.set\_shard\_id parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.params.propagate_to_loaders)

[(sqlalchemy.orm.Load attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.propagate_to_loaders)

[PropComparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator)

[properties (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.properties)

[property (sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.PropComparator.property)

[(sqlalchemy.orm.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_parent.params.property)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_parent.params.property)

[protocol (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.PickleType.params.protocol)

[proxy\_bulk\_set (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.proxy_bulk_set)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.proxy_bulk_set)

[proxy\_factory (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.proxy_factory)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.proxy_factory)

[proxy\_set (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.proxy_set)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.proxy_set)

Python Enhancement Proposals

[PEP 249](https://docs.sqlalchemy.org/en/21/changelog/migration_20.html#index-1)
[\[0\]](https://docs.sqlalchemy.org/en/21/changelog/migration_20.html#index-2)
[\[1\]](https://docs.sqlalchemy.org/en/21/core/connections.html#index-1)
[\[2\]](https://docs.sqlalchemy.org/en/21/core/connections.html#index-3)
[\[3\]](https://docs.sqlalchemy.org/en/21/core/connections.html#index-4)
[\[4\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-0)
[\[5\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-1)
[\[6\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-2)
[\[7\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-3)
[\[8\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-4)
[\[9\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-5)
[\[10\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-6)
[\[11\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-7)
[\[12\]](https://docs.sqlalchemy.org/en/21/core/internals.html#index-8)
[\[13\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-0)
[\[14\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-1)
[\[15\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-2)
[\[16\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-3)
[\[17\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-4)
[\[18\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-5)
[\[19\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-6)
[\[20\]](https://docs.sqlalchemy.org/en/21/core/pooling.html#index-7)
[\[21\]](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#index-0)
[\[22\]](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#index-1)
[\[23\]](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#index-2)
[\[24\]](https://docs.sqlalchemy.org/en/21/glossary.html#index-2)

[PEP 484](https://docs.sqlalchemy.org/en/21/changelog/changelog_20.html#index-18)
[\[0\]](https://docs.sqlalchemy.org/en/21/changelog/migration_20.html#index-0)
[\[1\]](https://docs.sqlalchemy.org/en/21/changelog/migration_21.html#index-2)
[\[2\]](https://docs.sqlalchemy.org/en/21/changelog/whatsnew_20.html#index-0)
[\[3\]](https://docs.sqlalchemy.org/en/21/changelog/whatsnew_20.html#index-1)
[\[4\]](https://docs.sqlalchemy.org/en/21/changelog/whatsnew_20.html#index-2)
[\[5\]](https://docs.sqlalchemy.org/en/21/core/connections.html#index-5)
[\[6\]](https://docs.sqlalchemy.org/en/21/core/connections.html#index-6)
[\[7\]](https://docs.sqlalchemy.org/en/21/core/connections.html#index-7)
[\[8\]](https://docs.sqlalchemy.org/en/21/core/metadata.html#index-0)
[\[9\]](https://docs.sqlalchemy.org/en/21/core/metadata.html#index-1)
[\[10\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-0)
[\[11\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-1)
[\[12\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-2)
[\[13\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-3)
[\[14\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-4)
[\[15\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-5)
[\[16\]](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#index-6)
[\[17\]](https://docs.sqlalchemy.org/en/21/errors.html#index-0)
[\[18\]](https://docs.sqlalchemy.org/en/21/errors.html#index-1)
[\[19\]](https://docs.sqlalchemy.org/en/21/glossary.html#index-0)
[\[20\]](https://docs.sqlalchemy.org/en/21/glossary.html#index-1)
[\[21\]](https://docs.sqlalchemy.org/en/21/orm/backref.html#index-0)
[\[22\]](https://docs.sqlalchemy.org/en/21/orm/basic_relationships.html#index-0)
[\[23\]](https://docs.sqlalchemy.org/en/21/orm/dataclasses.html#index-0)
[\[24\]](https://docs.sqlalchemy.org/en/21/orm/declarative_mixins.html#index-1)
[\[25\]](https://docs.sqlalchemy.org/en/21/orm/declarative_mixins.html#index-2)
[\[26\]](https://docs.sqlalchemy.org/en/21/orm/declarative_mixins.html#index-3)
[\[27\]](https://docs.sqlalchemy.org/en/21/orm/declarative_mixins.html#index-4)
[\[28\]](https://docs.sqlalchemy.org/en/21/orm/declarative_styles.html#index-0)
[\[29\]](https://docs.sqlalchemy.org/en/21/orm/declarative_tables.html#index-0)
[\[30\]](https://docs.sqlalchemy.org/en/21/orm/declarative_tables.html#index-1)
[\[31\]](https://docs.sqlalchemy.org/en/21/orm/declarative_tables.html#index-12)
[\[32\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#index-0)
[\[33\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#index-1)
[\[34\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#index-2)
[\[35\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#index-3)
[\[36\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#index-4)
[\[37\]](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#index-5)
[\[38\]](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#index-0)
[\[39\]](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#index-0)
[\[40\]](https://docs.sqlalchemy.org/en/21/orm/inheritance.html#index-0)
[\[41\]](https://docs.sqlalchemy.org/en/21/orm/internals.html#index-0)
[\[42\]](https://docs.sqlalchemy.org/en/21/orm/internals.html#index-1)
[\[43\]](https://docs.sqlalchemy.org/en/21/orm/internals.html#index-2)
[\[44\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-0)
[\[45\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-1)
[\[46\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-2)
[\[47\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-3)
[\[48\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-4)
[\[49\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-5)
[\[50\]](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#index-6)
[\[51\]](https://docs.sqlalchemy.org/en/21/orm/mapping_styles.html#index-0)
[\[52\]](https://docs.sqlalchemy.org/en/21/orm/mapping_styles.html#index-1)
[\[53\]](https://docs.sqlalchemy.org/en/21/orm/quickstart.html#index-0)
[\[54\]](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#index-0)
[\[55\]](https://docs.sqlalchemy.org/en/21/tutorial/metadata.html#index-0)
[\[56\]](https://docs.sqlalchemy.org/en/21/tutorial/metadata.html#index-1)
[\[57\]](https://docs.sqlalchemy.org/en/21/tutorial/metadata.html#index-2)

[python\_impl (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.python_impl)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.python_impl)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.python_impl)

[python\_type (sqlalchemy.orm.TypeResolve.resolve parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.resolve.params.python_type)

[(sqlalchemy.types.Boolean attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean.python_type)

[(sqlalchemy.types.Date attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Date.python_type) | Q - | | | | --- | --- | | [Query (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query)

[query (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.query)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.query)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set.params.query)

[query() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.query)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.query)

[query\_cache\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.query_cache_size)

[query\_class (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.query_class)

[query\_cls (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.query_cls)

[query\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.query_expression)

[query\_or\_session (sqlalchemy.ext.baked.BakedQuery.to\_query parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query.params.query_or_session)

[query\_parameters (sqlalchemy.engine.URL.update\_query\_dict parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_dict.params.query_parameters)

[query\_property() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.query_property)

[query\_string (sqlalchemy.engine.URL.update\_query\_string parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_string.params.query_string)

[QueryableAttribute (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryableAttribute)

[QueryContext (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryContext)

[QueryContext.default\_load\_options (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.QueryContext.default_load_options) | [QueryEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.QueryEvents)

[QueryPropertyDescriptor (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.QueryPropertyDescriptor)

[QueuePool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.QueuePool)

[quote (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.quote)

[(sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.Index.params.quote)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.quote)

[quote() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote)

[quote\_identifier() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_identifier)

[quote\_schema (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.params.quote_schema)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.quote_schema)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.quote_schema)

[quote\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema)

[quoted\_name (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.quoted_name) | R - | | | | --- | --- | | [raiseerr (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/21/core/inspection.html#sqlalchemy.inspect.params.raiseerr)

[raiseload (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.raiseload)

[(sqlalchemy.orm.defer parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.defer.params.raiseload)

[(sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.deferred.params.raiseload)

[raiseload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.raiseload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.raiseload)

[random (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.random)

[Range (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range)

[range\_ (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.over.params.range_)

[rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.rank)

[RAW (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.RAW)

[raw (sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.params.raw)

[(sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.params.raw)

[(sqlalchemy.orm.MapperEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.MapperEvents.params.raw)

[raw\_connection() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.raw_connection)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.raw_connection)

[raw\_pep\_593\_type (sqlalchemy.orm.TypeResolve attribute)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.raw_pep_593_type)

[raw\_pep\_695\_type (sqlalchemy.orm.TypeResolve attribute)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.raw_pep_695_type)

[raw\_type (sqlalchemy.orm.TypeResolve attribute)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.raw_type)

[read (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.read)

[read committed](https://docs.sqlalchemy.org/en/21/glossary.html#term-read-committed)

[read uncommitted](https://docs.sqlalchemy.org/en/21/glossary.html#term-read-uncommitted)

[REAL (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.REAL)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.REAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.REAL)

[reconstructor() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.reconstructor)

[record\_info (sqlalchemy.pool.ConnectionPoolEntry attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.record_info)

[(sqlalchemy.pool.ManagesConnection attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ManagesConnection.record_info)

[(sqlalchemy.pool.PoolProxiedConnection attribute)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.record_info)

[recover (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.recover)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.recover)

[(sqlalchemy.engine.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase.params.recover)

[recreate() (sqlalchemy.pool.AssertionPool method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.AssertionPool.recreate)

[(sqlalchemy.pool.NullPool method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.NullPool.recreate)

[(sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.recreate)

[recursion\_depth (sqlalchemy.orm.immediateload parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.immediateload.params.recursion_depth)

[(sqlalchemy.orm.selectinload parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.selectinload.params.recursion_depth)

[recursive (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.recursive)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.recursive)

[(sqlalchemy.sql.expression.Select.cte parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.cte.params.recursive)

[recycle (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.params.recycle)

[reduce\_columns (sqlalchemy.orm.Query.subquery parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.subquery.params.reduce_columns)

[reduce\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns)

[refcolumns (sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.refcolumns)

[references() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.references)

[(sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.references)

[referred\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.referred_cls)

[referred\_columns (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.referred_columns)

[referred\_schema (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.referred_schema)

[referred\_schema\_fn (sqlalchemy.schema.Table.to\_metadata parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.to_metadata.params.referred_schema_fn)

[referred\_table (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.referred_table)

[(sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.referred_table)

[reflect (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflect)

[reflect() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect)

[reflect\_table() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table)

[reflected](https://docs.sqlalchemy.org/en/21/glossary.html#term-reflected)

[ReflectedCheckConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedCheckConstraint)

[ReflectedColumn (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn)

[ReflectedComputed (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedComputed)

[ReflectedForeignKeyConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint)

[ReflectedIdentity (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity)

[ReflectedIndex (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex)

[ReflectedPrimaryKeyConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint)

[ReflectedTableComment (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedTableComment)

[ReflectedUniqueConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedUniqueConstraint)

[reflection](https://docs.sqlalchemy.org/en/21/glossary.html#term-reflection)

[reflection\_options (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reflection_options)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.reflection_options)

[(sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflection_options)

[refresh() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.refresh)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.refresh)

[(sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh)

[refresh\_flush() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush)

[REGCLASS (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REGCLASS)

[REGCONFIG (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REGCONFIG)

[regexp (sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.regexp)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.regexp)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.regexp)

[regexp\_match() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_match)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.regexp_match)

[regexp\_replace() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_replace)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.regexp_replace)

[register\_function() (in module sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.register_function)

[registry](https://docs.sqlalchemy.org/en/21/glossary.html#term-registry)

[(class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry)

[(sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.registry)

[RegistryEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.RegistryEvents)

[relational](https://docs.sqlalchemy.org/en/21/glossary.html#term-relational)

[relational algebra](https://docs.sqlalchemy.org/en/21/glossary.html#term-relational-algebra)

[relationship](https://docs.sqlalchemy.org/en/21/glossary.html#term-relationship)

[Relationship (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.Relationship)

[relationship() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship)

[RelationshipDirection (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipDirection)

[RelationshipProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty)

[RelationshipProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator)

[relationships](https://docs.sqlalchemy.org/en/21/glossary.html#term-relationships)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.relationships)

[release](https://docs.sqlalchemy.org/en/21/glossary.html#term-release)

[release\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.release_savepoint)

[released](https://docs.sqlalchemy.org/en/21/glossary.html#term-released)

[releases](https://docs.sqlalchemy.org/en/21/glossary.html#term-releases)

[remote() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.remote)

[remote\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.remote_attr)

[remote\_side (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side)

[remove() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.remove)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.remove)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.remove)

[remove\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state)

[remove\_state\_actions() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction.remove_state_actions)

[removeprefix() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.removeprefix)

[remover() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.remover)

[removes() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.removes)

[removes\_return() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.removes_return)

[removesuffix() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.removesuffix)

[render\_as\_string() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.render_as_string)

[render\_bind\_cast (sqlalchemy.dialects.postgresql.JSON attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.render_bind_cast)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.render_bind_cast)

[RENDER\_CASTS (sqlalchemy.engine.BindTyping attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.BindTyping.RENDER_CASTS)

[render\_derived() (sqlalchemy.sql.expression.TableValuedAlias method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived) | [render\_literal\_cast (sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.render_literal_cast)

[render\_literal\_execute() (sqlalchemy.sql.expression.BindParameter method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.render_literal_execute)

[render\_literal\_value() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_literal_value)

[render\_nulls (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.render_nulls)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.render_nulls)

[render\_table\_with\_column\_in\_update\_from (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_table_with_column_in_update_from)

[reorder() (sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.reorder)

[reorder\_on\_append (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.reorder_on_append)

[repeatable read](https://docs.sqlalchemy.org/en/21/glossary.html#term-repeatable-read)

[replace() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.replace)

[replace\_existing (sqlalchemy.schema.Table.append\_column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.append_column.params.replace_existing)

[(sqlalchemy.schema.Table.insert\_column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.insert_column.params.replace_existing)

[replace\_selectable() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.replace_selectable)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.replace_selectable)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.replace_selectable)

[replacement\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse)

[replaces() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.collection.replaces)

[repr (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.repr)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.column_property.params.repr)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.repr)

[require\_embedded (sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.ColumnCollection.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.CompoundSelect.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column.params.require_embedded)

[required (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.required)

[requires\_name\_normalize (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.requires_name_normalize)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.requires_name_normalize)

[reset() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.reset)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.reset)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.reset)

[reset\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reset_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.reset_isolation_level)

[reset\_joinpoint() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.reset_joinpoint)

[reset\_on\_return (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.params.reset_on_return)

[reset\_state (sqlalchemy.events.PoolEvents.reset parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.reset.params.reset_state)

[resolve() (sqlalchemy.orm.TypeResolve method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.resolve)

[resolve\_fks (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.resolve_fks)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.params.resolve_fks)

[resolve\_type (sqlalchemy.orm.RegistryEvents.resolve\_type\_annotation parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.RegistryEvents.resolve_type_annotation.params.resolve_type)

[resolve\_type\_annotation() (sqlalchemy.orm.RegistryEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.RegistryEvents.resolve_type_annotation)

[resolved\_type (sqlalchemy.orm.TypeResolve attribute)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve.resolved_type)

[ResourceClosedError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.ResourceClosedError)

[restore\_load\_context (sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.params.restore_load_context)

[(sqlalchemy.orm.SessionEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.params.restore_load_context)

[Result (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result)

[result (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.result)

[result\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Boolean.result_processor)

[(sqlalchemy.types.Float method)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Float.result_processor)

[RETAIN\_SCHEMA (sqlalchemy.schema.SchemaConst attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.SchemaConst.RETAIN_SCHEMA)

[retrieve\_as\_bitwise (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.retrieve_as_bitwise)

[return\_defaults (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.return_defaults)

[(sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.return_defaults)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.return_defaults)

[return\_defaults() (sqlalchemy.sql.expression.UpdateBase method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.UpdateBase.return_defaults)

[return\_fn (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.return_fn)

[return\_none\_on (sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/21/orm/composites.html#sqlalchemy.orm.composite.params.return_none_on)

[return\_type (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.return_type)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.return_type)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.return_type)

[returned\_defaults (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.returned_defaults)

[returned\_defaults\_rows (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.returned_defaults_rows)

[RETURNING](https://docs.sqlalchemy.org/en/21/glossary.html#term-RETURNING)

[returning (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning)

[returning() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Delete.returning)

[(sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.returning)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Update.returning)

[returning\_column\_descriptions (sqlalchemy.sql.expression.UpdateBase attribute)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.UpdateBase.returning_column_descriptions)

[returning\_precedes\_values (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning_precedes_values)

[returns\_native\_bytes (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.returns_native_bytes)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.returns_native_bytes)

[returns\_rows (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.returns_rows)

[ReturnsRows (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ReturnsRows)

[retval (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/21/core/event.html#sqlalchemy.event.listen.params.retval)

[(sqlalchemy.events.ConnectionEvents parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.params.retval)

[(sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.params.retval)

[reverse() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.reverse)

[reverse\_operate() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.reverse_operate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.reverse_operate)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.reverse_operate)

[right (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.join.params.right)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.right)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.right)

[right\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.right_index)

[rollback() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.rollback)

[(sqlalchemy.engine.interfaces.DBAPIConnection method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection.rollback)

[(sqlalchemy.engine.NestedTransaction method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.NestedTransaction.rollback)

[rollback\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_savepoint)

[rollback\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_twophase)

[rollup (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.rollup)

[root\_connection (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.root_connection)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.ExecutionContext.root_connection)

[RootTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.RootTransaction)

[Row (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row)

[row (sqlalchemy.orm.Mapper.identity\_key\_from\_row parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row.params.row)

[rowcount (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.rowcount)

[(sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.rowcount)

[ROWID (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.ROWID)

[RowMapping (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.RowMapping)

[rows (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.over.params.rows)

[ROWVERSION (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION)

[rstrip() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.rstrip)

[run\_async() (sqlalchemy.engine.AdaptedConnection method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.AdaptedConnection.run_async)

[run\_sync() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.run_sync)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.run_sync) | S - | | | | --- | --- | | [SADeprecationWarning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning)

[sampling (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.sampling)

[SAPendingDeprecationWarning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning)

[SATestSuiteWarning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SATestSuiteWarning)

[savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.savepoint)

[SAWarning](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SAWarning)

[scalar (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.scalar)

[scalar subquery](https://docs.sqlalchemy.org/en/21/glossary.html#term-scalar-subquery)

[scalar() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.scalar)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.scalar)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.scalar)

[scalar\_one() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.scalar_one)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.scalar_one)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.scalar_one)

[scalar\_one\_or\_none() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.scalar_one_or_none)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.scalar_one_or_none)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.scalar_one_or_none)

[scalar\_subquery() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.scalar_subquery)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.scalar_subquery)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.scalar_subquery)

[scalar\_table\_valued() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued)

[scalar\_values() (sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Values.scalar_values)

[ScalarResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ScalarResult)

[scalars() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.scalars)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.scalars)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.scalars)

[ScalarSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect)

[ScalarValues (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.ScalarValues)

[scale (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.scale)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.scale)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.scale)

[schema (sqlalchemy.dialects.postgresql.base.PGInspector.get\_domains parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_domains.params.schema)

[(sqlalchemy.dialects.postgresql.base.PGInspector.get\_enums parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums.params.schema)

[(sqlalchemy.dialects.postgresql.base.PGInspector.get\_table\_oid parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid.params.schema)

[schema\_for\_object (sqlalchemy.sql.compiler.IdentifierPreparer attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.schema_for_object)

[schema\_for\_object() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.schema_for_object)

[schema\_name (sqlalchemy.engine.reflection.Inspector.has\_schema parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_schema.params.schema_name)

[schema\_translate\_map (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.params.schema_translate_map)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map)

[(sqlalchemy.sql.compiler.DDLCompiler parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.params.schema_translate_map)

[SchemaConst (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.SchemaConst)

[SchemaEventTarget (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.SchemaEventTarget)

[SchemaItem (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.SchemaItem)

[schemas (sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.schemas)

[SchemaType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.SchemaType)

[scope (sqlalchemy.engine.reflection.Inspector.get\_multi\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints.params.scope)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns.params.scope)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys.params.scope)

[scoped\_session (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session)

[ScopedRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.util.ScopedRegistry)

[scopefunc (sqlalchemy.ext.asyncio.async\_scoped\_session parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.params.scopefunc)

[(sqlalchemy.orm.scoped\_session parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.params.scopefunc)

[(sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)
[\[0\]](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)

[second\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.second_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Interval.params.second_precision)

[secondary (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondary)

[secondaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondaryjoin)

[seed (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.seed)

[Select (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select)

[select (sqlalchemy.sql.expression.Insert attribute)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.select)

[(sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.select)

[(sqlalchemy.sql.expression.ValuesBase attribute)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.ValuesBase.select)

[select() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.select)

[(sqlalchemy.orm.WriteOnlyCollection method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.WriteOnlyCollection.select)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.select)

[select\_from() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.select_from)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Exists.select_from)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.select_from)

[selectable](https://docs.sqlalchemy.org/en/21/glossary.html#term-selectable)

[Selectable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Selectable)

[selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.selectable)

[(sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.selectable)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.selectable)

[SelectBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectBase)

[selected\_columns (sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.selected_columns)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.selected_columns)

[(sqlalchemy.sql.expression.SelectBase attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectBase.selected_columns)

[selectin\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.selectin_polymorphic)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.selectin_polymorphic)

[selectinload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.selectinload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.selectinload)

[SelectLabelStyle (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle)

[self\_and\_descendants (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.self_and_descendants)

[self\_group() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.self_group)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.self_group)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group)

[sentinel](https://docs.sqlalchemy.org/en/21/glossary.html#term-sentinel)

[separator (sqlalchemy.sql.functions.aggregate\_strings parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.aggregate_strings.params.separator)

[Sequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence)

[sequence\_name (sqlalchemy.engine.reflection.Inspector.has\_sequence parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_sequence.params.sequence_name)

[SEQUENCES (sqlalchemy.schema.CheckFirst attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst.SEQUENCES)

[sequences\_optional (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.sequences_optional)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.sequences_optional)

[serializable](https://docs.sqlalchemy.org/en/21/glossary.html#term-serializable)

[Serializer (class in sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/21/core/serializer.html#sqlalchemy.ext.serializer.Serializer)

[server\_default (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.server_default)

[server\_onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.server_onupdate)

[server\_side\_cursors (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.server_side_cursors)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.server_side_cursors)

[server\_version\_info (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.server_version_info)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.server_version_info)

[Session](https://docs.sqlalchemy.org/en/21/glossary.html#term-Session)

[(class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session)

[session (sqlalchemy.ext.asyncio.async\_session parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_session.params.session)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.session)

[(sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session)

[session\_factory (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.session_factory)

[(sqlalchemy.ext.asyncio.async\_scoped\_session parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.params.session_factory)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.session_factory)

[session\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.session_user)

[SessionEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents)

[sessionmaker (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.sessionmaker)

[SessionTransaction (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransaction)

[SessionTransactionOrigin (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin)

[SET (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.SET)

[set() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.set)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.set)

[set\_ (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.set_)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update.params.set_)

[set\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute)

[set\_bit() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.set_bit)

[set\_committed\_value() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value)

[set\_connection\_execution\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_connection_execution_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.set_connection_execution_options)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options)

[set\_creator\_ddl() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.set_creator_ddl)

[set\_dropper\_ddl() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.set_dropper_ddl)

[set\_engine\_execution\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_engine_execution_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.set_engine_execution_options)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options)

[set\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.set_isolation_level)

[set\_label\_style() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.set_label_style)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.set_label_style)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.set_label_style)

[set\_parent() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.set_parent)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.SynonymProperty.set_parent)

[set\_shard() (sqlalchemy.ext.horizontal\_shard.ShardedQuery method)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard)

[set\_shard\_id (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id)

[setdefault() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.setdefault)

[(sqlalchemy.orm.KeyFuncDict method)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict.setdefault)

[SETINPUTSIZES (sqlalchemy.engine.BindTyping attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.BindTyping.SETINPUTSIZES)

[setinputsizes() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.setinputsizes)

[setoutputsize() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.setoutputsize)

[setter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.setter)

[setup() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.MapperProperty.setup)

[shard\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shard_chooser)

[shard\_id (sqlalchemy.ext.horizontal\_shard.set\_shard\_id parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.params.shard_id)

[ShardedQuery (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery)

[ShardedSession (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession)

[shards (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shards)

[shares\_lineage() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.shares_lineage)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.shares_lineage)

[should\_evaluate\_none (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none)

[single (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.single)

[single\_entity (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.single_entity)

[(sqlalchemy.orm.Bundle parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.Bundle.params.single_entity)

[single\_parent (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.single_parent)

[SingletonThreadPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.SingletonThreadPool)

[size (sqlalchemy.engine.CursorResult.partitions parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.partitions.params.size)

[(sqlalchemy.engine.Result.partitions parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.partitions.params.size)

[skip\_autocommit\_rollback (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.skip_autocommit_rollback)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.skip_autocommit_rollback)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.skip_autocommit_rollback)

[skip\_fn (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.sort_tables.params.skip_fn)

[skip\_locked (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.skip_locked)

[slice() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.slice)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.slice)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.slice)

[SMALLDATETIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME)

[SMALLINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.SMALLINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.SMALLINT)

[SmallInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.SmallInteger)

[SMALLMONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLMONEY) | [soft (sqlalchemy.pool.ConnectionPoolEntry.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.invalidate.params.soft)

[(sqlalchemy.pool.ManagesConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.ManagesConnection.invalidate.params.soft)

[(sqlalchemy.pool.PoolProxiedConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.invalidate.params.soft)

[soft\_invalidate() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate)

[sort() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.sort)

[sort\_by\_parameter\_order (sqlalchemy.sql.expression.Delete.returning parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Delete.returning.params.sort_by_parameter_order)

[(sqlalchemy.sql.expression.Insert.returning parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.returning.params.sort_by_parameter_order)

[(sqlalchemy.sql.expression.Update.returning parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Update.returning.params.sort_by_parameter_order)

[sort\_key\_function (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.sort_key_function)

[(sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function)

[sort\_order (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.sort_order)

[sort\_tables() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.sort_tables)

[sort\_tables\_and\_constraints() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints)

[sort\_tables\_on\_foreign\_key\_dependency() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.sort_tables_on_foreign_key_dependency)

[sorted\_tables (sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.sorted_tables)

[SPARSE (sqlalchemy.dialects.oracle.VectorStorageType attribute)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageType.SPARSE)

[SparseVector (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.SparseVector)

[splice\_horizontally() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.splice_horizontally)

[splice\_vertically() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.splice_vertically)

[split() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.split)

[spoil() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil)

[(sqlalchemy.sql.expression.StatementLambdaElement method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil)

[sql\_compiler (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.sql_compiler)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.sql_compiler)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.sql_compiler)

[sql\_only (sqlalchemy.orm.raiseload parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.raiseload.params.sql_only)

[SQL\_VARIANT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.SQL_VARIANT)

sqlalchemy.dialects.mssql.aioodbc

[module](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#module-sqlalchemy.dialects.mssql.aioodbc)

sqlalchemy.dialects.mssql.base

[module](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#module-sqlalchemy.dialects.mssql.base)

sqlalchemy.dialects.mssql.pymssql

[module](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pymssql)

sqlalchemy.dialects.mssql.pyodbc

[module](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pyodbc)

sqlalchemy.dialects.mysql.aiomysql

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.aiomysql)

sqlalchemy.dialects.mysql.asyncmy

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.asyncmy)

sqlalchemy.dialects.mysql.base

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.base)

sqlalchemy.dialects.mysql.cymysql

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.cymysql)

sqlalchemy.dialects.mysql.mariadbconnector

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mariadbconnector)

sqlalchemy.dialects.mysql.mysqlconnector

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector)

sqlalchemy.dialects.mysql.mysqldb

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqldb)

sqlalchemy.dialects.mysql.pymysql

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pymysql)

sqlalchemy.dialects.mysql.pyodbc

[module](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pyodbc)

sqlalchemy.dialects.oracle.base

[module](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#module-sqlalchemy.dialects.oracle.base)

sqlalchemy.dialects.oracle.cx\_oracle

[module](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#module-sqlalchemy.dialects.oracle.cx_oracle)

sqlalchemy.dialects.oracle.oracledb

[module](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#module-sqlalchemy.dialects.oracle.oracledb)

sqlalchemy.dialects.postgresql.asyncpg

[module](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.asyncpg)

sqlalchemy.dialects.postgresql.base

[module](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.base)

sqlalchemy.dialects.postgresql.pg8000

[module](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pg8000)

sqlalchemy.dialects.postgresql.psycopg

[module](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg)

sqlalchemy.dialects.postgresql.psycopg2

[module](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2)

sqlalchemy.dialects.postgresql.psycopg2cffi

[module](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2cffi)

sqlalchemy.dialects.sqlite

[module](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite)

sqlalchemy.dialects.sqlite.aiosqlite

[module](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.aiosqlite)

sqlalchemy.dialects.sqlite.base

[module](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.base)

sqlalchemy.dialects.sqlite.pysqlcipher

[module](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlcipher)

sqlalchemy.dialects.sqlite.pysqlite

[module](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlite)

sqlalchemy.engine

[module](https://docs.sqlalchemy.org/en/21/core/connections.html#module-sqlalchemy.engine)

sqlalchemy.exc

[module](https://docs.sqlalchemy.org/en/21/core/exceptions.html#module-sqlalchemy.exc)

sqlalchemy.ext.associationproxy

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy)

sqlalchemy.ext.automap

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#module-sqlalchemy.ext.automap)

sqlalchemy.ext.baked

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#module-sqlalchemy.ext.baked)

sqlalchemy.ext.compiler

[module](https://docs.sqlalchemy.org/en/21/core/compiler.html#module-sqlalchemy.ext.compiler)

sqlalchemy.ext.declarative

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/api.html#module-sqlalchemy.ext.declarative)

sqlalchemy.ext.horizontal\_shard

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/horizontal_shard.html#module-sqlalchemy.ext.horizontal_shard)

sqlalchemy.ext.hybrid

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#module-sqlalchemy.ext.hybrid)

sqlalchemy.ext.indexable

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable)

sqlalchemy.ext.instrumentation

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation)

sqlalchemy.ext.mutable

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#module-sqlalchemy.ext.mutable)

sqlalchemy.ext.orderinglist

[module](https://docs.sqlalchemy.org/en/21/orm/extensions/orderinglist.html#module-sqlalchemy.ext.orderinglist)

sqlalchemy.ext.serializer

[module](https://docs.sqlalchemy.org/en/21/core/serializer.html#module-sqlalchemy.ext.serializer)

sqlalchemy.inspection

[module](https://docs.sqlalchemy.org/en/21/core/inspection.html#module-sqlalchemy.inspection)

sqlalchemy.orm.exc

[module](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#module-sqlalchemy.orm.exc)

sqlalchemy.orm.instrumentation

[module](https://docs.sqlalchemy.org/en/21/orm/events.html#module-sqlalchemy.orm.instrumentation)

sqlalchemy.orm.session

[module](https://docs.sqlalchemy.org/en/21/orm/session.html#module-sqlalchemy.orm.session)

sqlalchemy.pool

[module](https://docs.sqlalchemy.org/en/21/core/pooling.html#module-sqlalchemy.pool)

sqlalchemy.schema

[module](https://docs.sqlalchemy.org/en/21/core/metadata.html#module-sqlalchemy.schema)

sqlalchemy.sql.expression

[module](https://docs.sqlalchemy.org/en/21/core/expression_api.html#module-sqlalchemy.sql.expression)

sqlalchemy.sql.operators

[module](https://docs.sqlalchemy.org/en/21/core/operators.html#module-sqlalchemy.sql.operators)

sqlalchemy.sql.visitors

[module](https://docs.sqlalchemy.org/en/21/core/visitors.html#module-sqlalchemy.sql.visitors)

sqlalchemy.types

[module](https://docs.sqlalchemy.org/en/21/core/type_basics.html#module-sqlalchemy.types)

[sqlalchemy\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ExceptionContext.sqlalchemy_exception)

[SQLAlchemyError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError)

[SQLColumnExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.SQLColumnExpression)

[SQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler)

[SQLORMExpression (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.SQLORMExpression)

[sqltext (sqlalchemy.engine.interfaces.ReflectedCheckConstraint attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedCheckConstraint.sqltext)

[(sqlalchemy.engine.interfaces.ReflectedComputed attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedComputed.sqltext)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.sqltext)

[stack (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.stack)

[StaleDataError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError)

[start (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.start)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Identity.params.start)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/21/core/defaults.html#sqlalchemy.schema.Sequence.params.start)

[start() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.start)

[(sqlalchemy.ext.asyncio.AsyncTransaction method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTransaction.start)

[start\_frame\_type (sqlalchemy.sql.expression.FrameClause parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClause.params.start_frame_type)

[startswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.startswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.startswith)

[state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.state)

[(sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.state)

[(sqlalchemy.schema.CheckConstraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.CheckConstraint.ddl_if.params.state)

[state\_dict (sqlalchemy.orm.InstanceEvents.pickle parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.pickle.params.state_dict)

[(sqlalchemy.orm.InstanceEvents.unpickle parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.unpickle.params.state_dict)

[state\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager.state_getter)

[statement (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.statement)

[(sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.params.statement)

[(sqlalchemy.engine.Connection.exec\_driver\_sql parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql.params.statement)

[statement\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.statement_compiler)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.statement_compiler)

[StatementError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.StatementError)

[StatementLambdaElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement)

[StaticPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.StaticPool)

[status() (sqlalchemy.pool.AssertionPool method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.AssertionPool.status)

[(sqlalchemy.pool.NullPool method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.NullPool.status)

[(sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.Pool.status)

[storage\_format (sqlalchemy.dialects.oracle.VECTOR parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR.params.storage_format)

[(sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.storage_format)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.storage_format)

[storage\_type (sqlalchemy.dialects.oracle.VECTOR parameter)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR.params.storage_type)

[strategy (sqlalchemy.engine.CursorResult.unique parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.unique.params.strategy)

[(sqlalchemy.engine.Result.unique parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.unique.params.strategy)

[stream() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.stream)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.stream)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.stream)

[stream\_results (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.stream_results)

[stream\_scalars() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.stream_scalars)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.stream_scalars)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.stream_scalars)

[strict (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.strict)

[strict\_attrs (sqlalchemy.ext.declarative.AbstractConcreteBase parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.AbstractConcreteBase.params.strict_attrs)

[strictly\_left\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.strictly_left_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.strictly_left_of)

[strictly\_right\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.strictly_right_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.strictly_right_of)

[String (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.String)

[string (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Compiled.string)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.string)

[STRING (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.STRING)

[STRING\_MATCH (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.STRING_MATCH)

[stringify\_dialect (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.stringify_dialect)

[strip() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.strip)

[StrSQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler)

[subject (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/21/core/inspection.html#sqlalchemy.inspect.params.subject)

[subquery](https://docs.sqlalchemy.org/en/21/glossary.html#term-subquery)

[Subquery (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Subquery)

[subquery() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.subquery)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.subquery)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.subquery)

[subqueryload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.subqueryload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.subqueryload)

[SUBTRANSACTION (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.SUBTRANSACTION)

[suffix\_with() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.suffix_with)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.suffix_with)

[(sqlalchemy.sql.expression.HasSuffixes method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes.suffix_with)

[sum (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.sum)

[sum() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.sum)

[supplemental\_cols (sqlalchemy.sql.expression.UpdateBase.return\_defaults parameter)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.UpdateBase.return_defaults.params.supplemental_cols)

[Supported version](https://docs.sqlalchemy.org/en/21/dialects/index.html#term-Supported-version)

[supports\_alter (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_alter)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_alter)

[supports\_comments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_comments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_comments)

[supports\_constraint\_comments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_constraint_comments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_constraint_comments)

[supports\_default\_metavalue (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_default_metavalue)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_default_metavalue)

[supports\_default\_values (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_default_values)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_default_values)

[supports\_empty\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_empty_insert)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_empty_insert)

[supports\_execution (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.supports_execution)

[supports\_identity\_columns (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_identity_columns)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_identity_columns)

[supports\_multivalues\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_multivalues_insert)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_multivalues_insert)

[supports\_native\_boolean (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_boolean)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_native_boolean)

[supports\_native\_decimal (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_decimal)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_native_decimal)

[supports\_native\_enum (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_enum)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_native_enum)

[supports\_native\_uuid (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_uuid)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_native_uuid)

[supports\_sane\_multi\_rowcount (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_multi_rowcount)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_sane_multi_rowcount)

[supports\_sane\_multi\_rowcount() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.supports_sane_multi_rowcount)

[supports\_sane\_rowcount (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_rowcount)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_sane_rowcount)

[supports\_sane\_rowcount() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.supports_sane_rowcount)

[supports\_sane\_rowcount\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_rowcount_returning)

[supports\_sequences (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sequences)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_sequences)

[supports\_server\_side\_cursors (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_server_side_cursors)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_server_side_cursors)

[supports\_simple\_order\_by\_label (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_simple_order_by_label)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_simple_order_by_label)

[supports\_statement\_cache (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_statement_cache)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.supports_statement_cache)

[symmetric (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.between.params.symmetric)

[symmetric\_difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.symmetric_difference_update)

[sync\_backref (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.sync_backref)

[sync\_connection (sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.sync_connection)

[sync\_engine (sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.sync_engine)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.sync_engine)

[sync\_session (sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.sync_session)

[sync\_session\_class (sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.sync_session_class)

[(sqlalchemy.ext.asyncio.AsyncSession parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.params.sync_session_class)

[synchronize\_session (sqlalchemy.orm.Query.delete parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.delete.params.synchronize_session)

[(sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.update.params.synchronize_session)

[Synonym (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.Synonym)

[synonym() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.synonym)

[synonym\_for() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.synonym_for)

[SynonymProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.SynonymProperty)

[synonyms (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.synonyms)

[SyntaxExtension (class in sqlalchemy.sql)](https://docs.sqlalchemy.org/en/21/core/compiler.html#sqlalchemy.sql.SyntaxExtension)

[sysdate (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.sysdate)

[system (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.system) | T - | | | | --- | --- | | [t (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.t)

[(sqlalchemy.engine.Result attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.t)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row.t)

[Table (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table)

[table (sqlalchemy.engine.reflection.Inspector.reflect\_table parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table.params.table)

[(sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.table)

[(sqlalchemy.orm.Session.bind\_table parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bind_table.params.table)

[table metadata](https://docs.sqlalchemy.org/en/21/glossary.html#term-table-metadata)

[table() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.table)

[table\_map (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.table_map)

[table\_name (sqlalchemy.dialects.postgresql.base.PGInspector.get\_table\_oid parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_columns parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns.params.table_name)

[table\_valued() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.table_valued)

[(sqlalchemy.sql.expression.TableClause method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TableClause.table_valued)

[(sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Values.table_valued)

[TableClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TableClause)

[tablename (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.tablename)

[tables (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.tables)

[TABLES (sqlalchemy.schema.CheckFirst attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst.TABLES)

[tables (sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.tables)

[(sqlalchemy.schema.MetaData.create\_all parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.create_all.params.tables)

[(sqlalchemy.schema.MetaData.drop\_all parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.drop_all.params.tables)

[TableSample (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TableSample)

[tablesample() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.tablesample)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.tablesample)

[(sqlalchemy.sql.expression.FromClause method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.FromClause.tablesample)

[TableValuedAlias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias)

[target (sqlalchemy.events.DDLEvents.after\_create parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_create.params.target)

[(sqlalchemy.events.DDLEvents.after\_drop parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_drop.params.target)

[(sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.target)

[target\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.target_class)

[target\_collection (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.target_collection)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.target_collection)

[target\_fullname (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.target_fullname)

[template (sqlalchemy.sql.expression.TString parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TString.params.template)

[(sqlalchemy.sql.expression.tstring parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.tstring.params.template)

[temporary (sqlalchemy.schema.CreateTableAs parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateTableAs.params.temporary)

[(sqlalchemy.schema.CreateView parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.params.temporary)

[(sqlalchemy.sql.expression.CompoundSelect.into parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.into.params.temporary)

[terminate\_only (sqlalchemy.events.PoolResetState attribute)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolResetState.terminate_only)

[TEXT (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.TEXT)

[Text (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Text)

[text (sqlalchemy.engine.interfaces.ReflectedTableComment attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedTableComment.text)

[(sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.column.params.text)

[(sqlalchemy.sql.expression.literal\_column parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.literal_column.params.text)

[text() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.text)

[text\_type (sqlalchemy.dialects.postgresql.HSTORE parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.params.text_type)

[TextClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TextClause)

[TextualSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TextualSelect)

thread safety

[Connection](https://docs.sqlalchemy.org/en/21/core/connections.html#index-0)

[Transaction](https://docs.sqlalchemy.org/en/21/core/connections.html#index-2)

[ThreadLocalRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.util.ThreadLocalRegistry)

[TIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.TIME)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TIME)

[Time (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Time) | [timeout (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.QueuePool.params.timeout)

[TimeoutError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.TimeoutError)

[TIMESTAMP (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP)

[(class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.TIMESTAMP)

[timetuple (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.timetuple)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.timetuple)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.timetuple)

[timezone (sqlalchemy.dialects.mssql.SMALLDATETIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.timezone)

[TINYBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYBLOB)

[TINYINT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.TINYINT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYINT)

[TINYTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYTEXT)

[to\_metadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.to_metadata)

[to\_offline\_string() (sqlalchemy.sql.expression.CacheKey method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string)

[to\_query() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query)

[to\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.to_tsquery)

[to\_tsvector (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.to_tsvector)

[tometadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.tometadata)

[track\_bound\_values (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.track_bound_values)

[track\_closure\_variables (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.track_closure_variables)

[(sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.track_closure_variables)

[Transaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Transaction)

[transaction (sqlalchemy.orm.SessionEvents.after\_begin parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin.params.transaction)

[(sqlalchemy.orm.SessionEvents.after\_transaction\_create parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create.params.transaction)

[(sqlalchemy.orm.SessionEvents.after\_transaction\_end parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_end.params.transaction)

[transaction\_was\_reset (sqlalchemy.events.PoolResetState attribute)](https://docs.sqlalchemy.org/en/21/core/events.html#sqlalchemy.events.PoolResetState.transaction_was_reset)

[transient](https://docs.sqlalchemy.org/en/21/glossary.html#term-transient)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.transient)

[transient\_to\_pending() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.transient_to_pending)

[translate\_connect\_args() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.translate_connect_args)

[translate\_select\_structure (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.translate_select_structure)

[traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.traverse)

[(sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse)

[traverse\_using() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.traverse_using)

[true() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.true)

[True\_ (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.True_)

[truncate\_microseconds (sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.truncate_microseconds)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.truncate_microseconds)

[try\_cast() (in module sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.try_cast)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.try_cast)

[TryCast (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TryCast)

[ts\_headline (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ts_headline)

[TSMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSMULTIRANGE)

[TSQUERY (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSQUERY)

[TSRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSRANGE)

[TString (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TString)

[tstring() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.tstring)

[TSTZMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSTZMULTIRANGE)

[TSTZRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSTZRANGE)

[TSVECTOR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSVECTOR)

[Tuple (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.Tuple)

[TUPLE (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.TUPLE)

[tuple() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Row.tuple)

[tuple\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.tuple_)

[tuple\_in\_values (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.tuple_in_values)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.tuple_in_values)

[TupleResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.TupleResult)

[tuples() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.tuples)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.tuples)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.tuples)

[twophase (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.params.twophase)

[TwoPhaseTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction)

[type (sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.type)

[(sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.type)

[(sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.column.params.type)

[type\_ (sqlalchemy.dialects.postgresql.array parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array.params.type_)

[(sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.type_)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.type_)

[type\_annotation\_map (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.type_annotation_map)

[(sqlalchemy.orm.DeclarativeBase parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.params.type_annotation_map)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.params.type_annotation_map)

[type\_coerce() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.type_coerce)

[type\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.type_compiler)

[type\_compiler\_cls (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler_cls)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.type_compiler_cls)

[type\_compiler\_instance (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler_instance)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.type_compiler_instance)

[type\_descriptor() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_descriptor)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.type_descriptor)

[type\_engine() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine)

[type\_name (sqlalchemy.dialects.postgresql.base.PGInspector.has\_type parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.has_type.params.type_name)

[TypeCoerce (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.TypeCoerce)

[typecolname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.typecolname)

[TypeDecorator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator)

[TypeDecorator.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator)

[TypeEngine (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine)

[TypeEngine.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator)

[TypeResolve (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.TypeResolve)

[TYPES (sqlalchemy.schema.CheckFirst attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst.TYPES) | U - | | | | --- | --- | | [UnaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.UnaryExpression)

[UNBOUNDED (sqlalchemy.sql.expression.FrameClauseType attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FrameClauseType.UNBOUNDED)

[UnboundExecutionError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError)

[unchanged (sqlalchemy.orm.attributes.History attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.attributes.History.unchanged)

[undefer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.undefer)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.undefer)

[undefer\_group() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.undefer_group)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.undefer_group)

[unformat\_identifiers() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.unformat_identifiers)

[Unicode (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Unicode)

[unicode (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.unicode)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.unicode)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.unicode)

[UnicodeText (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.UnicodeText)

[uninstall\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor)

[uninstall\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member)

[union() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.union)

[(sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.union)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.union)

[union\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.union_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.union_all)

[(sqlalchemy.sql.expression.CTE method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CTE.union_all)

[unique (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.unique)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.unique)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.params.unique)

[unique constraint](https://docs.sqlalchemy.org/en/21/glossary.html#term-unique-constraint)

[unique key index](https://docs.sqlalchemy.org/en/21/glossary.html#term-unique-key-index)

[unique() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.unique)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.MappingResult.unique)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Result.unique)

[unique\_params() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Column.unique_params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.Table.unique_params)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/21/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params)

[UniqueConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.UniqueConstraint)

[UNIQUEIDENTIFIER (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER)

[unit of work](https://docs.sqlalchemy.org/en/21/glossary.html#term-unit-of-work)

[unloaded (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.unloaded)

[unloaded\_expirable (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.unloaded_expirable)

[unmapped\_dataclass() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.unmapped_dataclass)

[UnmappedClassError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError)

[UnmappedColumnError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError)

[UnmappedError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError)

[UnmappedInstanceError](https://docs.sqlalchemy.org/en/21/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError)

[unmodified (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.unmodified)

[unmodified\_intersection() (sqlalchemy.orm.InstanceState method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.unmodified_intersection)

[unpickle() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.InstanceEvents.unpickle)

[UnreflectableTableError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.UnreflectableTableError)

[unregister() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/21/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.ClassManager.unregister)

[unsigned (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.unsigned)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.unsigned)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.unsigned) | [UNSPECIFIED (sqlalchemy.sql.expression.OperatorClass attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.OperatorClass.UNSPECIFIED)

[UnsupportedCompilationError](https://docs.sqlalchemy.org/en/21/core/exceptions.html#sqlalchemy.exc.UnsupportedCompilationError)

[UOWTransaction (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction)

[Update (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Update)

[update() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.update)

[(sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.update)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.update)

[update\_args (sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.update.params.update_args)

[update\_changed\_only (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.update_changed_only)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.update_changed_only)

[update\_context (sqlalchemy.orm.QueryEvents.before\_compile\_update parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update.params.update_context)

[(sqlalchemy.orm.SessionEvents.after\_bulk\_update parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_update.params.update_context)

[update\_delete\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options)

[update\_executemany\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.update_executemany_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.update_executemany_returning)

[update\_execution\_options() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Engine.update_execution_options)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.update_execution_options)

[(sqlalchemy.orm.ORMExecuteState method)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_execution_options)

[update\_expression() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/21/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.update_expression)

[update\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.update_from_clause)

[update\_post\_criteria\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_post_criteria_clause)

[update\_prefetch (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_prefetch)

[update\_query\_dict() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_dict)

[update\_query\_pairs() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_pairs)

[update\_query\_string() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.update_query_string)

[update\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.update_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.update_returning)

[update\_returning\_multifrom (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.update_returning_multifrom)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.update_returning_multifrom)

[update\_tables\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_tables_clause)

[update\_type\_annotation\_map() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.registry.update_type_annotation_map)

[update\_url() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.update_url)

[UpdateBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.UpdateBase)

[upper (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.upper)

[(sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.upper)

[upper\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.between.params.upper_bound)

[upper\_inc (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.upper_inc)

[upper\_inf (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.upper_inf)

[URL (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL)

[url (sqlalchemy.create\_mock\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_mock_engine.params.url)

[(sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.url)

[(sqlalchemy.engine.default.DefaultDialect.create\_connect\_args parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args.params.url)

[use\_alter (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKey.params.use_alter)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/21/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.use_alter)

[use\_existing\_column (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.use_existing_column)

[use\_insertmanyvalues (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.create_engine.params.use_insertmanyvalues)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.use_insertmanyvalues)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.use_insertmanyvalues)

[use\_insertmanyvalues\_wo\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.use_insertmanyvalues_wo_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.use_insertmanyvalues_wo_returning)

[use\_lifo (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/21/core/pooling.html#sqlalchemy.pool.QueuePool.params.use_lifo)

[uselist (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.uselist)

[user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.user)

[user\_defined\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options)

[UserDefinedType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/custom_types.html#sqlalchemy.types.UserDefinedType)

[username (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.username)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.create.params.username)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/21/core/engines.html#sqlalchemy.engine.URL.set.params.username)

[uses\_inspection (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.uses_inspection)

[uses\_objects (sqlalchemy.orm.SynonymProperty attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.SynonymProperty.uses_objects)

[using (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.using)

[UUID (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.UUID)

[Uuid (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Uuid) | V - | | | | --- | --- | | [validate\_identifier() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.validate_identifier)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.Dialect.validate_identifier)

[validate\_sql\_phrase() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.validate_sql_phrase)

[validate\_strings (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.validate_strings)

[validates() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/mapped_attributes.html#sqlalchemy.orm.validates)

[validators (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.validators)

[vals() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.vals)

[value (sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.value)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.value)

[(sqlalchemy.orm.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/21/orm/events.html#sqlalchemy.orm.AttributeEvents.append.params.value)

[value() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.value)

[value\_attr (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.value_attr)

[Values (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Values)

[values (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.values)

[(sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/21/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace.params.values)

[(sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.update.params.values)

[values() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.values)

[(sqlalchemy.engine.RowMapping method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.RowMapping.values)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.values) | [values\_callable (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.Enum.params.values_callable)

[ValuesBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.ValuesBase)

[VARBINARY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.VARBINARY)

[VARCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.VARCHAR)

[Variant (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Variant)

[VECTOR (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR)

[VectorDistanceType (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType)

[VectorIndexConfig (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig)

[VectorIndexType (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexType)

[VectorStorageFormat (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat)

[VectorStorageType (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/21/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageType)

[version id column](https://docs.sqlalchemy.org/en/21/glossary.html#term-version-id-column)

[version\_id\_col (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.version_id_col)

[version\_id\_generator (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.version_id_generator)

[view\_name (sqlalchemy.engine.reflection.Inspector.get\_view\_definition parameter)](https://docs.sqlalchemy.org/en/21/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_definition.params.view_name)

[(sqlalchemy.schema.CreateView parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.CreateView.params.view_name)

[viewonly (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/21/orm/relationship_api.html#sqlalchemy.orm.relationship.params.viewonly)

[VIEWS (sqlalchemy.schema.CheckFirst attribute)](https://docs.sqlalchemy.org/en/21/core/ddl.html#sqlalchemy.schema.CheckFirst.VIEWS)

[views (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/21/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.views)

[visit\_name (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.visit_name)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.visit_name)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/21/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.visit_name)

[visit\_override\_binds() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.visit_override_binds)

[Visitable (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.Visitable)

[visitor\_iterator (sqlalchemy.sql.visitors.ExternalTraversal attribute)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator)

[visitors (sqlalchemy.sql.visitors.traverse parameter)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.visitors)

[(sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/21/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.visitors) | W - | | | | --- | --- | | [was\_already\_deleted() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.UOWTransaction.was_already_deleted)

[was\_deleted (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/21/orm/internals.html#sqlalchemy.orm.InstanceState.was_deleted)

[was\_deleted() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.util.was_deleted)

[websearch\_to\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.websearch_to_tsquery)

[where (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.where)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/21/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update.params.where)

[WHERE clause](https://docs.sqlalchemy.org/en/21/glossary.html#term-WHERE-clause)

[where() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.where)

[(sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Delete.where)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Exists.where)

[where\_criteria (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.where_criteria)

[whereclause (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.whereclause)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.whereclause)

[with\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/21/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.with_criteria)

[with\_dialect\_options() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Delete.with_dialect_options)

[(sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Insert.with_dialect_options)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/21/core/dml.html#sqlalchemy.sql.expression.Update.with_dialect_options)

[with\_entities() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_entities)

[with\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/columns.html#sqlalchemy.orm.with_expression)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/relationships.html#sqlalchemy.orm.Load.with_expression)

[with\_for\_update (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.with_for_update)

[(sqlalchemy.orm.scoped\_session.refresh parameter)](https://docs.sqlalchemy.org/en/21/orm/contextual.html#sqlalchemy.orm.scoped_session.refresh.params.with_for_update)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/21/orm/session_api.html#sqlalchemy.orm.Session.get.params.with_for_update)

[with\_for\_update() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_for_update)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update)

[with\_hint() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.with_hint)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_hint) | [with\_labels (sqlalchemy.orm.Query.subquery parameter)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.subquery.params.with_labels)

[with\_labels() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_labels)

[with\_loader\_criteria() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria)

[with\_only\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns)

[with\_ordinality (sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.with_ordinality)

[with\_parent() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/api.html#sqlalchemy.orm.with_parent)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_parent)

[with\_polymorphic (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.with_polymorphic)

[with\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic)

[with\_polymorphic\_mappers (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/21/orm/mapping_api.html#sqlalchemy.orm.Mapper.with_polymorphic_mappers)

[with\_query\_expansion (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.with_query_expansion)

[with\_query\_expansion() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.match.with_query_expansion)

[with\_session() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_session)

[with\_statement\_hint() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.with_statement_hint)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_statement_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.with_statement_hint)

[with\_ties (sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.with_ties)

[(sqlalchemy.sql.expression.GenerativeSelect.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch.params.with_ties)

[(sqlalchemy.sql.expression.Select.fetch parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.Select.fetch.params.with_ties)

[with\_transformation() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/21/orm/queryguide/query.html#sqlalchemy.orm.Query.with_transformation)

[with\_types (sqlalchemy.sql.expression.TableValuedAlias.render\_derived parameter)](https://docs.sqlalchemy.org/en/21/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived.params.with_types)

[with\_variant() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant)

[(sqlalchemy.types.Variant method)](https://docs.sqlalchemy.org/en/21/core/type_api.html#sqlalchemy.types.Variant.with_variant)

[within\_group() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.within_group)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.within_group)

[(sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group)

[within\_group\_type() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/21/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type)

[WithinGroup (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup)

[WrapsColumnExpression (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/21/core/sqlelement.html#sqlalchemy.sql.elements.WrapsColumnExpression)

[WriteOnlyCollection (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.WriteOnlyCollection)

[WriteOnlyMapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/21/orm/large_collections.html#sqlalchemy.orm.WriteOnlyMapped) | X - | | | | --- | --- | | [xid (sqlalchemy.engine.Connection.begin\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/21/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.xid) | [XML (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/21/dialects/mssql.html#sqlalchemy.dialects.mssql.XML) | Y - | | | | --- | --- | | [YEAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.YEAR)

[yield\_per (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.yield_per)

[yield\_per() (sqlalchemy.engine.ChunkedIteratorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult.yield_per)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.CursorResult.yield_per)

[(sqlalchemy.engine.FilterResult method)](https://docs.sqlalchemy.org/en/21/core/connections.html#sqlalchemy.engine.FilterResult.yield_per) | | Z - | | | | --- | --- | | [zero\_indexes (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.zero_indexes)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/21/core/type_basics.html#sqlalchemy.types.ARRAY.params.zero_indexes)

[zerofill (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.zerofill)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.zerofill)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/21/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.zerofill) | [zfill() (sqlalchemy.dialects.postgresql.BitString method)](https://docs.sqlalchemy.org/en/21/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BitString.zfill) | © [Copyright](https://docs.sqlalchemy.org/en/21/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:01:18 PM EST --- # Establishing Connectivity - the Engine — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "SQLAlchemy Unified Tutorial") * **Establishing Connectivity - the Engine**[¶](https://docs.sqlalchemy.org/en/20/tutorial/engine.html#) * [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html) * [Working with Database Metadata](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html) * [Working with Data](https://docs.sqlalchemy.org/en/20/tutorial/data.html) * [Data Manipulation with the ORM](https://docs.sqlalchemy.org/en/20/tutorial/orm_data_manipulation.html) * [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/20/tutorial/orm_related_objects.html) * [Further Reading](https://docs.sqlalchemy.org/en/20/tutorial/further_reading.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "previous chapter") * **Next:** [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "SQLAlchemy Unified Tutorial") * **On this page:** * [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/20/tutorial/engine.html#establishing-connectivity-the-engine) Establishing Connectivity - the Engine[¶](https://docs.sqlalchemy.org/en/20/tutorial/engine.html#establishing-connectivity-the-engine "Link to this heading") ============================================================================================================================================================== **Welcome ORM and Core readers alike!** Every SQLAlchemy application that connects to a database needs to use an [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") . This short section is for everyone. The start of any SQLAlchemy application is an object called the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") . This object acts as a central source of connections to a particular database, providing both a factory as well as a holding space called a [connection pool](https://docs.sqlalchemy.org/en/20/core/pooling.html) for these database connections. The engine is typically a global object created just once for a particular database server, and is configured using a URL string which will describe how it should connect to the database host or backend. For this tutorial we will use an in-memory-only SQLite database. This is an easy way to test things without needing to have an actual pre-existing database set up. The [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") is created by using the [`create_engine()`](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine "sqlalchemy.create_engine") function: \>>> from sqlalchemy import create\_engine \>>> engine \= create\_engine("sqlite+pysqlite:///:memory:", echo\=True) The main argument to [`create_engine`](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine "sqlalchemy.create_engine") is a string URL, above passed as the string `"sqlite+pysqlite:///:memory:"`. This string indicates to the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") three important facts: 1. What kind of database are we communicating with? This is the `sqlite` portion above, which links in SQLAlchemy to an object known as the [dialect](https://docs.sqlalchemy.org/en/20/glossary.html#term-dialect) . 2. What [DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI) are we using? The Python [DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI) is a third party driver that SQLAlchemy uses to interact with a particular database. In this case, we’re using the name `pysqlite`, which in modern Python use is the [sqlite3](https://docs.python.org/library/sqlite3.html) standard library interface for SQLite. If omitted, SQLAlchemy will use a default [DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI) for the particular database selected. 3. How do we locate the database? In this case, our URL includes the phrase `/:memory:`, which is an indicator to the `sqlite3` module that we will be using an **in-memory-only** database. This kind of database is perfect for experimenting as it does not require any server nor does it need to create new files. We have also specified a parameter [`create_engine.echo`](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.echo "sqlalchemy.create_engine") , which will instruct the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") to log all of the SQL it emits to a Python logger that will write to standard out. This flag is a shorthand way of setting up [Python logging more formally](https://docs.sqlalchemy.org/en/20/core/engines.html#dbengine-logging) and is useful for experimentation in scripts. Many of the SQL examples will include this SQL logging output beneath a `[SQL]` link that when clicked, will reveal the full SQL interaction. Previous: [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "previous chapter") Next: [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Index — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= Search terms: [Contents](https://docs.sqlalchemy.org/en/20/contents.html) | [Index](https://docs.sqlalchemy.org/en/20/genindex.html#) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Index ===== [**Symbols**](https://docs.sqlalchemy.org/en/20/genindex.html#Symbols) | [**\_**](https://docs.sqlalchemy.org/en/20/genindex.html#_) | [**A**](https://docs.sqlalchemy.org/en/20/genindex.html#A) | [**B**](https://docs.sqlalchemy.org/en/20/genindex.html#B) | [**C**](https://docs.sqlalchemy.org/en/20/genindex.html#C) | [**D**](https://docs.sqlalchemy.org/en/20/genindex.html#D) | [**E**](https://docs.sqlalchemy.org/en/20/genindex.html#E) | [**F**](https://docs.sqlalchemy.org/en/20/genindex.html#F) | [**G**](https://docs.sqlalchemy.org/en/20/genindex.html#G) | [**H**](https://docs.sqlalchemy.org/en/20/genindex.html#H) | [**I**](https://docs.sqlalchemy.org/en/20/genindex.html#I) | [**J**](https://docs.sqlalchemy.org/en/20/genindex.html#J) | [**K**](https://docs.sqlalchemy.org/en/20/genindex.html#K) | [**L**](https://docs.sqlalchemy.org/en/20/genindex.html#L) | [**M**](https://docs.sqlalchemy.org/en/20/genindex.html#M) | [**N**](https://docs.sqlalchemy.org/en/20/genindex.html#N) | [**O**](https://docs.sqlalchemy.org/en/20/genindex.html#O) | [**P**](https://docs.sqlalchemy.org/en/20/genindex.html#P) | [**Q**](https://docs.sqlalchemy.org/en/20/genindex.html#Q) | [**R**](https://docs.sqlalchemy.org/en/20/genindex.html#R) | [**S**](https://docs.sqlalchemy.org/en/20/genindex.html#S) | [**T**](https://docs.sqlalchemy.org/en/20/genindex.html#T) | [**U**](https://docs.sqlalchemy.org/en/20/genindex.html#U) | [**V**](https://docs.sqlalchemy.org/en/20/genindex.html#V) | [**W**](https://docs.sqlalchemy.org/en/20/genindex.html#W) | [**X**](https://docs.sqlalchemy.org/en/20/genindex.html#X) | [**Y**](https://docs.sqlalchemy.org/en/20/genindex.html#Y) | [**Z**](https://docs.sqlalchemy.org/en/20/genindex.html#Z) * * * Symbols ------- | | | | --- | --- | | [\*\*cparams (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.**cparams)

[(sqlalchemy.engine.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.connect.params.**cparams)

[\*\*dialect\_kw (sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.**dialect_kw)

[(sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint.params.**dialect_kw)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.**dialect_kw)

[\*\*dialect\_kwargs (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.**dialect_kwargs)

[\*\*kw (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.**kw)

[(sqlalchemy.engine.reflection.Inspector.get\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints.params.**kw)

[(sqlalchemy.engine.reflection.Inspector.get\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns.params.**kw)

[\*\*kwargs (sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate.params.**kwargs)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.**kwargs)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate.params.**kwargs)

[\*\*reflect\_kw (sqlalchemy.ext.declarative.DeferredReflection.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection.prepare.params.**reflect_kw)

[\*\*types (sqlalchemy.sql.expression.TextClause.columns parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.columns.params.**types)

[\*args (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.*args)

[(sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.*args)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.*args)

[\*attrs (sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.*attrs)

[(sqlalchemy.orm.load\_only parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.load_only.params.*attrs)
[\[0\]](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.load_only.params.*attrs) | [\*cargs (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.*cargs)

[(sqlalchemy.engine.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.connect.params.*cargs)

[\*clauses (sqlalchemy.sql.expression.CompoundSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by.params.*clauses)

[(sqlalchemy.sql.expression.CompoundSelect.order\_by parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by.params.*clauses)

[(sqlalchemy.sql.expression.GenerativeSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by.params.*clauses)

[\*col\_expressions (sqlalchemy.engine.CursorResult.columns parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.columns.params.*col_expressions)

[(sqlalchemy.engine.Result.columns parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.columns.params.*col_expressions)

[\*cols (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.*cols)

[(sqlalchemy.sql.expression.Delete.returning parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete.returning.params.*cols)

[(sqlalchemy.sql.expression.Insert.returning parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.returning.params.*cols)

[\*columns (sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.deferred.params.*columns)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.*columns)

[(sqlalchemy.schema.UniqueConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.UniqueConstraint.params.*columns)

[\*ctes (sqlalchemy.sql.expression.CompoundSelect.add\_cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte.params.*ctes)

[(sqlalchemy.sql.expression.HasCTE.add\_cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte.params.*ctes)

[(sqlalchemy.sql.expression.Select.add\_cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte.params.*ctes)

[\*dialect\_names (sqlalchemy.types.TypeEngine.with\_variant parameter)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant.params.*dialect_names)

[(sqlalchemy.types.Variant.with\_variant parameter)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Variant.with_variant.params.*dialect_names)

[\*elements (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.*elements)

[\*entities (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.select.params.*entities)

[(sqlalchemy.sql.expression.Select.add\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.add_columns.params.*entities)

[(sqlalchemy.sql.expression.Select.with\_only\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns.params.*entities)

[\*enums (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.*enums)

[\*expr (sqlalchemy.orm.Query.distinct parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.distinct.params.*expr)

[(sqlalchemy.sql.expression.Select.distinct parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.distinct.params.*expr)

[(sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.*expr)

[\*expressions (sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Index.params.*expressions)

[\*exprs (sqlalchemy.orm.Bundle parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.params.*exprs)

[\*from\_obj (sqlalchemy.orm.Query.select\_from parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.select_from.params.*from_obj)

[\*fromclauses (sqlalchemy.sql.expression.ScalarSelect.correlate parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate.params.*fromclauses)

[(sqlalchemy.sql.expression.ScalarSelect.correlate\_except parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate_except.params.*fromclauses)

[(sqlalchemy.sql.expression.Select.correlate parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.correlate.params.*fromclauses)

[\*names (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.*names)

[\*opts (sqlalchemy.orm.Load.options parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.options.params.*opts)

[\*order\_by (sqlalchemy.sql.expression.within\_group parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.within_group.params.*order_by)

[\*other (sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate.params.*other)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.*other)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate.params.*other)

[\*prefixes (sqlalchemy.orm.AppenderQuery.prefix\_with parameter)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.prefix_with.params.*prefixes)

[(sqlalchemy.orm.Query.prefix\_with parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.prefix_with.params.*prefixes)

[(sqlalchemy.sql.expression.HasPrefixes.prefix\_with parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes.prefix_with.params.*prefixes)

[\*props (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.join.params.*props)

[\*selects (sqlalchemy.sql.expression.except\_ parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.except_.params.*selects)

[(sqlalchemy.sql.expression.except\_all parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.except_all.params.*selects)

[(sqlalchemy.sql.expression.intersect parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.intersect.params.*selects)

[\*suffixes (sqlalchemy.orm.AppenderQuery.suffix\_with parameter)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.suffix_with.params.*suffixes)

[(sqlalchemy.orm.Query.suffix\_with parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.suffix_with.params.*suffixes)

[(sqlalchemy.sql.expression.HasSuffixes.suffix\_with parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes.suffix_with.params.*suffixes)

[\*whens (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.case.params.*whens)

[1.x style](https://docs.sqlalchemy.org/en/20/glossary.html#term-1.x-style)

[1.x-style](https://docs.sqlalchemy.org/en/20/glossary.html#term-0)

[2.0 style](https://docs.sqlalchemy.org/en/20/glossary.html#term-2.0-style)

[2.0-style](https://docs.sqlalchemy.org/en/20/glossary.html#term-1) | \_ -- | | | | --- | --- | | [\_\_add\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__)

[\_\_and\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__and__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__and__)

[\_\_call\_\_() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.__call__)

[(sqlalchemy.ext.asyncio.async\_sessionmaker method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_sessionmaker.__call__)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.__call__)

[\_\_eq\_\_() (sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.__eq__)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__eq__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.__eq__)

[\_\_floordiv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__floordiv__)

[\_\_ge\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__ge__)

[\_\_getitem\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__getitem__)

[\_\_gt\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__gt__)

[\_\_hash\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__hash__)

[\_\_init\_\_() (sqlalchemy.dialects.mssql.BIT method)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.__init__)

[(sqlalchemy.dialects.mssql.IMAGE method)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.__init__)

[(sqlalchemy.dialects.mssql.JSON method)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON.__init__) | [\_\_invert\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__invert__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__invert__)

[\_\_le\_\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__le__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__le__)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.__le__)

[\_\_lshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__lshift__)

[\_\_lt\_\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__lt__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__lt__)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.__lt__)

[\_\_mapper\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__mapper__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__mapper__)

[\_\_mapper\_args\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__mapper_args__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__mapper_args__)

[\_\_mod\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mod__)

[\_\_mul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mul__)

[\_\_name (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.__name)

[\_\_ne\_\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.__ne__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__ne__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.__ne__)

[\_\_neg\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__neg__)

[\_\_or\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__or__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__or__)

[\_\_radd\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__radd__)

[\_\_rfloordiv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rfloordiv__)

[\_\_rmod\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmod__)

[\_\_rmul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmul__)

[\_\_rshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rshift__)

[\_\_rsub\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rsub__)

[\_\_rtruediv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rtruediv__)

[\_\_sa\_operate\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__sa_operate__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__sa_operate__)

[\_\_sub\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__sub__)

[\_\_table\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__table__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__table__)

[\_\_table\_args\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__table_args__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__table_args__)

[\_\_tablename\_\_ (sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.__tablename__)

[(sqlalchemy.orm.DeclarativeBaseNoMeta attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta.__tablename__)

[\_\_truediv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__truediv__)

[\_\_type (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.__type)

[\_asdict() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row._asdict)

[\_ConnectionFairy (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool._ConnectionFairy)

[\_ConnectionRecord (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool._ConnectionRecord)

[\_create\_rule (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint.params._create_rule)

[\_CreateDropBase (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema._CreateDropBase)

[\_fields (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row._fields)

[\_get\_listen\_keys() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._get_listen_keys)

[\_listen\_on\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._listen_on_attribute)

[\_mapping (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row._mapping)

[\_parents (sqlalchemy.ext.mutable.Mutable attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._parents)

[(sqlalchemy.ext.mutable.MutableBase attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase._parents)

[\_t (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row._t)

[\_tuple() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row._tuple)

[\_type\_bound (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint.params._type_bound) | A - | | | | --- | --- | | [AbstractConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.AbstractConcreteBase)

[AbstractMultiRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractMultiRange)

[AbstractRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange)

[AbstractRange.comparator\_factory (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory)

[AbstractSingleRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractSingleRange)

[accuracy (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.accuracy)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.accuracy)

[ACID](https://docs.sqlalchemy.org/en/20/glossary.html#term-ACID)

[ACID model](https://docs.sqlalchemy.org/en/20/glossary.html#term-ACID-model)

[aclose() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.aclose)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.aclose)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.aclose)

[active\_history (sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.params.active_history)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.active_history)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.active_history)

[adapt() (sqlalchemy.types.SchemaType method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.SchemaType.adapt)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.adapt)

[adapt\_on\_names (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.adapt_on_names)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.adapt_on_names)

[adapt\_to\_emulated() (sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated)

[adapt\_to\_entity() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.adapt_to_entity)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute.adapt_to_entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.adapt_to_entity)

[AdaptedConnection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.AdaptedConnection)

[adapter (sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.adapter)

[add() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.add)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.add)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.add)

[add\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.add_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.add_all)

[(sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.add_all)

[add\_column() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.add_column)

[add\_columns() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.add_columns)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.add_columns)

[add\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.add_criteria)

[(sqlalchemy.sql.expression.StatementLambdaElement method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria)

[add\_cte() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte)

[(sqlalchemy.sql.expression.HasCTE method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte)

[add\_entity() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.add_entity)

[add\_is\_dependent\_on() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.add_is_dependent_on)

[add\_mapped\_attribute() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.add_mapped_attribute)

[add\_properties() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_properties)

[add\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_property)

[AddConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.AddConstraint)

[added (sqlalchemy.orm.attributes.History attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.added)

[additional\_parameters (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.additional_parameters)

[adds() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.adds)

[adjacent\_to() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.adjacent_to)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.adjacent_to)

[after\_attach() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_attach)

[after\_begin() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin)

[after\_bulk\_delete() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_delete)

[after\_bulk\_update() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_update)

[after\_commit() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_commit)

[after\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.after_configured)

[after\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_create)

[after\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute)

[after\_delete() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.after_delete)

[after\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_drop)

[after\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute)

[after\_flush() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush)

[after\_flush\_postexec() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec)

[after\_insert() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.after_insert)

[after\_mapper\_constructed() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.after_mapper_constructed)

[after\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach)

[after\_rollback() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_rollback)

[after\_soft\_rollback() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback)

[after\_transaction\_create() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create)

[after\_transaction\_end() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_end)

[after\_update() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.after_update)

[against (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.against)

[against() (sqlalchemy.schema.ExecutableDDLElement method)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.ExecutableDDLElement.against)

[aggregate\_order\_by (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.aggregate_order_by)

[aggregate\_strings (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.aggregate_strings)

[Alias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Alias)

[alias (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.alias)

[alias() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.alias)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.alias)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.alias)

[aliased (sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.aliased)

[aliased() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.aliased)

[AliasedClass (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.util.AliasedClass)

[AliasedInsp (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.util.AliasedInsp)

[AliasedReturnsRows (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows)

[aliasname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.aliasname)

[All() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.All)

[all() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.all)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.all)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.all)

[all\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.all_)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.all_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.all_)

[all\_mappers (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers)

[all\_orm\_descriptors (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.all_orm_descriptors)

[allow\_partial\_pks (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.allow_partial_pks)

[allows\_lambda (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.allows_lambda)

[always (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.always)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.always)

[always\_refresh (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.always_refresh)

[AmbiguousForeignKeysError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.AmbiguousForeignKeysError)

[and\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.and_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.and_)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute.and_)

[annotations](https://docs.sqlalchemy.org/en/20/glossary.html#term-annotations)

[anon\_key\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.anon_key_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_key_label)

[anon\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.anon_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_label)

[anon\_map (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.anon_map)

[ansi\_bind\_rules (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.ansi_bind_rules)

[AnsiFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.AnsiFunction)

[Any() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Any)

[any() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.any)

[any\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.any_)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.any_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any_)

[append (sqlalchemy.engine.URL.update\_query\_dict parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_dict.params.append)

[(sqlalchemy.engine.URL.update\_query\_pairs parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_pairs.params.append)

[(sqlalchemy.engine.URL.update\_query\_string parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_string.params.append)

[append() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.append)

[(sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.append)

[(sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.append)

[append\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.append_column)

[append\_constraint() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.append_constraint)

[append\_wo\_mutation() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.append_wo_mutation)

[appender() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.appender)

[AppenderQuery (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery)

[apply\_labels() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.apply_labels)

[args (sqlalchemy.orm.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.init.params.args)

[(sqlalchemy.orm.InstanceEvents.init\_failure parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.init_failure.params.args)

[argument (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.argument)

[argument\_for() (sqlalchemy.schema.CheckConstraint class method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for)

[(sqlalchemy.schema.Column class method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.argument_for)

[(sqlalchemy.schema.ColumnCollectionConstraint class method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for)

[argument\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.argument_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.argument_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.argument_name) | [ArgumentError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ArgumentError)

[ARRAY (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY)

[array (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array)

[ARRAY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY)

[array() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.array)

[ARRAY.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator)

[array\_agg (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.array_agg)

[array\_agg() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array_agg)

[arraysize (sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.arraysize)

[as\_boolean() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean)

[as\_comparison() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison)

[as\_declarative() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.as_declarative)

[as\_declarative\_base() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.as_declarative_base)

[as\_float() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float)

[as\_generic() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic)

[as\_integer() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer)

[as\_json() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json)

[as\_mutable() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.as_mutable)

[as\_numeric() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric)

[as\_readonly() (sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.as_readonly)

[as\_scalar() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.as_scalar)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.as_scalar)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.as_scalar)

[as\_string() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string)

[as\_tuple (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.as_tuple)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.params.as_tuple)

[as\_uuid (sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER.params.as_uuid)

[(sqlalchemy.dialects.postgresql.UUID parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.UUID.params.as_uuid)

[(sqlalchemy.types.UUID parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.UUID.params.as_uuid)

[asc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.asc)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.asc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.asc)

[ascii (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.ascii)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.ascii)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.ascii)

[asdecimal (sqlalchemy.dialects.oracle.BINARY\_DOUBLE parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_DOUBLE.params.asdecimal)

[(sqlalchemy.dialects.oracle.BINARY\_FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_FLOAT.params.asdecimal)

[(sqlalchemy.dialects.oracle.FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT.params.asdecimal)

[AssertionPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.AssertionPool)

[associate\_with() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with)

[associate\_with\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with_attribute)

[association relationship](https://docs.sqlalchemy.org/en/20/glossary.html#term-association-relationship)

[ASSOCIATION\_PROXY (sqlalchemy.ext.associationproxy.AssociationProxyExtensionType attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyExtensionType.ASSOCIATION_PROXY)

[association\_proxy() (in module sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy)

[AssociationProxy (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy)

[AssociationProxyExtensionType (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyExtensionType)

[AssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance)

[astext (sqlalchemy.dialects.postgresql.JSON.Comparator attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator.astext)

[astext\_type (sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.astext_type)

[async\_creator (sqlalchemy.ext.asyncio.create\_async\_engine parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_engine.params.async_creator)

[async\_engine\_from\_config() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_engine_from_config)

[async\_object\_session() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_object_session)

[async\_scoped\_session (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session)

[async\_session (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.async_session)

[async\_session() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_session)

[async\_sessionmaker (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_sessionmaker)

[AsyncAdaptedQueuePool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.AsyncAdaptedQueuePool)

[AsyncAttrs (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncAttrs)

[AsyncConnection (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection)

[AsyncEngine (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine)

[asyncio\_safe (sqlalchemy.events.PoolResetState attribute)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolResetState.asyncio_safe)

[AsyncMappingResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncMappingResult)

[AsyncResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult)

[AsyncScalarResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncScalarResult)

[AsyncSession (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession)

[AsyncSessionTransaction (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSessionTransaction)

[AsyncTransaction (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTransaction)

[AsyncTupleResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTupleResult)

[atomicity](https://docs.sqlalchemy.org/en/20/glossary.html#term-atomicity)

[attached](https://docs.sqlalchemy.org/en/20/glossary.html#term-attached)

[attr (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.attr)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.attr)

[ATTR\_EMPTY (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.ATTR_EMPTY)

[attr\_name (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.attr_name)

[(sqlalchemy.orm.attribute\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict.params.attr_name)

[ATTR\_WAS\_SET (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.ATTR_WAS_SET)

[attribute\_instrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstrumentationEvents.attribute_instrument)

[attribute\_keyed\_dict() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict)

[attribute\_mapped\_collection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.attribute_mapped_collection)

[attribute\_names (sqlalchemy.ext.asyncio.async\_scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire.params.attribute_names)

[(sqlalchemy.ext.asyncio.AsyncSession.expire parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire.params.attribute_names)

[(sqlalchemy.orm.scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.expire.params.attribute_names)

[AttributeEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents)

[AttributeEventToken (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeEventToken)

[AttributeState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeState)

[attrname (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.attrname)

[attrs (sqlalchemy.orm.InstanceEvents.expire parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.expire.params.attrs)

[(sqlalchemy.orm.InstanceEvents.refresh parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh.params.attrs)

[(sqlalchemy.orm.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush.params.attrs)

[autobegin (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.autobegin)

[AUTOBEGIN (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.AUTOBEGIN)

[autocommit (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.autocommit)

[autoescape (sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains.params.autoescape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith.params.autoescape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains.params.autoescape)

[autoflush (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.autoflush)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.autoflush)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.autoflush)

[autoflush() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.autoflush)

[autoincrement (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.autoincrement)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.autoincrement)

[autoincrement\_column (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.autoincrement_column)

[autoload\_replace (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.autoload_replace)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.autoload_replace)

[autoload\_with (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.autoload_with)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.autoload_with)

[automap\_base() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base)

[AutomapBase (class in sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase)

[awaitable\_attrs (sqlalchemy.ext.asyncio.AsyncAttrs attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncAttrs.awaitable_attrs)

[AwaitRequired](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.AwaitRequired) | B - | | | | --- | --- | | [back\_populates (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates)

[backref](https://docs.sqlalchemy.org/en/20/glossary.html#term-backref)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref)

[backref() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.backref)

[BakedQuery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery)

[Bakery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.Bakery)

[bakery() (in module sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.bakery)

[(sqlalchemy.ext.baked.BakedQuery class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.bakery)

[base (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.base)

[(sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.base)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.base)

[Base20DeprecationWarning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning)

[base\_columns (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.base_columns)

[base\_mapper (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.base_mapper)

[BaseDDLElement (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.BaseDDLElement)

[batch (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.batch)

[before\_attach() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.before_attach)

[before\_commit() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.before_commit)

[before\_compile() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile)

[before\_compile\_delete() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete)

[before\_compile\_update() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update)

[before\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.before_configured)

[before\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.before_create)

[before\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute)

[before\_delete() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.before_delete)

[before\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.before_drop)

[before\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute)

[before\_flush() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush)

[before\_insert() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.before_insert)

[before\_mapper\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.before_mapper_configured)

[before\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach)

[before\_update() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.before_update)

[BEGIN (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.BEGIN)

[begin() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.begin)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.begin)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.begin)

[BEGIN\_NESTED (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.BEGIN_NESTED)

[begin\_nested() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.begin_nested)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.begin_nested)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.begin_nested)

[begin\_twophase() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.begin_twophase)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.begin_twophase)

[Best effort](https://docs.sqlalchemy.org/en/20/dialects/index.html#term-Best-effort)

[between() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.between)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.between)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.between)

[BFILE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BFILE)

[bidirectional relationship](https://docs.sqlalchemy.org/en/20/glossary.html#term-bidirectional-relationship)

[BIGINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.BIGINT)

[BigInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.BigInteger)

[BINARY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.BINARY)

[binary (sqlalchemy.dialects.mysql.CHAR parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR.params.binary)

[(sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.binary)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.binary)

[BINARY (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.BINARY)

[BINARY\_DOUBLE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_DOUBLE)

[BINARY\_FLOAT (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_FLOAT)

[binary\_precision (sqlalchemy.dialects.oracle.FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT.params.binary_precision)

[BinaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression)

[bind (sqlalchemy.dialects.postgresql.DOMAIN.create parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.create.params.bind)

[(sqlalchemy.dialects.postgresql.DOMAIN.drop parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.drop.params.bind)

[(sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.bind) | [bind parameter](https://docs.sqlalchemy.org/en/20/glossary.html#term-bind-parameter)

[bind parameters](https://docs.sqlalchemy.org/en/20/glossary.html#term-bind-parameters)

[bind\_arguments (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments)

[(sqlalchemy.orm.ORMExecuteState.invoke\_statement parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.bind_arguments)

[(sqlalchemy.orm.scoped\_session.connection parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.connection.params.bind_arguments)

[bind\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression)

[bind\_mapper (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper)

[bind\_mapper() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper)

[bind\_names (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.bind_names)

[bind\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor)

[(sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.bind_processor)

[bind\_table() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_table)

[bind\_typing (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.bind_typing)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.bind_typing)

[bindname\_escape\_characters (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.bindname_escape_characters)

[bindparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bindparam)

[BindParameter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter)

[bindparams (sqlalchemy.sql.expression.CacheKey attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey.bindparams)

[bindparams() (sqlalchemy.sql.expression.TextClause method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.bindparams)

[binds (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.binds)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.binds)

[bindtemplate (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.bindtemplate)

[BindTyping (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.BindTyping)

[BIT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BIT)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BIT)

[bitwise\_and() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_and)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_and)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_and)

[bitwise\_lshift() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_lshift)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_lshift)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_lshift)

[bitwise\_not() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bitwise_not)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_not)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_not)

[bitwise\_or() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_or)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_or)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_or)

[bitwise\_rshift() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_rshift)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_rshift)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_rshift)

[bitwise\_xor() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bitwise_xor)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bitwise_xor)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bitwise_xor)

[BLANK\_SCHEMA (sqlalchemy.schema.SchemaConst attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.SchemaConst.BLANK_SCHEMA)

[BLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.BLOB)

[bool\_op() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.bool_op)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bool_op)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.bool_op)

[BOOLEAN (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.BOOLEAN)

[Boolean (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Boolean)

[bound parameter](https://docs.sqlalchemy.org/en/20/glossary.html#term-bound-parameter)

[bound parameters](https://docs.sqlalchemy.org/en/20/glossary.html#term-bound-parameters)

[bounds (sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.bounds)

[bulk\_insert\_mappings() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings)

[bulk\_replace() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace)

[bulk\_save\_objects() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects)

[bulk\_update\_mappings() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_update_mappings)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings)

[Bundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle)

[by\_module (sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.by_module)

[BYTEA (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BYTEA) | C - | | | | --- | --- | | [c (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.c)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.c)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.c)

[cache (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.cache)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.cache)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.cache)

[cache\_key (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.cache_key)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.cache_key)

[cache\_ok (sqlalchemy.types.ExternalType attribute)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok)

[(sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.cache_ok)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok)

[CacheKey (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey)

[callable\_ (sqlalchemy.schema.CheckConstraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.ddl_if.params.callable_)

[(sqlalchemy.schema.ColumnCollectionConstraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.ddl_if.params.callable_)

[(sqlalchemy.schema.Constraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint.ddl_if.params.callable_)

[callables (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.callables)

[callproc() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.callproc)

[candidate key](https://docs.sqlalchemy.org/en/20/glossary.html#term-candidate-key)

[cartesian product](https://docs.sqlalchemy.org/en/20/glossary.html#term-cartesian-product)

[cascade](https://docs.sqlalchemy.org/en/20/glossary.html#term-cascade)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.cascade)

[cascade\_backrefs (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade_backrefs)

[cascade\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.cascade_iterator)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.cascade_iterator)

[cascade\_scalar\_deletes (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.cascade_scalar_deletes)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.cascade_scalar_deletes)

[CascadeOptions (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CascadeOptions)

[cascading (sqlalchemy.orm.declared\_attr attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declared_attr.cascading)

[Case (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Case)

[case() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.case)

[Cast (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Cast)

[cast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.cast)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.cast)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.cast)

[cast\_nulls (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.cast_nulls)

[chain() (sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain)

[chained\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.chained_exception)

[changed() (sqlalchemy.ext.mutable.Mutable method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.changed)

[(sqlalchemy.ext.mutable.MutableComposite method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite.changed)

[CHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.CHAR)

[char\_length (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.char_length)

[charset (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.charset)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.charset)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.charset)

[check (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.check)

[check constraint](https://docs.sqlalchemy.org/en/20/glossary.html#term-check-constraint)

[check\_modified() (sqlalchemy.orm.IdentityMap method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.IdentityMap.check_modified)

[CheckConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint)

[checkfirst (sqlalchemy.dialects.postgresql.DOMAIN.create parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.create.params.checkfirst)

[(sqlalchemy.dialects.postgresql.DOMAIN.drop parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.drop.params.checkfirst)

[(sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.checkfirst)

[checkin() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.checkin)

[checkout() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.checkout)

[ChunkedIteratorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult)

[CIDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.CIDR)

[CircularDependencyError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.CircularDependencyError)

[CITEXT (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.CITEXT)

[class\_ (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.class_)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.class_)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_)

[class\_attribute (sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.class_attribute)

[class\_instrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstrumentationEvents.class_instrument)

[class\_manager (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_manager)

[class\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.class_mapper)

[class\_registry (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.class_registry)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.params.class_registry)

[class\_uninstrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstrumentationEvents.class_uninstrument)

[classes (sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.classes)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.classes)

[ClassManager (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager)

[classname\_for\_table (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.classname_for_table)

[classname\_for\_table() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table)

[clause (sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.clause)

[(sqlalchemy.orm.scoped\_session.get\_bind parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.get_bind.params.clause)

[(sqlalchemy.orm.Session.get\_bind parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.get_bind.params.clause)

[ClauseElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement)

[clauseelement (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.clauseelement)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.clauseelement)

[ClauseList (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ClauseList)

[clauses (sqlalchemy.dialects.postgresql.array parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array.params.clauses)

[(sqlalchemy.sql.functions.FunctionElement attribute)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses)

[clear() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.clear)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.clear)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.clear)

[clear\_cache() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.clear_cache)

[clear\_compiled\_cache() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.clear_compiled_cache)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.clear_compiled_cache)

[clear\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.clear_mappers)

[CLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.CLOB)

[cloned\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse)

[close (sqlalchemy.engine.Engine.dispose parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.dispose.params.close)

[(sqlalchemy.ext.asyncio.AsyncEngine.dispose parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.dispose.params.close)

[close() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.close)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.close)

[(sqlalchemy.engine.FilterResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.FilterResult.close)

[close\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.close_all)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.close_all)

[(sqlalchemy.orm.scoped\_session class method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.close_all)

[close\_all\_sessions() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.close_all_sessions)

[(in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.close_all_sessions)

[close\_detached() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.close_detached)

[close\_resets\_only (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.close_resets_only)

[closed (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.closed)

[(sqlalchemy.engine.FilterResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.FilterResult.closed)

[(sqlalchemy.engine.IteratorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.IteratorResult.closed)

[cls (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.cls)

[(sqlalchemy.orm.registry.generate\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base.params.cls)

[(sqlalchemy.orm.registry.map\_declaratively parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.map_declaratively.params.cls)

[coalesce (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.coalesce)

[coerce() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce)

[(sqlalchemy.ext.mutable.MutableBase class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce)

[(sqlalchemy.ext.mutable.MutableDict class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.coerce)

[coerce\_compared\_value() (sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.coerce_compared_value)

[(sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value)

[coerce\_to\_is\_types (sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types)

[collate() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.collate)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.collate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.collate)

[collation (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.collation)

[(sqlalchemy.dialects.mssql.NCHAR parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.NCHAR.params.collation)

[(sqlalchemy.dialects.mssql.NTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.NTEXT.params.collation)

[collection (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection)

[(sqlalchemy.orm.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection.params.collection)

[collection\_adapter (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection_adapter)

[(sqlalchemy.orm.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection.params.collection_adapter)

[collection\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.collection_class)

[(sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.collection_class)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.collection_class)

[CollectionAdapter (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.CollectionAdapter)

[cols (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.cols)

[(sqlalchemy.sql.expression.UpdateBase.return\_defaults parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase.return_defaults.params.cols)

[colspecs (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.colspecs)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.colspecs)

[coltype (sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.coltype)

[(sqlalchemy.types.Boolean.result\_processor parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Boolean.result_processor.params.coltype)

[(sqlalchemy.types.Float.result\_processor parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Float.result_processor.params.coltype)

[Column (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column)

[column (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.column)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.column)

[(sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.column)

[column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.column)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.column)

[column\_attrs (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.column_attrs)

[column\_descriptions (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.column_descriptions)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.column_descriptions)

[column\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression)

[column\_keyed\_dict() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict)

[column\_keys (sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.compile.params.column_keys)

[(sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.column_keys)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.compile.params.column_keys)

[column\_mapped\_collection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.column_mapped_collection)

[column\_names (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.column_names)

[(sqlalchemy.engine.interfaces.ReflectedUniqueConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedUniqueConstraint.column_names)

[column\_prefix (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.column_prefix)

[column\_property() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property)

[column\_reflect() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.column_reflect)

[column\_sorting (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.column_sorting)

[column\_valued() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued)

[ColumnAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance)

[ColumnClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnClause)

[ColumnCollection (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection)

[ColumnCollectionConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint)

[ColumnCollectionMixin (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionMixin)

[ColumnDefault (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.ColumnDefault)

[ColumnElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement)

[ColumnExpressionArgument (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnExpressionArgument)

[ColumnOperators (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators)

[ColumnProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty)

[ColumnProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator)

[columns (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.columns)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.columns)

[(sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.columns)

[columns clause](https://docs.sqlalchemy.org/en/20/glossary.html#term-columns-clause)

[columns() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.columns)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.columns)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.columns)

[columns\_clause\_froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.columns_clause_froms)

[columns\_to\_assign (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.columns_to_assign)

[(sqlalchemy.orm.CompositeProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.columns_to_assign)

[comment (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.comment)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.comment)

[(sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint.params.comment)

[commit() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit)

[(sqlalchemy.engine.interfaces.DBAPIConnection method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection.commit)

[(sqlalchemy.engine.NestedTransaction method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.NestedTransaction.commit)

[commit\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.commit_twophase)

[common\_parent() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.common_parent)

[Comparator (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.Comparator)

[comparator (sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.comparator)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.comparator)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.params.comparator)

[comparator() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.comparator)

[comparator\_factory (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSON attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSONB attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.comparator_factory) | [compare (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.compare)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.compare)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.compare)

[compare() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.compare)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.compare)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare)

[compare\_values() (sqlalchemy.types.PickleType method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.compare_values)

[(sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values)

[compilation\_bindtemplate (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.compilation_bindtemplate)

[compile() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.compile)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.compile)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile)

[compile\_kwargs (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.params.compile_kwargs)

[(sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.compile.params.compile_kwargs)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.compile.params.compile_kwargs)

[compile\_state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.compile_state)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.compile_state)

[Compiled (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled)

[compiled (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.compiled)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.compiled)

[compiled\_cache (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.compiled_cache)

[CompileError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.CompileError)

[compiles() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/20/core/compiler.html#sqlalchemy.ext.compiler.compiles)

[Composite (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Composite)

[composite primary key](https://docs.sqlalchemy.org/en/20/glossary.html#term-composite-primary-key)

[composite() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite)

[CompositeProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty)

[CompositeProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.Comparator)

[CompositeProperty.CompositeBundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle)

[composites (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.composites)

[CompoundSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect)

[Computed (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Computed)

[computed (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.computed)

[concat (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.concat)

[concat() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.concat)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.concat)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.concat)

[Concatenable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Concatenable)

[Concatenable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Concatenable.Comparator)

[concrete (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.concrete)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.concrete)

[ConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.ConcreteBase)

[ConcurrentModificationError (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError)

[configuration (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine_from_config.params.configuration)

[configure() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.configure)

[(sqlalchemy.ext.asyncio.async\_sessionmaker method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_sessionmaker.configure)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.configure)

[configure\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.configure_mappers)

[configured (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.configured)

[confirm\_deleted\_rows (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.confirm_deleted_rows)

[conn (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.conn)

[connect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.connect)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.connect)

[connect\_args (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.connect_args)

[Connection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection)

[connection (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.connection)

[connection() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.connection)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.connection)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.connection)

[connection\_callable() (sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable)

[connection\_proxy (sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_proxy)

[connection\_record (sqlalchemy.events.PoolEvents.checkin parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.checkin.params.connection_record)

[(sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_record)

[(sqlalchemy.events.PoolEvents.close parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.close.params.connection_record)

[ConnectionEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents)

[ConnectionPoolEntry (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry)

[consistency](https://docs.sqlalchemy.org/en/20/glossary.html#term-consistency)

[constrained](https://docs.sqlalchemy.org/en/20/glossary.html#term-constrained)

[constrained\_columns (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.constrained_columns)

[(sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint.constrained_columns)

[constraint](https://docs.sqlalchemy.org/en/20/glossary.html#term-constraint)

[Constraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint)

[constraint (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.constraint)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.constraint)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.constraint)

[constraint\_name (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.constraint_name)

[ConstraintColumnNotFoundError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ConstraintColumnNotFoundError)

[constraints](https://docs.sqlalchemy.org/en/20/glossary.html#term-constraints)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.constraints)

[construct\_arguments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.construct_arguments)

[construct\_expanded\_state() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.construct_expanded_state)

[construct\_params() (sqlalchemy.engine.Compiled method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.construct_params)

[(sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.construct_params)

[(sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.construct_params)

[constructor (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.constructor)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.params.constructor)

[contained\_by() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.contained_by)

[(sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contained_by)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.contained_by)

[contains() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.contains)

[(sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.contains)

[(sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contains)

[contains\_column() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.contains_column)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.contains_column)

[(sqlalchemy.schema.ForeignKeyConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.contains_column)

[contains\_eager() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.contains_eager)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.contains_eager)

[context (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.release\_savepoint parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.release_savepoint.params.context)

[conv() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.conv)

[convert\_int (sqlalchemy.dialects.mssql.ROWVERSION parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION.params.convert_int)

[(sqlalchemy.dialects.mssql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP.params.convert_int)

[convert\_unicode (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.convert_unicode)

[converter() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.converter)

[copy() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.copy)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.copy)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.copy)

[correlate() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.correlate)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Exists.correlate)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate)

[correlate\_except() (sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Exists.correlate_except)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate_except)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.correlate_except)

[correlated subqueries](https://docs.sqlalchemy.org/en/20/glossary.html#term-correlated-subqueries)

[correlated subquery](https://docs.sqlalchemy.org/en/20/glossary.html#term-correlated-subquery)

[correlates](https://docs.sqlalchemy.org/en/20/glossary.html#term-correlates)

[corresponding\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.corresponding_column)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.corresponding_column)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column)

[COSINE (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.COSINE)

[count (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.count)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row.count)

[(sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.count)

[count() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.count)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.count)

[count\_from (sqlalchemy.ext.orderinglist.ordering\_list parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list.params.count_from)

[count\_from\_0() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_0)

[count\_from\_1() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_1)

[count\_from\_n\_factory() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_n_factory)

[create() (sqlalchemy.dialects.postgresql.DOMAIN method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.create)

[(sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create)

[(sqlalchemy.engine.URL class method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create)

[create\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.create_all)

[create\_async\_engine() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_engine)

[create\_async\_pool\_from\_url() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_pool_from_url)

[create\_connect\_args() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.create_connect_args)

[create\_constraint (sqlalchemy.dialects.mssql.BIT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.params.create_constraint)

[(sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.create_constraint)

[(sqlalchemy.types.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.BOOLEAN.params.create_constraint)

[create\_cursor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.create_cursor)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.create_cursor)

[create\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine)

[create\_mock\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_mock_engine)

[create\_on\_none\_assignment (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.create_on_none_assignment)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.create_on_none_assignment)

[create\_pool\_from\_url() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_pool_from_url)

[create\_row\_processor() (sqlalchemy.orm.Bundle method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.create_row_processor)

[(sqlalchemy.orm.CompositeProperty.CompositeBundle method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle.create_row_processor)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.create_row_processor)

[create\_type (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.create_type)

[(sqlalchemy.dialects.postgresql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.params.create_type)

[create\_xid() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_xid)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.create_xid)

[CreateColumn (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateColumn)

[CreateEnginePlugin (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin)

[createfunc (sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)
, [\[4\]](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)

[CreateIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateIndex)

[CreateSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateSchema)

[CreateSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateSequence)

[CreateTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateTable)

[creator (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.creator)

[(sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.creator)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.creator)

[criterion (sqlalchemy.orm.PropComparator.any parameter)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.any.params.criterion)

[(sqlalchemy.orm.PropComparator.has parameter)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.has.params.criterion)

[CRUD](https://docs.sqlalchemy.org/en/20/glossary.html#term-CRUD)

[crud](https://docs.sqlalchemy.org/en/20/glossary.html#term-crud)

[CTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CTE)

[cte() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.cte)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.cte)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte)

[cte\_follows\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.cte_follows_insert)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.cte_follows_insert)

[cube (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.cube)

[cume\_dist (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.cume_dist)

[current\_date (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_date)

[current\_executable (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.current_executable)

[current\_parameters (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.current_parameters)

[current\_time (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_time)

[current\_timestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_timestamp)

[current\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_user)

[cursor](https://docs.sqlalchemy.org/en/20/glossary.html#term-cursor)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.cursor)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.cursor)

[cursor() (sqlalchemy.engine.interfaces.DBAPIConnection method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection.cursor)

[CursorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult)

[custom\_op (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.custom_op)

[cycle (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.cycle)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.cycle)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.cycle)

[cyclomatic complexity](https://docs.sqlalchemy.org/en/20/glossary.html#term-cyclomatic-complexity) | D - | | | | --- | --- | | [data marshalling](https://docs.sqlalchemy.org/en/20/glossary.html#term-data-marshalling)

[data() (sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Values.data)

[data\_type (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.data_type)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.data_type)

[database (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.database)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.database)

[database metadata](https://docs.sqlalchemy.org/en/20/glossary.html#term-database-metadata)

[DatabaseError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DatabaseError)

[dataclass\_metadata (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.dataclass_metadata)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.dataclass_metadata)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.dataclass_metadata)

[DataError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DataError)

[datatype (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.datatype)

[DATE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.DATE)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DATE)

[Date (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Date)

[DATEMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DATEMULTIRANGE)

[DATERANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DATERANGE)

[DATETIME (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DATETIME)

[DateTime (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DateTime)

[DATETIME2 (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIME2)

[DATETIMEOFFSET (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIMEOFFSET)

[day\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.day_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.params.day_precision)

[DBAPI](https://docs.sqlalchemy.org/en/20/glossary.html#term-DBAPI)

[dbapi (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.dbapi)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.dbapi)

[dbapi\_connection (sqlalchemy.engine.default.DefaultDialect.detect\_autocommit\_setting parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.detect_autocommit_setting.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit.params.dbapi_connection)

[dbapi\_exception\_translation\_map (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.dbapi_exception_translation_map)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.dbapi_exception_translation_map)

[DBAPIConnection (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection)

[DBAPICursor (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor)

[DBAPIError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DBAPIError)

[DBAPIType (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIType)

[DDL](https://docs.sqlalchemy.org/en/20/glossary.html#term-DDL)

[(class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DDL)

[ddl\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.ddl_compiler)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.ddl_compiler)

[ddl\_if() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.ddl_if)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.ddl_if)

[(sqlalchemy.schema.Constraint method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Constraint.ddl_if)

[DDLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler)

[DDLEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents)

[DECIMAL (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DECIMAL)

[decimal\_return\_scale (sqlalchemy.dialects.oracle.BINARY\_DOUBLE parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_DOUBLE.params.decimal_return_scale)

[(sqlalchemy.dialects.oracle.BINARY\_FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.BINARY_FLOAT.params.decimal_return_scale)

[(sqlalchemy.dialects.oracle.FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT.params.decimal_return_scale)

[declarative](https://docs.sqlalchemy.org/en/20/glossary.html#term-declarative)

[declarative\_base (sqlalchemy.ext.automap.automap\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base.params.declarative_base)

[declarative\_base() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base)

[declarative\_mixin() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_mixin)

[declarative\_scan() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.declarative_scan)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.declarative_scan)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.declarative_scan)

[DeclarativeBase (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase)

[DeclarativeBaseNoMeta (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBaseNoMeta)

[declared\_attr (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declared_attr)

[default (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.default)

[(sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.default)

[(sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.default)

[default\_expr (sqlalchemy.orm.query\_expression parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.query_expression.params.default_expr)

[default\_factory (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.default_factory)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.default_factory)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.default_factory)

[default\_from() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.default_from)

[default\_isolation\_level (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.default_isolation_level)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_isolation_level)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.default_isolation_level)

[default\_metavalue\_token (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_metavalue_token)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.default_metavalue_token)

[default\_schema\_name (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_schema_name)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.default_schema_name)

[(sqlalchemy.engine.reflection.Inspector attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.default_schema_name)

[default\_sequence\_base (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.default_sequence_base)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.default_sequence_base)

[DefaultClause (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.DefaultClause)

[DefaultDialect (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect)

[DefaultExecutionContext (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext)

[DefaultGenerator (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.DefaultGenerator)

[defaultload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.defaultload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.defaultload)

[defer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.defer)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.defer)

[deferrable (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.deferrable)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.deferrable)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.deferrable)

[deferred (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.deferred)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.deferred)

[(sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.deferred)

[deferred() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.deferred)

[deferred\_group (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.deferred_group)

[deferred\_raiseload (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.deferred_raiseload)

[deferred\_scalar\_loader (sqlalchemy.orm.ClassManager attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager.deferred_scalar_loader)

[DeferredReflection (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection)

[define\_constraint\_remote\_table() (sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.define_constraint_remote_table)

[defined() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.defined)

[del\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute)

[Delete (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete)

[delete() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.delete)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.delete)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.delete)

[delete\_args (sqlalchemy.orm.Query.delete parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.delete.params.delete_args)

[delete\_context (sqlalchemy.orm.QueryEvents.before\_compile\_delete parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete.params.delete_context)

[(sqlalchemy.orm.SessionEvents.after\_bulk\_delete parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_delete.params.delete_context)

[delete\_executemany\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.delete_executemany_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.delete_executemany_returning)

[delete\_extra\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.delete_extra_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.delete_extra_from_clause)

[delete\_limit\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.delete_limit_clause)

[delete\_path() (sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.delete_path)

[delete\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.delete_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.delete_returning)

[delete\_returning\_multifrom (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.delete_returning_multifrom)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.delete_returning_multifrom)

[deleted](https://docs.sqlalchemy.org/en/20/glossary.html#term-deleted)

[(sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.deleted)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.deleted)

[deleted\_to\_detached() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_detached)

[deleted\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_persistent)

[deleter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.deleter)

[denormalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.denormalize_name)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.denormalize_name)

[DENSE (sqlalchemy.dialects.oracle.VectorStorageType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageType.DENSE)

[dense\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.dense_rank)

[deprecated\_since (sqlalchemy.exc.Base20DeprecationWarning attribute)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning.deprecated_since)

[(sqlalchemy.exc.SADeprecationWarning attribute)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning.deprecated_since)

[(sqlalchemy.exc.SAPendingDeprecationWarning attribute)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning.deprecated_since)

[deregister() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/20/core/compiler.html#sqlalchemy.ext.compiler.deregister)

[desc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.desc)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.desc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.desc)

[description (sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.description)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.description)

[(sqlalchemy.sql.expression.AliasedReturnsRows attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.description)

[descriptor](https://docs.sqlalchemy.org/en/20/glossary.html#term-descriptor)

[(sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.descriptor)

[descriptors](https://docs.sqlalchemy.org/en/20/glossary.html#term-descriptors)

[Deserializer (class in sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Deserializer)

[detach() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.detach)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.detach)

[(sqlalchemy.pool.PoolProxiedConnection method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.detach)

[detached](https://docs.sqlalchemy.org/en/20/glossary.html#term-detached)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.detached)

[detached\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.detached_to_persistent)

[DetachedInstanceError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError)

[detect\_autocommit\_setting() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.detect_autocommit_setting)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.detect_autocommit_setting)

[dialect](https://docs.sqlalchemy.org/en/20/glossary.html#term-dialect)

[Dialect (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect)

[dialect (sqlalchemy.dialects.postgresql.HSTORE.bind\_processor parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor.params.dialect)

[(sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.dialect)

[(sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.params.dialect) | [dialect\_impl() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl)

[dialect\_kwargs (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.dialect_kwargs)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.dialect_kwargs)

[(sqlalchemy.schema.ColumnCollectionConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.dialect_kwargs)

[dialect\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.dialect_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.dialect_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.dialect_name)

[dialect\_options (sqlalchemy.engine.interfaces.ReflectedCheckConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedCheckConstraint.dialect_options)

[(sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.dialect_options)

[(sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.dialect_options)

[DialectEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents)

[DialectKWArgs (class in sqlalchemy.sql.base)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs)

[dict (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.dict)

[dict\_ (sqlalchemy.orm.AttributeEvents.init\_scalar parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar.params.dict_)

[dict\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter)

[difference() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.difference)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.difference)

[difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.difference_update)

[difference\_update\_query() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.difference_update_query)

[dim (sqlalchemy.dialects.oracle.VECTOR parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR.params.dim)

[dimensions (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.dimensions)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.params.dimensions)

[direction (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.direction)

[directive (sqlalchemy.orm.declared\_attr attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declared_attr.directive)

[dirty (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.dirty)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.dirty)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.dirty)

[discard() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.discard)

[DisconnectionError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DisconnectionError)

[discriminator](https://docs.sqlalchemy.org/en/20/glossary.html#term-discriminator)

[dispatch (sqlalchemy.event.base.Events attribute)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.event.base.Events.dispatch)

[(sqlalchemy.events.ConnectionEvents attribute)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.dispatch)

[(sqlalchemy.events.DDLEvents attribute)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.dispatch)

[display\_width (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.display_width)

[(sqlalchemy.dialects.mysql.INTEGER parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER.params.display_width)

[(sqlalchemy.dialects.mysql.MEDIUMINT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT.params.display_width)

[dispose() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.dispose)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.dispose)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.dispose)

[dispose\_collection() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.dispose_collection)

[distance (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.distance)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.distance)

[distinct() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.distinct)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.distinct)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.distinct)

[distinct\_target\_key (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.distinct_target_key)

[div\_is\_floordiv (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.div_is_floordiv)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.div_is_floordiv)

[DML](https://docs.sqlalchemy.org/en/20/glossary.html#term-DML)

[dml\_compile\_state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.dml_compile_state)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.dml_compile_state)

[do\_begin() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_begin)

[do\_begin\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_begin_twophase)

[do\_close() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_close)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_close)

[do\_commit() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_commit)

[do\_commit\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase)

[do\_connect() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents.do_connect)

[do\_execute() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_execute)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents.do_execute)

[do\_execute\_no\_params() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute_no_params)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_execute_no_params)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents.do_execute_no_params)

[do\_executemany() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_executemany)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_executemany)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents.do_executemany)

[do\_init() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.do_init)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.do_init)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.do_init)

[do\_orm\_execute() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute)

[do\_ping() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_ping)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_ping)

[do\_prepare\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_prepare_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_prepare_twophase)

[do\_recover\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_recover_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_recover_twophase)

[do\_release\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_release_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_release_savepoint)

[do\_rollback() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_rollback)

[do\_rollback\_to\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_to_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_rollback_to_savepoint)

[do\_rollback\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_rollback_twophase)

[do\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_savepoint)

[do\_set\_input\_sizes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_set_input_sizes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_set_input_sizes)

[do\_setinputsizes() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents.do_setinputsizes)

[do\_terminate() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_terminate)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_terminate)

[doc (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.doc)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.doc)

[(sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.doc)

[DOMAIN (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN)

[domain model](https://docs.sqlalchemy.org/en/20/glossary.html#term-domain-model)

[DontWrapMixin (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DontWrapMixin)

[DOT (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.DOT)

[DOUBLE (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DOUBLE)

[Double (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Double)

[DOUBLE\_PRECISION (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.DOUBLE_PRECISION)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DOUBLE_PRECISION)

[dp\_annotations\_key (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key)

[dp\_anon\_name (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name)

[dp\_boolean (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean)

[dp\_clauseelement (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement)

[dp\_clauseelement\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list)

[dp\_clauseelement\_tuple (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple)

[dp\_clauseelement\_tuples (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples)

[dp\_dialect\_options (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options)

[dp\_dml\_multi\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values)

[dp\_dml\_ordered\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values)

[dp\_dml\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values)

[dp\_fromclause\_canonical\_column\_collection (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection)

[dp\_fromclause\_ordered\_set (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set)

[dp\_has\_cache\_key (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key)

[dp\_has\_cache\_key\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list)

[dp\_has\_cache\_key\_tuples (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_tuples)

[dp\_ignore (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_ignore)

[dp\_inspectable (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable)

[dp\_inspectable\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable_list)

[dp\_multi (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_multi)

[dp\_multi\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_multi_list)

[dp\_named\_ddl\_element (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element)

[dp\_operator (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator)

[dp\_plain\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict)

[dp\_plain\_obj (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj)

[dp\_prefix\_sequence (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence)

[dp\_propagate\_attrs (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs)

[dp\_statement\_hint\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list)

[dp\_string (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string)

[dp\_string\_clauseelement\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict)

[dp\_string\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list)

[dp\_string\_multi\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict)

[dp\_table\_hint\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list)

[dp\_type (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type)

[dp\_unknown\_structure (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure)

[DQL](https://docs.sqlalchemy.org/en/20/glossary.html#term-DQL)

[driver (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.driver)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.driver)

[(sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.driver)

[driver\_connection (sqlalchemy.engine.AdaptedConnection attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.AdaptedConnection.driver_connection)

[(sqlalchemy.pool.ConnectionPoolEntry attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.driver_connection)

[(sqlalchemy.pool.ManagesConnection attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ManagesConnection.driver_connection)

[drivername (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.drivername)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.drivername)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set.params.drivername)

[drop() (sqlalchemy.dialects.postgresql.DOMAIN method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.drop)

[(sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop)

[(sqlalchemy.schema.Index method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Index.drop)

[drop\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.drop_all)

[DropConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropConstraint)

[DropIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropIndex)

[DropSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropSchema)

[DropSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropSequence)

[DropTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropTable)

[dumps() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.dumps)

[DuplicateColumnError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DuplicateColumnError)

[duplicates\_constraint (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.duplicates_constraint)

[duplicates\_index (sqlalchemy.engine.interfaces.ReflectedUniqueConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedUniqueConstraint.duplicates_index)

[durability](https://docs.sqlalchemy.org/en/20/glossary.html#term-durability)

[dynamic\_loader() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.dynamic_loader)

[DynamicMapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.DynamicMapped) | E - | | | | --- | --- | | [e (sqlalchemy.pool.ConnectionPoolEntry.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.invalidate.params.e)

[(sqlalchemy.pool.ManagesConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ManagesConnection.invalidate.params.e)

[(sqlalchemy.pool.PoolProxiedConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.invalidate.params.e)

[eager load](https://docs.sqlalchemy.org/en/20/glossary.html#term-eager-load)

[eager loaded](https://docs.sqlalchemy.org/en/20/glossary.html#term-eager-loaded)

[eager loading](https://docs.sqlalchemy.org/en/20/glossary.html#term-eager-loading)

[eager loads](https://docs.sqlalchemy.org/en/20/glossary.html#term-eager-loads)

[eager\_defaults (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.eager_defaults)

[eagerly load](https://docs.sqlalchemy.org/en/20/glossary.html#term-eagerly-load)

[echo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.echo)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.echo)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.params.echo)

[echo\_pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.echo_pool)

[effective\_returning (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.effective_returning)

[effective\_value (sqlalchemy.sql.expression.BindParameter attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.effective_value)

[element (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.element)

[(sqlalchemy.schema.AddConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.AddConstraint.params.element)

[(sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateIndex.params.element)

[elements (sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.elements)

[else\_ (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.case.params.else_)

[empty (sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.empty)

[empty() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.empty)

[empty\_in\_strategy (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.empty_in_strategy)

[enable\_assertions() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.enable_assertions)

[enable\_baked\_queries (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.enable_baked_queries)

[enable\_eagerloads() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.enable_eagerloads)

[enable\_from\_linting (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.enable_from_linting)

[enable\_relationship\_loading() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading)

[enable\_tracking (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.enable_tracking)

[endswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.endswith)

[Engine (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine)

[engine (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.engine)

[(sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.engine)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.engine)

[engine\_config\_types (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.engine_config_types)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.engine_config_types)

[engine\_connect() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.engine_connect)

[engine\_created() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.engine_created)

[(sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.engine_created)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.engine_created)

[engine\_disposed() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.engine_disposed)

[engine\_from\_config() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine_from_config)

[ensure\_kwarg (sqlalchemy.sql.compiler.GenericTypeCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler.ensure_kwarg)

[(sqlalchemy.types.UserDefinedType attribute)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.UserDefinedType.ensure_kwarg)

[entities (sqlalchemy.orm.Query parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.params.entities)

[entity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.entity)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.entity)

[entity\_description (sqlalchemy.sql.expression.UpdateBase attribute)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase.entity_description)

[entity\_namespace (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.entity_namespace)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.entity_namespace)

[(sqlalchemy.sql.expression.FromClause attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause.entity_namespace)

[entity\_or\_base (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.entity_or_base)

[ENUM (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM)

[Enum (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum)

[enums (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.enums)

[escape (sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains.params.escape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith.params.escape)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains.params.escape)

[escaped\_bind\_names (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.escaped_bind_names)

[EUCLIDEAN (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.EUCLIDEAN)

[evaluates\_none() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none)

[Events (class in sqlalchemy.event.base)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.event.base.Events)

[events (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.params.events)

examples.adjacency\_list

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.adjacency_list)

examples.association

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.association)

examples.asyncio

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.asyncio)

examples.custom\_attributes

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.custom_attributes)

examples.dogpile\_caching

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dogpile_caching)

examples.dynamic\_dict

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.dynamic_dict)

examples.extending\_query

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.extending_query)

examples.generic\_associations

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.generic_associations)

examples.graphs

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.graphs)

examples.inheritance

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.inheritance)

examples.materialized\_paths

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.materialized_paths)

examples.nested\_sets

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.nested_sets) | examples.performance

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.performance)

examples.sharding

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.sharding)

examples.space\_invaders

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.space_invaders)

examples.versioned\_history

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_history)

examples.versioned\_rows

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.versioned_rows)

examples.vertical

[module](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.vertical)

[except\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.except_)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.except_)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.except_)

[except\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.except_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.except_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.except_all)

[exception (sqlalchemy.engine.Connection.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.invalidate.params.exception)

[(sqlalchemy.events.PoolEvents.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.invalidate.params.exception)

[(sqlalchemy.events.PoolEvents.soft\_invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate.params.exception)

[ExceptionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext)

[exclude\_properties (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.exclude_properties)

[exclude\_set\_input\_sizes (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.exclude_set_input_sizes)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.exclude_set_input_sizes)

[ExcludeConstraint (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint)

[excluded (sqlalchemy.dialects.postgresql.Insert attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.excluded)

[(sqlalchemy.dialects.sqlite.Insert attribute)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.excluded)

[exec\_driver\_sql() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.exec_driver_sql)

[Executable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Executable)

[ExecutableDDLElement (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.ExecutableDDLElement)

[execute() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.execute)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.execute)

[execute\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.execute_chooser)

[execute\_if() (sqlalchemy.schema.ExecutableDDLElement method)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.ExecutableDDLElement.execute_if)

[execute\_sequence\_format (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execute_sequence_format)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.execute_sequence_format)

[execute\_style (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.execute_style)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.execute_style)

[executemany](https://docs.sqlalchemy.org/en/20/glossary.html#term-executemany)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.executemany)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.executemany)

[executemany() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.executemany)

[execution\_context (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.execution_context)

[execution\_ctx\_cls (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execution_ctx_cls)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.execution_ctx_cls)

[execution\_options (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.execution_options)

[(sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.execution_options)

[(sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute.params.execution_options)

[execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.execution_options)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.execution_options)

[ExecutionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext)

[executor (sqlalchemy.create\_mock\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_mock_engine.params.executor)

[existing\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace.params.existing_adapter)

[Exists (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Exists)

[exists() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.exists)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.exists)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.exists)

[ExpandedState (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState)

[expanding (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.expanding)

[expire](https://docs.sqlalchemy.org/en/20/glossary.html#term-expire)

[expire() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire)

[(sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.expire)

[expire\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.expire_all)

[expire\_on\_commit (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.expire_on_commit)

[(sqlalchemy.orm.sessionmaker parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.expire_on_commit)

[expire\_on\_flush (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.expire_on_flush)

[expired](https://docs.sqlalchemy.org/en/20/glossary.html#term-expired)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.expired)

[expired\_attribute\_loader (sqlalchemy.orm.ClassManager attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager.expired_attribute_loader)

[expired\_attributes (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.expired_attributes)

[expires](https://docs.sqlalchemy.org/en/20/glossary.html#term-expires)

[Expiring](https://docs.sqlalchemy.org/en/20/glossary.html#term-Expiring)

[expiring](https://docs.sqlalchemy.org/en/20/glossary.html#term-expiring)

[exported\_columns (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.exported_columns)

[(sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.exported_columns)

[(sqlalchemy.sql.expression.FromClause attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause.exported_columns)

[expr (sqlalchemy.orm.with\_expression parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.with_expression.params.expr)

[(sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.between.params.expr)

[(sqlalchemy.sql.expression.extract parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.extract.params.expr)

[expression (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.expression)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute.expression)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.expression)

[expression() (sqlalchemy.ext.hybrid.hybrid\_method method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.expression)

[(sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.expression)

[expressions (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.expressions)

[(sqlalchemy.orm.ColumnProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.expressions)

[expunge() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expunge)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expunge)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.expunge)

[expunge\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expunge_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expunge_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.expunge_all)

[extend() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.extend)

[(sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.extend)

[extend\_existing (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.extend_existing)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.extend_existing)

[ExtendedInstrumentationRegistry (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry)

[extension\_type (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.extension_type)

[ExternalTraversal (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal)

[ExternalType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.ExternalType)

[extra\_dependencies (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.sort_tables.params.extra_dependencies)

[(sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.extra_dependencies)

[Extract (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Extract)

[extract() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.extract) | F - | | | | --- | --- | | [facade](https://docs.sqlalchemy.org/en/20/glossary.html#term-facade)

[false() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.false)

[False\_ (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.False_)

[favor\_returning\_over\_lastrowid (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.favor_returning_over_lastrowid)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.favor_returning_over_lastrowid)

[fetch() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.fetch)

[fetchall() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.fetchall)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.fetchall)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.fetchall)

[fetchall\_for\_returning() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.fetchall_for_returning)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.fetchall_for_returning)

[FetchedValue (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.FetchedValue)

[fetchmany() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.fetchmany)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.fetchmany)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.fetchmany)

[fetchone() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.fetchone)

[(sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.fetchone)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.fetchone)

[field (sqlalchemy.sql.expression.extract parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.extract.params.field)

[fields (sqlalchemy.dialects.postgresql.INTERVAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL.params.fields)

[filestream (sqlalchemy.dialects.mssql.VARBINARY parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.VARBINARY.params.filestream)

[filter() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.filter)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.filter)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.filter)

[filter\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.filter_by)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.filter_by)

[filter\_fn (sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.filter_fn)

[filter\_names (sqlalchemy.engine.reflection.Inspector.get\_multi\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints.params.filter_names)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns.params.filter_names)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys.params.filter_names)

[filter\_states\_for\_dep() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction.filter_states_for_dep)

[FilterResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.FilterResult)

[finalize\_flush\_changes() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction.finalize_flush_changes)

[fire\_sequence() (sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.fire_sequence)

[first() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.first)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.first)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.first)

[first\_connect() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.first_connect)

[first\_init() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.first_init)

[flag\_dirty() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty)

[flag\_modified() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified)

[flags (sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_match.params.flags)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace.params.flags)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match.params.flags) | [flat (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.aliased.params.flat)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.flat)

[(sqlalchemy.sql.expression.alias parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.alias.params.flat)

[FLOAT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT)

[(class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.FLOAT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.FLOAT)

[Float (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Float)

[FLOAT32 (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.FLOAT32)

[FLOAT64 (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.FLOAT64)

[flush](https://docs.sqlalchemy.org/en/20/glossary.html#term-flush)

[flush() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.flush)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.flush)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.flush)

[flush\_context (sqlalchemy.orm.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush.params.flush_context)

[(sqlalchemy.orm.SessionEvents.after\_flush parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush.params.flush_context)

[(sqlalchemy.orm.SessionEvents.after\_flush\_postexec parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec.params.flush_context)

[flushed](https://docs.sqlalchemy.org/en/20/glossary.html#term-flushed)

[FlushError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.FlushError)

[flushing](https://docs.sqlalchemy.org/en/20/glossary.html#term-flushing)

[for\_class() (sqlalchemy.ext.associationproxy.AssociationProxy method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class)

[for\_executemany (sqlalchemy.sql.compiler.SQLCompiler parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.params.for_executemany)

[for\_proxy() (sqlalchemy.ext.associationproxy.AssociationProxyInstance class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.for_proxy)

[for\_session() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.for_session)

[for\_update (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.for_update)

[force (sqlalchemy.sql.compiler.IdentifierPreparer.quote parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote.params.force)

[(sqlalchemy.sql.compiler.IdentifierPreparer.quote\_schema parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema.params.force)

[foreign key constraint](https://docs.sqlalchemy.org/en/20/glossary.html#term-foreign-key-constraint)

[foreign() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.foreign)

[foreign\_key\_constraints (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.foreign_key_constraints)

[foreign\_keys (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.foreign_keys)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.foreign_keys)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.foreign_keys)

[ForeignKey (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey)

[ForeignKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint)

[format\_column() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_column)

[format\_label\_name() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_label_name)

[format\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_schema)

[format\_table() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table)

[format\_table\_seq() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table_seq)

[freeze() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.freeze)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.freeze)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.freeze)

[FROM clause](https://docs.sqlalchemy.org/en/20/glossary.html#term-FROM-clause)

[from\_ (sqlalchemy.sql.expression.Select.join\_from parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.join_from.params.from_)

[from\_engine() (sqlalchemy.engine.reflection.Inspector class method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.from_engine)

[from\_entity (sqlalchemy.orm.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_parent.params.from_entity)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_parent.params.from_entity)

[from\_select() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.from_select)

[from\_statement() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.from_statement)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.from_statement)

[FromClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause)

[froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.froms)

[FrozenResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.FrozenResult)

[fsp (sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP.params.fsp)

[full (sqlalchemy.ext.baked.BakedQuery.spoil parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil.params.full)

[(sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.join.params.full)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.join.params.full)

[full\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.full_returning)

[func (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.func)

[funcfilter() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.funcfilter)

[Function (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.Function)

[FunctionElement (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement)

[FunctionFilter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter)

[future (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.future)

[(sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.future) | G - | | | | --- | --- | | [generate\_base() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base)

[generate\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.generate_relationship)

[generate\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship)

[generative](https://docs.sqlalchemy.org/en/20/glossary.html#term-generative)

[GenerativeSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect)

[GenericFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.GenericFunction)

[GenericTypeCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler)

[get() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.get)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get)

[get\_async\_dialect\_cls() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_async_dialect_cls)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_async_dialect_cls)

[get\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute)

[get\_attribute\_history() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction.get_attribute_history)

[get\_backend\_name() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.get_backend_name)

[get\_bind() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get_bind)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_bind)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind)

[get\_check\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_check_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_check_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints)

[get\_children() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.get_children)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.get_children)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.get_children)

[get\_columns() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_columns)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_columns)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns)

[get\_current\_parameters() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters)

[get\_dbapi\_type() (sqlalchemy.types.Date method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type)

[(sqlalchemy.types.DateTime method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type)

[(sqlalchemy.types.Integer method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type)

[get\_default\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_default_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_default_isolation_level)

[get\_dialect() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.get_dialect)

[get\_dialect\_cls() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_dialect_cls)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_dialect_cls)

[get\_dialect\_pool\_class() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_dialect_pool_class)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_dialect_pool_class)

[get\_domains() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_domains)

[get\_driver\_connection() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_driver_connection)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_driver_connection)

[get\_driver\_name() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.get_driver_name)

[get\_engine() (sqlalchemy.ext.serializer.Deserializer method)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine)

[get\_enums() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums)

[get\_execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.get_execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.get_execution_options)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.get_execution_options)

[get\_final\_froms() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.get_final_froms)

[get\_foreign\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_foreign_keys)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_foreign_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_foreign_keys)

[get\_foreign\_table\_names() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_foreign_table_names)

[get\_history() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.get_history)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.get_history)

[get\_indexes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_indexes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_indexes)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_indexes)

[get\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict)

[get\_isolation\_level() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.get_isolation_level)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_isolation_level)

[get\_isolation\_level\_values() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_isolation_level_values)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_isolation_level_values)

[get\_label\_style (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.get_label_style)

[get\_label\_style() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.get_label_style)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.get_label_style)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.get_label_style) | [get\_lastrowid() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_lastrowid)

[get\_materialized\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_materialized_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_materialized_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_materialized_view_names)

[get\_multi\_check\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_check_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_check_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints)

[get\_multi\_columns() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_columns)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_columns)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns)

[get\_multi\_foreign\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_foreign_keys)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_foreign_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys)

[get\_multi\_indexes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_indexes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_indexes)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_indexes)

[get\_multi\_pk\_constraint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_pk_constraint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_pk_constraint)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_pk_constraint)

[get\_multi\_table\_comment() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_table_comment)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_table_comment)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_table_comment)

[get\_multi\_table\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_table_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_table_options)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_table_options)

[get\_multi\_unique\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_multi_unique_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_multi_unique_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_unique_constraints)

[get\_nested\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.get_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_nested_transaction)

[get\_one() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get_one)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_one)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.get_one)

[get\_out\_parameter\_values() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_out_parameter_values)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.get_out_parameter_values)

[get\_pk\_constraint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_pk_constraint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_pk_constraint)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_pk_constraint)

[get\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property)

[get\_property\_by\_column() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property_by_column)

[get\_raw\_connection() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_raw_connection)

[get\_referent() (sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.get_referent)

[get\_result\_processor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_result_processor)

[get\_rowcount() (sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.get_rowcount)

[get\_schema\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_schema_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_schema_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_schema_names)

[get\_select\_precolumns() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.get_select_precolumns)

[get\_sequence\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_sequence_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_sequence_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sequence_names)

[get\_sorted\_table\_and\_fkc\_names() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sorted_table_and_fkc_names)

[get\_table\_comment() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_comment)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_table_comment)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_comment)

[get\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_names)

[get\_table\_oid() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid)

[get\_table\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_table_options)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_options)

[get\_temp\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_table_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_temp_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_table_names)

[get\_temp\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_temp_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_view_names)

[get\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.get_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_transaction)

[get\_unique\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_unique_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_unique_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_unique_constraints)

[get\_view\_definition() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_definition)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_view_definition)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_definition)

[get\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.get_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_names)

[getset\_factory (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.getset_factory)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.getset_factory)

[getter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.getter)

[global\_track\_bound\_values (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.global_track_bound_values)

[group (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.group)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.group)

[group\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.group_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by)

[group\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.group_by_clause)

[grouping\_sets (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.grouping_sets)

[groups (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over.params.groups) | H - | | | | --- | --- | | [handle\_dbapi\_exception() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.handle_dbapi_exception)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.handle_dbapi_exception)

[handle\_dialect\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_dialect_kwargs)

[handle\_error() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DialectEvents.handle_error)

[handle\_pool\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_pool_kwargs)

[has() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.has)

[has\_all() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_all)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_all)

[has\_any() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_any)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_any)

[has\_changes() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes)

[has\_identity (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.has_identity)

[has\_index() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_index)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.has_index)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_index)

[has\_inherited\_table() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.has_inherited_table)

[has\_key() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_key)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_key)

[has\_out\_parameters (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.has_out_parameters)

[has\_parent() (sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager.has_parent)

[has\_schema() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_schema)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.has_schema)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_schema)

[has\_sequence() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_sequence)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.has_sequence)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_sequence)

[has\_table() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_table)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.has_table)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_table)

[has\_terminate (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_terminate)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.has_terminate)

[has\_type() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.has_type) | [HasCacheKey (class in sqlalchemy.sql.traversals)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey)

[HasConditionalDDL (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.HasConditionalDDL)

[HasCTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE)

[HasDescriptionCode (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.HasDescriptionCode)

[hash (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.hash)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.hash)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.hash)

[hashable (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.hashable)

[(sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.hashable)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.hashable)

[HasPrefixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes)

[HasSuffixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes)

[having() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.having)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.having)

[hide\_parameters (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.hide_parameters)

[hide\_password (sqlalchemy.engine.URL.render\_as\_string parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.render_as_string.params.hide_password)

[History (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History)

[history (sqlalchemy.orm.AttributeState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeState.history)

[HNSW (sqlalchemy.dialects.oracle.VectorIndexType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexType.HNSW)

[hnsw\_efconstruction (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.hnsw_efconstruction)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.hnsw_efconstruction)

[hnsw\_neighbors (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.hnsw_neighbors)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.hnsw_neighbors)

[host (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.host)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.host)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set.params.host)

[HSTORE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE)

[hstore (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore)

[HSTORE.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator)

[hybrid\_method (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method)

[HYBRID\_METHOD (sqlalchemy.ext.hybrid.HybridExtensionType attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HybridExtensionType.HYBRID_METHOD)

[hybrid\_property (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property)

[HYBRID\_PROPERTY (sqlalchemy.ext.hybrid.HybridExtensionType attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HybridExtensionType.HYBRID_PROPERTY)

[HybridExtensionType (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HybridExtensionType) | I - | | | | --- | --- | | [icontains() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.icontains)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.icontains)

[ident (sqlalchemy.orm.Query.get parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.get.params.ident)

[(sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.ident)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.get.params.ident)

[Identified (class in sqlalchemy.log)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.log.Identified)

[identifier\_preparer (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.identifier_preparer)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.identifier_preparer)

[IdentifierError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IdentifierError)

[IdentifierPreparer (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer)

[Identity (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity)

[identity (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.identity)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.identity)

[identity key](https://docs.sqlalchemy.org/en/20/glossary.html#term-identity-key)

[identity map](https://docs.sqlalchemy.org/en/20/glossary.html#term-identity-map)

[identity\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.identity_chooser)

[identity\_key (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.identity_key)

[identity\_key() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.util.identity_key)

[(sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.identity_key)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.identity_key)

[identity\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_instance)

[identity\_key\_from\_primary\_key() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_primary_key)

[identity\_key\_from\_row() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row)

[identity\_map (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.identity_map)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.identity_map)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.identity_map)

[IdentityMap (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.IdentityMap)

[iendswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.iendswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.iendswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.iendswith)

[if\_exists (sqlalchemy.schema.DropConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropConstraint.params.if_exists)

[(sqlalchemy.schema.DropIndex parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropIndex.params.if_exists)

[(sqlalchemy.schema.DropTable parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropTable.params.if_exists)

[if\_not\_exists (sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateIndex.params.if_not_exists)

[(sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateTable.params.if_not_exists)

[ignore\_unpopulated\_attribute (sqlalchemy.orm.attribute\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.attribute_keyed_dict.params.ignore_unpopulated_attribute)

[(sqlalchemy.orm.column\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict.params.ignore_unpopulated_attribute)

[(sqlalchemy.orm.keyfunc\_mapping parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping.params.ignore_unpopulated_attribute)

[ilike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.ilike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.ilike)

[IllegalStateChangeError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IllegalStateChangeError)

[IMAGE (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE)

[immediateload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.immediateload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.immediateload)

[imperative](https://docs.sqlalchemy.org/en/20/glossary.html#term-imperative)

[impl (sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.impl)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.impl)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.params.impl)

[implicit\_returning (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.implicit_returning)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.implicit_returning)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.implicit_returning)

[import\_dbapi() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.import_dbapi)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.import_dbapi)

[in\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.in_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.in_)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.in_)

[in\_boolean\_mode (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.in_boolean_mode)

[in\_boolean\_mode() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.in_boolean_mode)

[in\_natural\_language\_mode (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.in_natural_language_mode)

[in\_natural\_language\_mode() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.in_natural_language_mode)

[in\_nested\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.in_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.in_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.in_nested_transaction)

[in\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.in_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.in_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.in_transaction)

[in\_use (sqlalchemy.pool.ConnectionPoolEntry attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.in_use)

[include\_aliases (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.include_aliases)

[include\_backrefs (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_backrefs)

[include\_collections (sqlalchemy.ext.asyncio.async\_scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified.params.include_collections)

[(sqlalchemy.ext.asyncio.AsyncSession.is\_modified parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_modified.params.include_collections)

[(sqlalchemy.orm.scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.is_modified.params.include_collections)

[include\_columns (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.include_columns)

[(sqlalchemy.engine.reflection.Inspector.reflect\_table parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table.params.include_columns)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.include_columns)

[include\_defaults (sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.include_defaults)

[include\_foreign\_key\_constraints (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateTable.params.include_foreign_key_constraints)

[include\_properties (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.include_properties)

[include\_removes (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_removes)

[include\_set\_input\_sizes (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.include_set_input_sizes)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.include_set_input_sizes)

[increment (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.increment)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.increment)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.increment)

[Index (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Index)

[index (sqlalchemy.engine.CursorResult.scalars parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.scalars.params.index)

[(sqlalchemy.engine.Result.scalars parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.scalars.params.index)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row.index)

[index\_elements (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_elements)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_elements)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing.params.index_elements)

[index\_name (sqlalchemy.engine.reflection.Inspector.has\_index parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_index.params.index_name)

[index\_property (class in sqlalchemy.ext.indexable)](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property)

[index\_type (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.index_type)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.index_type)

[index\_where (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_where)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing.params.index_where)

[Indexable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable)

[Indexable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Indexable.Comparator)

[indexes (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.indexes)

[INET (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INET)

[INET4 (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.INET4)

[INET6 (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.INET6)

[info (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.info)

[(sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.info)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.info)

[info\_cache (sqlalchemy.engine.reflection.Inspector attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.info_cache)

[inherit\_cache (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inherit_cache)

[(sqlalchemy.dialects.mysql.match attribute)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.inherit_cache)

[(sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.inherit_cache)

[inherit\_condition (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.inherit_condition)

[inherit\_foreign\_keys (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.inherit_foreign_keys)

[inherit\_schema (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema)

[inherits (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.inherits)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.inherits)

[init (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.init)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.init)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.init)

[init() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.init)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.init)

[init\_collection() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.init_collection)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection)

[init\_failure() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.init_failure)

[init\_scalar() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar)

[initialize() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.initialize)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.initialize)

[initialize\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict)

[initially (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.initially)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.initially)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.initially)

[initiator (sqlalchemy.orm.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.append.params.initiator)

[(sqlalchemy.orm.AttributeEvents.append\_wo\_mutation parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.append_wo_mutation.params.initiator)

[(sqlalchemy.orm.AttributeEvents.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace.params.initiator)

[inline (sqlalchemy.sql.expression.insert parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.insert.params.inline)

[inline() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.inline)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update.inline)

[inline\_comments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.inline_comments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.inline_comments)

[inner\_columns (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.inner_columns)

[innerjoin (sqlalchemy.orm.joinedload parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.joinedload.params.innerjoin)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.innerjoin)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.innerjoin)

[inplace (sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.inplace)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.inplace)

[Insert (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert)

[insert (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listen.params.insert)

[insert sentinel](https://docs.sqlalchemy.org/en/20/glossary.html#term-insert-sentinel)

[insert() (in module sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.insert)

[(in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert)

[(in module sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.insert)

[insert\_default (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.insert_default)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.insert_default)

[insert\_executemany\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insert_executemany_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.insert_executemany_returning)

[insert\_executemany\_returning\_sort\_by\_parameter\_order (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insert_executemany_returning_sort_by_parameter_order)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.insert_executemany_returning_sort_by_parameter_order)

[insert\_prefetch (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.insert_prefetch)

[insert\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insert_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.insert_returning)

[insert\_sentinel (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.insert_sentinel)

[insert\_sentinel() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.insert_sentinel)

[insert\_single\_values\_expr (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.insert_single_values_expr)

[inserted (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inserted)

[inserted\_primary\_key (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.inserted_primary_key)

[inserted\_primary\_key\_rows (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.inserted_primary_key_rows)

[insertmanyvalues](https://docs.sqlalchemy.org/en/20/glossary.html#term-insertmanyvalues)

[insertmanyvalues\_implicit\_sentinel (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insertmanyvalues_implicit_sentinel)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.insertmanyvalues_implicit_sentinel)

[insertmanyvalues\_max\_parameters (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insertmanyvalues_max_parameters)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.insertmanyvalues_max_parameters) | [insertmanyvalues\_page\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.insertmanyvalues_page_size)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.insertmanyvalues_page_size)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.insertmanyvalues_page_size)

[inspect() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect)

[InspectionAttr (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr)

[InspectionAttrExtensionType (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttrExtensionType)

[InspectionAttrInfo (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttrInfo)

[Inspector (class in sqlalchemy.engine.reflection)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector)

[install\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor)

[install\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member)

[install\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state)

[instance (sqlalchemy.ext.asyncio.async\_object\_session parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_object_session.params.instance)

[(sqlalchemy.ext.asyncio.async\_scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire.params.instance)

[(sqlalchemy.ext.asyncio.async\_scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified.params.instance)

[instance\_state() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.instance_state)

[InstanceEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents)

[instances (sqlalchemy.orm.SessionEvents.before\_flush parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush.params.instances)

[instances() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.instances)

[InstanceState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState)

[instrument\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute)

[instrument\_class() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.instrument_class)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.instrument_class)

[(sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.instrument_class)

[instrument\_collection\_class() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class)

[instrumentation](https://docs.sqlalchemy.org/en/20/glossary.html#term-instrumentation)

[instrumentation\_finders (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders)

[INSTRUMENTATION\_MANAGER (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER)

[InstrumentationEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstrumentationEvents)

[InstrumentationFactory (class in sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory)

[InstrumentationManager (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager)

[instrumented](https://docs.sqlalchemy.org/en/20/glossary.html#term-instrumented)

[InstrumentedAttribute (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute)

[InstrumentedDict (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedDict)

[InstrumentedList (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedList)

[InstrumentedSet (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.InstrumentedSet)

[instrumenting](https://docs.sqlalchemy.org/en/20/glossary.html#term-instrumenting)

[INT (in module sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.INT)

[INT4MULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT4MULTIRANGE)

[INT4RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT4RANGE)

[INT8 (sqlalchemy.dialects.oracle.VectorStorageFormat attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat.INT8)

[INT8MULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT8MULTIRANGE)

[INT8RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT8RANGE)

[INTEGER (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.INTEGER)

[Integer (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Integer)

[IntegrityError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IntegrityError)

[InterfaceError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InterfaceError)

[InternalError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InternalError)

[internally\_instrumented() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.internally_instrumented)

[InternalTraversal (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal)

[intersect() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.intersect)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.intersect)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.intersect)

[intersect\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.intersect_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.intersect_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.intersect_all)

[intersection() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.intersection)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.intersection)

[intersection\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.intersection_update)

[INTERVAL (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL)

[Interval (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval)

[Interval.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.Comparator)

[invalidate() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.invalidate)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.invalidate)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.invalidate)

[invalidate\_pool\_on\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.invalidate_pool_on_disconnect)

[invalidated (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.invalidated)

[(sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.invalidated)

[InvalidatePoolError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidatePoolError)

[InvalidRequestError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidRequestError)

[invoke\_statement() (sqlalchemy.orm.ORMExecuteState method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement)

[invoked\_statement (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.invoked_statement)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.invoked_statement)

[is\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_)

[is\_active (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_active)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_active)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.is_active)

[is\_aliased\_class (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_aliased_class)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_aliased_class)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_aliased_class)

[is\_async (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.is_async)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.is_async)

[is\_attribute (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.is_attribute)

[is\_bundle (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_bundle)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_bundle)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_bundle)

[is\_clause\_element (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_clause_element)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_clause_element)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_clause_element)

[is\_column\_load (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load)

[is\_comparison (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.is_comparison)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.is_comparison)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.is_comparison)

[is\_delete (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_delete)

[is\_deleted() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction.is_deleted)

[is\_derived\_from() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.is_derived_from)

[(sqlalchemy.sql.expression.AliasedReturnsRows method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.is_derived_from)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.is_derived_from)

[is\_detached (sqlalchemy.pool.PoolProxiedConnection attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.is_detached)

[is\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.is_disconnect)

[is\_disconnect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.is_disconnect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.is_disconnect)

[is\_distinct\_from() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_distinct_from)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_distinct_from)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_distinct_from)

[is\_dml (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.is_dml)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_dml)

[is\_empty (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.is_empty)

[is\_executemany (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_executemany)

[is\_from\_statement (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_from_statement)

[is\_insert (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.is_insert)

[(sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_insert)

[is\_instance (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_instance)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_instance)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.is_instance)

[is\_instrumented() (in module sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented)

[is\_literal (sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.column.params.is_literal)

[is\_mapper (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_mapper)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.is_mapper)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_mapper)

[is\_modified() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_modified)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.is_modified)

[is\_not() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_not)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_not)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_not)

[is\_not\_distinct\_from() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.is_not_distinct_from)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_not_distinct_from)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.is_not_distinct_from)

[is\_orm\_statement (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement)

[is\_pre\_ping (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.is_pre_ping)

[is\_prepared (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.is_prepared)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.is_prepared)

[(sqlalchemy.engine.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase.params.is_prepared)

[is\_property (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_property)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_property)

[(sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.is_property)

[is\_relationship\_load (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load)

[is\_select (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_select)

[is\_selectable (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_selectable)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_selectable)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.is_selectable)

[is\_sibling() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.is_sibling)

[is\_single\_entity (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.is_single_entity)

[is\_text (sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_text)

[is\_update (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update)

[(sqlalchemy.sql.expression.StatementLambdaElement attribute)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_update)

[is\_valid (sqlalchemy.pool.PoolProxiedConnection attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.is_valid)

[isa() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.isa)

[isempty (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.isempty)

[isinsert (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.isinsert)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.isinsert)

[ismulti (sqlalchemy.exc.StatementError attribute)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.StatementError.ismulti)

[isnot() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.isnot)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.isnot)

[isnot\_distinct\_from() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.isnot_distinct_from)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot_distinct_from)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.isnot_distinct_from)

[isolate\_from\_table (sqlalchemy.schema.AddConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.AddConstraint.params.isolate_from_table)

[(sqlalchemy.schema.DropConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropConstraint.params.isolate_from_table)

[isolate\_multiinsert\_groups (sqlalchemy.engine.default.DefaultExecutionContext.get\_current\_parameters parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters.params.isolate_multiinsert_groups)

[isolated](https://docs.sqlalchemy.org/en/20/glossary.html#term-isolated)

[isolation](https://docs.sqlalchemy.org/en/20/glossary.html#term-isolation)

[isolation level](https://docs.sqlalchemy.org/en/20/glossary.html#term-isolation-level)

[isolation\_level (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.isolation_level)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.isolation_level)

[isouter (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.join.params.isouter)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.join.params.isouter)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.isouter)

[isoutparam (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.isoutparam)

[istartswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.istartswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.istartswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.istartswith)

[isupdate (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.isupdate)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.isupdate)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.isupdate)

[item\_type (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.item_type)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.params.item_type)

[items() (sqlalchemy.engine.RowMapping method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.RowMapping.items)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.items)

[iterate() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.iterate)

[(sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate)

[iterate\_properties (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.iterate_properties)

[iterator (sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.iterator)

[iterator() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.iterator)

[IteratorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.IteratorResult)

[IVF (sqlalchemy.dialects.oracle.VectorIndexType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexType.IVF)

[ivf\_min\_vectors\_per\_partition (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.ivf_min_vectors_per_partition)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.ivf_min_vectors_per_partition)

[ivf\_neighbor\_partitions (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.ivf_neighbor_partitions)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.ivf_neighbor_partitions)

[ivf\_sample\_per\_partition (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.ivf_sample_per_partition)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.ivf_sample_per_partition) | J - | | | | --- | --- | | [Join (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Join)

[join() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.join)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.join)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.join)

[join\_depth (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.join_depth)

[join\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.join_from)

[join\_transaction\_mode (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.join_transaction_mode)

[joinedload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.joinedload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.joinedload)

[joins\_implicitly (sqlalchemy.sql.functions.FunctionElement.alias parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias.params.joins_implicitly)

[(sqlalchemy.sql.functions.FunctionElement.column\_valued parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued.params.joins_implicitly)

[(sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.joins_implicitly)

[JSON (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.JSON)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON) | [JSON.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.Comparator)

[JSON.JSONElementType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType)

[JSON.JSONIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType)

[JSON.JSONIntIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType)

[JSON.JSONPathType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType)

[JSON.JSONStrIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType)

[json\_deserializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.json_deserializer)

[json\_serializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.json_serializer)

[JSONB (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB)

[JSONB.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator)

[JSONPATH (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONPATH) | K - | | | | --- | --- | | [keep\_existing (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.keep_existing)

[key (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.key)

[(sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.key)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.key)

[key\_share (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.key_share)

[key\_value\_pairs (sqlalchemy.engine.URL.update\_query\_pairs parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_pairs.params.key_value_pairs)

[keyfunc (sqlalchemy.orm.keyfunc\_mapping parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping.params.keyfunc)

[keyfunc\_mapping() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.keyfunc_mapping)

[KeyFuncDict (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict)

[keys (sqlalchemy.orm.AttributeEvents.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace.params.keys)

[keys() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.keys)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.keys)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.keys) | [kind (sqlalchemy.engine.reflection.Inspector.get\_multi\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints.params.kind)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns.params.kind)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys.params.kind)

[kw\_only (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.kw_only)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.kw_only)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.kw_only)

[kwargs (sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.kwargs)

[(sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine_from_config.params.kwargs)

[(sqlalchemy.orm.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.init.params.kwargs) | L - | | | | --- | --- | | [Label (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Label)

[label() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.label)

[(sqlalchemy.orm.Bundle method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.label)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.label)

[label\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.label_length)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.label_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.label_length)

[LABEL\_STYLE\_DEFAULT (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_DEFAULT)

[LABEL\_STYLE\_DISAMBIGUATE\_ONLY (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_DISAMBIGUATE_ONLY)

[LABEL\_STYLE\_NONE (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_NONE)

[LABEL\_STYLE\_TABLENAME\_PLUS\_COL (sqlalchemy.sql.expression.SelectLabelStyle attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle.LABEL_STYLE_TABLENAME_PLUS_COL)

[lambda\_cache (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.lambda_cache)

[lambda\_stmt() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt)

[LambdaElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.LambdaElement)

[LargeBinary (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.LargeBinary)

[last\_inserted\_params() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.last_inserted_params)

[last\_updated\_params() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.last_updated_params)

[lastrow\_has\_defaults() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.lastrow_has_defaults)

[(sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.lastrow_has_defaults)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.lastrow_has_defaults)

[lastrowid (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.lastrowid)

[(sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.lastrowid)

[Lateral (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Lateral)

[lateral() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.lateral)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.lateral)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.lateral)

[lazy (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.lazy)

[lazy initialization](https://docs.sqlalchemy.org/en/20/glossary.html#term-lazy-initialization)

[lazy load](https://docs.sqlalchemy.org/en/20/glossary.html#term-lazy-load)

[lazy loaded](https://docs.sqlalchemy.org/en/20/glossary.html#term-lazy-loaded)

[lazy loading](https://docs.sqlalchemy.org/en/20/glossary.html#term-lazy-loading)

[lazy loads](https://docs.sqlalchemy.org/en/20/glossary.html#term-lazy-loads)

[lazy\_loaded\_from (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from)

[(sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.lazy_loaded_from)

[lazyload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.lazyload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.lazyload)

[left (sqlalchemy.sql.expression.join parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.join.params.left)

[(sqlalchemy.sql.expression.outerjoin parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.outerjoin.params.left)

[left\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.left_index)

[legacy\_is\_orphan (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.legacy_is_orphan)

[LegacyAPIWarning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.LegacyAPIWarning)

[length (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.length)

[(sqlalchemy.dialects.mssql.IMAGE parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.params.length)

[(sqlalchemy.dialects.mssql.NCHAR parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.NCHAR.params.length) | [like() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.like)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.like)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.like)

[limit (sqlalchemy.sql.expression.CompoundSelect.limit parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit.params.limit)

[(sqlalchemy.sql.expression.GenerativeSelect.limit parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit.params.limit)

[(sqlalchemy.sql.expression.Select.limit parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.limit.params.limit)

[limit() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.limit)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit)

[link\_to\_name (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.link_to_name)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.link_to_name)

[listen() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listen)

[listeners (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.listeners)

[listens\_for() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listens_for)

[literal() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.literal)

[literal\_binds (sqlalchemy.sql.expression.values parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.values.params.literal_binds)

[literal\_column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.literal_column)

[literal\_execute (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.literal_execute)

[(sqlalchemy.sql.expression.literal parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.literal.params.literal_execute)

[literal\_execute\_params (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.literal_execute_params)

[literal\_processor() (sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor)

[(sqlalchemy.types.Date method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Date.literal_processor)

[(sqlalchemy.types.DateTime method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DateTime.literal_processor)

[lmb (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.lmb)

[Load (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load)

[load (sqlalchemy.orm.scoped\_session.merge parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.merge.params.load)

[(sqlalchemy.orm.Session.merge parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.merge.params.load)

[load() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.load)

[load\_dialect\_impl() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl)

[load\_history() (sqlalchemy.orm.AttributeState method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeState.load_history)

[load\_on\_pending (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.load_on_pending)

[load\_only() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.load_only)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.load_only)

[load\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options)

[load\_provisioning() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.load_provisioning)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.load_provisioning)

[loaded\_as\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.loaded_as_persistent)

[loaded\_dbapi (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.loaded_dbapi)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.loaded_dbapi)

[loaded\_value (sqlalchemy.orm.AttributeState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeState.loaded_value)

[loader\_strategy\_path (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path)

[LoaderCallableStatus (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus)

[LoaderStrategyException](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException)

[loads() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.loads)

[local\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.local_attr)

[local\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.local_cls)

[local\_execution\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options)

[local\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.local_table)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.local_table)

[(sqlalchemy.orm.registry.map\_imperatively parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.map_imperatively.params.local_table)

[local\_timezone (sqlalchemy.dialects.oracle.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.TIMESTAMP.params.local_timezone)

[localtime (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.localtime)

[localtimestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.localtimestamp)

[logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.logging_name)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.params.logging_name)

[logging\_token (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.logging_token)

[LONG (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.LONG)

[LONGBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGBLOB)

[LONGTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT)

[lower (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.lower)

[(sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.lower)

[lower\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.between.params.lower_bound)

[lower\_inc (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.lower_inc)

[lower\_inf (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.lower_inf) | M - | | | | --- | --- | | [MACADDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR)

[MACADDR8 (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR8)

[maintain\_column\_froms (sqlalchemy.sql.expression.Select.with\_only\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns.params.maintain_column_froms)

[make\_transient() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.make_transient)

[make\_transient\_to\_detached() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached)

[make\_url() (in module sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.make_url)

[manage() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager.manage)

[manager\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter)

[ManagesConnection (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ManagesConnection)

[MANHATTAN (sqlalchemy.dialects.oracle.VectorDistanceType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType.MANHATTAN)

[many to many](https://docs.sqlalchemy.org/en/20/glossary.html#term-many-to-many)

[many to one](https://docs.sqlalchemy.org/en/20/glossary.html#term-many-to-one)

[MANYTOMANY (sqlalchemy.orm.RelationshipDirection attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipDirection.MANYTOMANY)

[MANYTOONE (sqlalchemy.orm.RelationshipDirection attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipDirection.MANYTOONE)

[map\_column (sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.map_column)

[map\_declaratively() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.map_declaratively)

[map\_imperatively() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.map_imperatively)

[mapped](https://docs.sqlalchemy.org/en/20/glossary.html#term-mapped)

[Mapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Mapped)

[mapped class](https://docs.sqlalchemy.org/en/20/glossary.html#term-mapped-class)

[mapped() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.mapped)

[mapped\_as\_dataclass() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_as_dataclass)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.mapped_as_dataclass)

[mapped\_collection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.mapped_collection)

[mapped\_column() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column)

[mapped\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.mapped_table)

[MappedAnnotationError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.MappedAnnotationError)

[MappedAsDataclass (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.MappedAsDataclass)

[MappedClassProtocol (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.MappedClassProtocol)

[MappedCollection (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.MappedCollection)

[MappedColumn (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MappedColumn)

[MappedSQLExpression (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MappedSQLExpression)

[Mapper (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper)

[mapper (sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.mapper)

[(sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.mapper)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.mapper)

[mapper\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.mapper_configured)

[mapper\_property\_to\_assign (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty.mapper_property_to_assign)

[(sqlalchemy.orm.CompositeProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.CompositeProperty.mapper_property_to_assign)

[MapperEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents)

[MapperProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty)

[mappers (sqlalchemy.orm.registry attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.mappers)

[mapping](https://docs.sqlalchemy.org/en/20/glossary.html#term-mapping)

[mapping\_spec (sqlalchemy.orm.column\_keyed\_dict parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.column_keyed_dict.params.mapping_spec)

[MappingResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult)

[mappings (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.mappings)

[(sqlalchemy.orm.scoped\_session.bulk\_update\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_update_mappings.params.mappings)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.mappings)

[mappings() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.mappings)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.mappings)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.mappings)

[marshalling](https://docs.sqlalchemy.org/en/20/glossary.html#term-marshalling)

[match (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.match)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.match)

[match() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.match)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.match)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.match)

[MatchType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.MatchType)

[matrix() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.matrix)

[max (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.max)

[max\_constraint\_name\_length (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.max_constraint_name_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.max_constraint_name_length)

[max\_identifier\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.max_identifier_length)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.max_identifier_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.max_identifier_length)

[max\_index\_name\_length (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.max_index_name_length)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.max_index_name_length)

[max\_overflow (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.max_overflow)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.max_overflow)

[max\_row\_buffer (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.max_row_buffer)

[maxvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.maxvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.maxvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.maxvalue)

[MEDIUMBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMBLOB)

[MEDIUMINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT)

[MEDIUMTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT)

[merge() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.merge)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.merge)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.merge)

[merge\_frozen\_result() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.merge_frozen_result)

[merge\_result() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.merge_result)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.merge_result) | [MergedResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MergedResult)

[metaclass (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.metaclass)

[(sqlalchemy.orm.registry.generate\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base.params.metaclass)

[metadata](https://docs.sqlalchemy.org/en/20/glossary.html#term-metadata)

[MetaData (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData)

[metadata (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.metadata)

[(sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.metadata)

[(sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.metadata)

[method chaining](https://docs.sqlalchemy.org/en/20/glossary.html#term-method-chaining)

[min (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.min)

[minvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.minvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.minvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.minvalue)

[MissingGreenlet](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.MissingGreenlet)

[mixin class](https://docs.sqlalchemy.org/en/20/glossary.html#term-mixin-class)

[mixin classes](https://docs.sqlalchemy.org/en/20/glossary.html#term-mixin-classes)

[mode (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.mode)

[modified (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.modified)

[modified() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.modified)

module

[examples.adjacency\_list](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.adjacency_list)

[examples.association](https://docs.sqlalchemy.org/en/20/orm/examples.html#module-examples.association)

[module (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.module)

[modulename\_for\_table (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.modulename_for_table)

[MONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.MONEY)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MONEY)

[MovedIn20Warning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.MovedIn20Warning)

[multiparams (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.multiparams)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.multiparams)

[MultipleResultsFound](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.MultipleResultsFound)

[MultiRange (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MultiRange)

[must\_exist (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.must_exist)

[Mutable (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable)

[mutable (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.mutable)

[MutableBase (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase)

[MutableComposite (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite)

[MutableDict (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict)

[MutableList (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList)

[MutableSet (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet) | N - | | | | --- | --- | | [N plus one](https://docs.sqlalchemy.org/en/20/glossary.html#term-N-plus-one)

[N plus one problem](https://docs.sqlalchemy.org/en/20/glossary.html#term-N-plus-one-problem)

[name (sqlalchemy.dialects.mssql.BIT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.params.name)

[(sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.name)

[(sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.name)

[name\_cte\_columns (sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.name_cte_columns)

[(sqlalchemy.sql.expression.HasCTE attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE.name_cte_columns)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.name_cte_columns)

[name\_for\_collection\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_collection_relationship)

[name\_for\_collection\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship)

[name\_for\_scalar\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_scalar_relationship)

[name\_for\_scalar\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship)

[named (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listen.params.named)

[names (sqlalchemy.engine.URL.translate\_connect\_args parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.translate_connect_args.params.names)

[(sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.names)

[naming\_convention (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.params.naming_convention)

[national (sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.national)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.national)

[(sqlalchemy.dialects.mysql.TEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TEXT.params.national)

[native (sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.params.native)

[native\_enum (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.native_enum)

[native\_uuid (sqlalchemy.types.Uuid parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Uuid.params.native_uuid)

[NCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.NCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.NCHAR)

[NCLOB (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.NCLOB)

[negation\_clause (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.negation_clause)

[nest\_here (sqlalchemy.sql.expression.CompoundSelect.add\_cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte.params.nest_here)

[(sqlalchemy.sql.expression.HasCTE.add\_cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte.params.nest_here)

[(sqlalchemy.sql.expression.Select.add\_cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte.params.nest_here)

[nested (sqlalchemy.orm.scoped\_session.begin parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.begin.params.nested)

[(sqlalchemy.orm.Session.begin parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.begin.params.nested)

[(sqlalchemy.orm.SessionTransaction attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested)

[NestedTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.NestedTransaction)

[nesting (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.nesting)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.nesting)

[(sqlalchemy.sql.expression.Select.cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.cte.params.nesting)

[NEVER\_SET (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.NEVER_SET)

[new (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.new)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.new)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.new)

[new\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace.params.new_adapter)

[next\_value (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.next_value)

[next\_value() (sqlalchemy.schema.Sequence method)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.next_value)

[nextset() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.nextset)

[no\_autoflush (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.no_autoflush)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.no_autoflush)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.no_autoflush)

[no\_parameters (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.no_parameters)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.no_parameters)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.no_parameters)

[NO\_STATE (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE)

[NO\_VALUE (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.NO_VALUE)

[NoForeignKeysError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoForeignKeysError)

[NoInspectionAvailable](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable)

[noload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.noload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.noload)

[nomaxvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.nomaxvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.nomaxvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.nomaxvalue)

[nominvalue (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.nominvalue)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.nominvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.nominvalue)

[non\_added() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added)

[non\_deleted() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted) | [non\_primary (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.non_primary)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.non_primary)

[NONE (sqlalchemy.engine.BindTyping attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.BindTyping.NONE)

[none\_as\_null (sqlalchemy.dialects.mssql.JSON parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON.params.none_as_null)

[(sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.none_as_null)

[(sqlalchemy.dialects.sqlite.JSON parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.JSON.params.none_as_null)

[NoReferencedColumnError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoReferencedColumnError)

[NoReferencedTableError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoReferencedTableError)

[NoReferenceError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoReferenceError)

[NoResultFound](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoResultFound)

[normalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.normalize_name)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.normalize_name)

[normalized\_query (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.normalized_query)

[NoSuchColumnError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoSuchColumnError)

[NoSuchModuleError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoSuchModuleError)

[NoSuchTableError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoSuchTableError)

[not\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.not_)

[not\_extend\_left\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.not_extend_left_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.not_extend_left_of)

[not\_extend\_right\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.not_extend_right_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.not_extend_right_of)

[NOT\_EXTENSION (sqlalchemy.orm.NotExtension attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.NotExtension.NOT_EXTENSION)

[not\_ilike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.not_ilike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_ilike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.not_ilike)

[not\_in() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.not_in)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_in)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.not_in)

[not\_like() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.not_like)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_like)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.not_like)

[not\_null (sqlalchemy.dialects.postgresql.DOMAIN parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOMAIN.params.not_null)

[NotExtension (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.NotExtension)

[notilike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.notilike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notilike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.notilike)

[notin\_() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.notin_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notin_)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.notin_)

[notlike() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.notlike)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notlike)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.notlike)

[NotNullable() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.NotNullable)

[NotSupportedError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NotSupportedError)

[now (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.now)

[nowait (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.nowait)

[NTEXT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.NTEXT)

[Null (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Null)

[NULL (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.NULL)

[null() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.null)

[NULL\_UNSPECIFIED (sqlalchemy.schema.SchemaConst attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.SchemaConst.NULL_UNSPECIFIED)

[nullable (sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.nullable)

[(sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.nullable)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.nullable)

[Nullable() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.Nullable)

[NullPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.NullPool)

[nulls\_first() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nulls_first)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nulls_first)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nulls_first)

[nulls\_last() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nulls_last)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nulls_last)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nulls_last)

[nullsfirst() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nullsfirst)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nullsfirst)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullsfirst)

[nullslast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nullslast)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.nullslast)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullslast)

[NullType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.NullType)

[num (sqlalchemy.engine.ChunkedIteratorResult.yield\_per parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult.yield_per.params.num)

[(sqlalchemy.engine.CursorResult.yield\_per parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.yield_per.params.num)

[(sqlalchemy.engine.Result.yield\_per parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.yield_per.params.num)

[NUMBER (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.NUMBER)

[NUMERIC (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.NUMERIC)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.NUMERIC)

[Numeric (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Numeric)

[NUMMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.NUMMULTIRANGE)

[NUMRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.NUMRANGE)

[NVARCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.NVARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.NVARCHAR)

[NVARCHAR2 (in module sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.NVARCHAR2) | O - | | | | --- | --- | | [obj (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.obj)

[(sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.obj)

[(sqlalchemy.orm.attributes.init\_collection parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.init_collection.params.obj)

[object (sqlalchemy.ext.asyncio.AsyncConnection.execute parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.execute.params.object)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.object)

[object\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.object_mapper)

[object\_session() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.object_session)

[(sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.object_session)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.object_session)

[object\_state() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.util.object_state)

[ObjectAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance)

[ObjectDeletedError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError)

[ObjectDereferencedError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError)

[ObjectNotExecutableError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ObjectNotExecutableError)

[objects (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.objects)

[(sqlalchemy.orm.scoped\_session.flush parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.flush.params.objects)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.objects)

[of (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.of)

[of\_type() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.of_type)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute.of_type)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.of_type)

[offset (sqlalchemy.sql.expression.CompoundSelect.offset parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset.params.offset)

[(sqlalchemy.sql.expression.GenerativeSelect.offset parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset.params.offset)

[(sqlalchemy.sql.expression.Select.offset parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.offset.params.offset)

[offset() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.offset)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset)

[OID (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.OID)

[oldvalue (sqlalchemy.orm.AttributeEvents.set parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.set.params.oldvalue)

[omit\_aliases (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.omit_aliases)

[omit\_join (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.omit_join)

[on (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.CreateTable.params.on)

[(sqlalchemy.schema.DropTable parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.DropTable.params.on)

[on\_conflict\_do\_nothing() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing)

[(sqlalchemy.dialects.sqlite.Insert method)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing)

[on\_conflict\_do\_update() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update)

[(sqlalchemy.dialects.sqlite.Insert method)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update)

[on\_connect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.on_connect)

[on\_connect\_url() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect_url)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.on_connect_url)

[on\_duplicate\_key\_update() (sqlalchemy.dialects.mysql.Insert method)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update)

[on\_null (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.on_null)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.on_null)

[once (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listen.params.once)

[onclause (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.join.params.onclause)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.onclause)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.onclause)

[ondelete (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.ondelete)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.ondelete)

[one to many](https://docs.sqlalchemy.org/en/20/glossary.html#term-one-to-many)

[one() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.one)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.one)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.one)

[one\_or\_none() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.one_or_none)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.one_or_none)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.one_or_none)

[onebased (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.onebased)

[ONETOMANY (sqlalchemy.orm.RelationshipDirection attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipDirection.ONETOMANY)

[only (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.only)

[only\_return\_tuples() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.only_return_tuples)

[only\_synonyms (sqlalchemy.sql.expression.Select.reduce\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns.params.only_synonyms)

[onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.onupdate)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.onupdate)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.onupdate)

[op (sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate.params.op)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.op)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate.params.op)

[op() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op)

[operate() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.operate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.operate)

[OperationalError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.OperationalError)

[operator (sqlalchemy.types.ARRAY.Comparator.all parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all.params.operator)

[(sqlalchemy.types.ARRAY.Comparator.any parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any.params.operator)

[Operators (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Operators)

[ops (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.ops)

[opstring (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.opstring)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.opstring)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.opstring) | [optional (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.optional)

[options (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.options)

[(sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.options)

[(sqlalchemy.orm.scoped\_session.merge parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.merge.params.options)

[options() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.options)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.options)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.options)

[opts (sqlalchemy.events.ConnectionEvents.set\_connection\_execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options.params.opts)

[(sqlalchemy.events.ConnectionEvents.set\_engine\_execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options.params.opts)

[(sqlalchemy.sql.visitors.iterate parameter)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.iterate.params.opts)

[or\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.or_)

[order (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.order)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.order)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.order)

[order\_by (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.order_by)

[(sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over.params.order_by)

[order\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.order_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.order_by)

[order\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.order_by_clause)

[ordered\_values() (sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update.ordered_values)

[ordering\_attr (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_attr)

[ordering\_func (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_func)

[ordering\_list() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list)

[OrderingList (class in sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList)

[orig (sqlalchemy.exc.StatementError attribute)](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.StatementError.orig)

[origin (sqlalchemy.orm.SessionTransaction attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction.origin)

[original (sqlalchemy.sql.expression.AliasedReturnsRows attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.original)

[original\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.original_exception)

[ORM mapped class](https://docs.sqlalchemy.org/en/20/glossary.html#term-ORM-mapped-class)

[ORM-annotated](https://docs.sqlalchemy.org/en/20/glossary.html#term-ORM-annotated)

[orm\_execute\_state (sqlalchemy.orm.SessionEvents.do\_orm\_execute parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute.params.orm_execute_state)

[orm\_insert\_sentinel() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.orm_insert_sentinel)

[ORMExecuteState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState)

[other (sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.contains.params.other)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.endswith.params.other)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.icontains.params.other)

[outerjoin() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.outerjoin)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.outerjoin)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.outerjoin)

[outerjoin\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.outerjoin_from)

[outparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.outparam)

[Over (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Over)

[over() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.over)

[(sqlalchemy.sql.expression.WithinGroup method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup.over)

[overlap() (sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.overlap)

[overlaps (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.overlaps)

[overlaps() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.overlaps)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.overlaps)

[overrides (sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.overrides) | P - | | | | --- | --- | | [packagenames (sqlalchemy.sql.functions.Function parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.Function.params.packagenames)

[parallel (sqlalchemy.dialects.oracle.VectorIndexConfig attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.parallel)

[(sqlalchemy.dialects.oracle.VectorIndexConfig parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig.params.parallel)

[parameter\_expansion (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.parameter_expansion)

[parameters (sqlalchemy.engine.Connection.exec\_driver\_sql parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql.params.parameters)

[(sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute.params.parameters)

[(sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.parameters)

[params (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.params)

[(sqlalchemy.engine.Compiled.construct\_params parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.construct_params.params.params)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.params)

[params() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.params)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params)

[paramstyle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.paramstyle)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.paramstyle)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.paramstyle)

[parent (sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.parent)

[(sqlalchemy.events.DDLEvents.before\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach.params.parent)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.parent)

[partition\_by (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over.params.partition_by)

[partitions() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.partitions)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.partitions)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.partitions)

[passive (sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.passive)

[PASSIVE\_CLASS\_MISMATCH (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.PASSIVE_CLASS_MISMATCH)

[passive\_deletes (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.passive_deletes)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_deletes)

[PASSIVE\_NO\_RESULT (sqlalchemy.orm.LoaderCallableStatus attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.LoaderCallableStatus.PASSIVE_NO_RESULT)

[passive\_updates (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.passive_updates)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_updates)

[password (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.password)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.password)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set.params.password)

[path\_exists() (sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.path_exists)

[path\_match() (sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.path_match)

[pattern (sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_match.params.pattern)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace.params.pattern)
[\[0\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace.params.pattern)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match.params.pattern)

[pending](https://docs.sqlalchemy.org/en/20/glossary.html#term-pending)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.pending)

[pending\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_persistent)

[pending\_to\_transient() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_transient)

[PendingRollbackError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.PendingRollbackError)

[pep-249](https://docs.sqlalchemy.org/en/20/glossary.html#term-pep-249)

[percent (sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.percent)

[(sqlalchemy.sql.expression.GenerativeSelect.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch.params.percent)

[(sqlalchemy.sql.expression.Select.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.fetch.params.percent)

[percent\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.percent_rank)

[percentile\_cont (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.percentile_cont)

[percentile\_disc (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.percentile_disc)

[persist\_selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.persist_selectable)

[persisted (sqlalchemy.engine.interfaces.ReflectedComputed attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedComputed.persisted)

[(sqlalchemy.schema.Computed parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Computed.params.persisted)

[persistent](https://docs.sqlalchemy.org/en/20/glossary.html#term-persistent)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.persistent)

[persistent\_id() (sqlalchemy.ext.serializer.Serializer method)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id)

[persistent\_load() (sqlalchemy.ext.serializer.Deserializer method)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load)

[persistent\_to\_deleted() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_deleted)

[persistent\_to\_detached() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_detached)

[persistent\_to\_transient() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_transient)

[PGInspector (class in sqlalchemy.dialects.postgresql.base)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector)

[phraseto\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.phraseto_tsquery)

[pickle() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.pickle)

[pickler (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.params.pickler)

[PickleType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType)

[plainto\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.plainto_tsquery)

[plugin](https://docs.sqlalchemy.org/en/20/glossary.html#term-plugin)

[plugin-enabled](https://docs.sqlalchemy.org/en/20/glossary.html#term-plugin-enabled)

[plugin-specific](https://docs.sqlalchemy.org/en/20/glossary.html#term-plugin-specific)

[plugins (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.plugins)

[polymorphic](https://docs.sqlalchemy.org/en/20/glossary.html#term-polymorphic)

[polymorphic\_abstract (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_abstract)

[polymorphic\_identity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_identity)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_identity)

[polymorphic\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_iterator)

[polymorphic\_load (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_load)

[polymorphic\_map (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_map)

[polymorphic\_on (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_on)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.polymorphic_on)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.polymorphic_on)

[polymorphic\_union() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union)

[polymorphically](https://docs.sqlalchemy.org/en/20/glossary.html#term-polymorphically)

[Pool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool)

[pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.pool)

[pool\_logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_logging_name)

[pool\_pre\_ping (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_pre_ping)

[pool\_recycle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_recycle)

[pool\_reset\_on\_return (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_reset_on_return)

[pool\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_size)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.pool_size)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.pool_size)

[pool\_timeout (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_timeout)

[pool\_use\_lifo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.pool_use_lifo)

[poolclass (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.poolclass)

[PoolEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents)

[PoolProxiedConnection (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection)

[PoolResetState (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolResetState)

[pop() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.pop)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.pop)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.pop)

[popitem() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.popitem)

[(sqlalchemy.orm.KeyFuncDict method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict.popitem)

[populate\_existing (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.populate_existing)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.get.params.populate_existing)

[populate\_existing() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.populate_existing)

[port (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.port)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.port)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set.params.port)

[positional (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.positional)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.positional) | [positional\_parameters (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.positional_parameters)

[positiontup (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.positiontup)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.positiontup)

[post\_compile\_params (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.post_compile_params)

[post\_configure\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute)

[post\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.post_exec)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.post_exec)

[post\_instrument\_class() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.post_instrument_class)

[post\_update (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.post_update)

[postfetch (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.postfetch)

[postfetch\_cols (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.postfetch_cols)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.postfetch_cols)

[postfetch\_cols() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.postfetch_cols)

[postfetch\_lastrowid (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.postfetch_lastrowid)

[pre\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.pre_exec)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.pre_exec)

[pre\_ping (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.params.pre_ping)

[precedence (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.precedence)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.precedence)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.precedence)

[precision (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.precision)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.precision)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.precision)

[preexecute\_autoincrement\_sequences (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.preexecute_autoincrement_sequences)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.preexecute_autoincrement_sequences)

[prefetch\_cols (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.prefetch_cols)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.prefetch_cols)

[prefetch\_cols() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.prefetch_cols)

[prefix (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine_from_config.params.prefix)

[prefix\_with() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.prefix_with)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.prefix_with)

[(sqlalchemy.sql.expression.HasPrefixes method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes.prefix_with)

[prefixes (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.prefixes)

[prepare() (sqlalchemy.engine.TwoPhaseTransaction method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction.prepare)

[(sqlalchemy.ext.automap.AutomapBase class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare)

[(sqlalchemy.ext.declarative.DeferredReflection class method)](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection.prepare)

[prepare\_instrumentation() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.prepare_instrumentation)

[prepare\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.prepare_twophase)

[preparer (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.preparer)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.preparer)

[preserve\_order (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.preserve_order)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.preserve_order)

[preserve\_rowcount (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.preserve_rowcount)

[previous\_transaction (sqlalchemy.orm.SessionEvents.after\_soft\_rollback parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback.params.previous_transaction)

[primary key](https://docs.sqlalchemy.org/en/20/glossary.html#term-primary-key)

[primary key constraint](https://docs.sqlalchemy.org/en/20/glossary.html#term-primary-key-constraint)

[primary\_key (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.primary_key)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key)

[(sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.primary_key)

[primary\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key_from_instance)

[primary\_mapper() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_mapper)

[primaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin)

[PrimaryKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.PrimaryKeyConstraint)

[process\_bind\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param)

[process\_compile\_state() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.process_compile_state)

[process\_compile\_state\_replaced\_entities() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.process_compile_state_replaced_entities)

[process\_literal\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param)

[process\_result\_value() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value)

[processors (sqlalchemy.sql.compiler.ExpandedState attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState.processors)

[ProgrammingError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ProgrammingError)

[propagate (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listen.params.propagate)

[(sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.params.propagate)

[(sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.params.propagate)

[propagate\_to\_loaders (sqlalchemy.ext.horizontal\_shard.set\_shard\_id attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.propagate_to_loaders)

[(sqlalchemy.ext.horizontal\_shard.set\_shard\_id parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.params.propagate_to_loaders)

[(sqlalchemy.orm.Load attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.propagate_to_loaders)

[PropComparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator)

[properties (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.properties)

[property (sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.PropComparator.property)

[(sqlalchemy.orm.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_parent.params.property)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_parent.params.property)

[protocol (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.PickleType.params.protocol)

[proxy\_bulk\_set (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.proxy_bulk_set)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.proxy_bulk_set)

[proxy\_factory (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.proxy_factory)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.proxy_factory)

[proxy\_set (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.proxy_set)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.proxy_set)

Python Enhancement Proposals

[PEP 249](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#index-1)
[\[0\]](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#index-2)
[\[1\]](https://docs.sqlalchemy.org/en/20/core/connections.html#index-1)
[\[2\]](https://docs.sqlalchemy.org/en/20/core/connections.html#index-3)
[\[3\]](https://docs.sqlalchemy.org/en/20/core/connections.html#index-4)
[\[4\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-0)
[\[5\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-1)
[\[6\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-2)
[\[7\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-3)
[\[8\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-4)
[\[9\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-5)
[\[10\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-6)
[\[11\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-7)
[\[12\]](https://docs.sqlalchemy.org/en/20/core/internals.html#index-8)
[\[13\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-0)
[\[14\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-1)
[\[15\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-2)
[\[16\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-3)
[\[17\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-4)
[\[18\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-5)
[\[19\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-6)
[\[20\]](https://docs.sqlalchemy.org/en/20/core/pooling.html#index-7)
[\[21\]](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#index-0)
[\[22\]](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#index-1)
[\[23\]](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#index-2)
[\[24\]](https://docs.sqlalchemy.org/en/20/glossary.html#index-2)

[PEP 484](https://docs.sqlalchemy.org/en/20/changelog/changelog_20.html#index-18)
[\[0\]](https://docs.sqlalchemy.org/en/20/changelog/migration_20.html#index-0)
[\[1\]](https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html#index-0)
[\[2\]](https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html#index-1)
[\[3\]](https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html#index-2)
[\[4\]](https://docs.sqlalchemy.org/en/20/core/connections.html#index-5)
[\[5\]](https://docs.sqlalchemy.org/en/20/core/connections.html#index-6)
[\[6\]](https://docs.sqlalchemy.org/en/20/core/connections.html#index-7)
[\[7\]](https://docs.sqlalchemy.org/en/20/core/metadata.html#index-0)
[\[8\]](https://docs.sqlalchemy.org/en/20/core/metadata.html#index-1)
[\[9\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-0)
[\[10\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-1)
[\[11\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-2)
[\[12\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-3)
[\[13\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-4)
[\[14\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-5)
[\[15\]](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#index-6)
[\[16\]](https://docs.sqlalchemy.org/en/20/errors.html#index-0)
[\[17\]](https://docs.sqlalchemy.org/en/20/errors.html#index-1)
[\[18\]](https://docs.sqlalchemy.org/en/20/glossary.html#index-0)
[\[19\]](https://docs.sqlalchemy.org/en/20/glossary.html#index-1)
[\[20\]](https://docs.sqlalchemy.org/en/20/orm/backref.html#index-0)
[\[21\]](https://docs.sqlalchemy.org/en/20/orm/basic_relationships.html#index-0)
[\[22\]](https://docs.sqlalchemy.org/en/20/orm/dataclasses.html#index-0)
[\[23\]](https://docs.sqlalchemy.org/en/20/orm/declarative_mixins.html#index-1)
[\[24\]](https://docs.sqlalchemy.org/en/20/orm/declarative_mixins.html#index-2)
[\[25\]](https://docs.sqlalchemy.org/en/20/orm/declarative_mixins.html#index-3)
[\[26\]](https://docs.sqlalchemy.org/en/20/orm/declarative_mixins.html#index-4)
[\[27\]](https://docs.sqlalchemy.org/en/20/orm/declarative_styles.html#index-0)
[\[28\]](https://docs.sqlalchemy.org/en/20/orm/declarative_tables.html#index-0)
[\[29\]](https://docs.sqlalchemy.org/en/20/orm/declarative_tables.html#index-1)
[\[30\]](https://docs.sqlalchemy.org/en/20/orm/declarative_tables.html#index-11)
[\[31\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#index-0)
[\[32\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#index-1)
[\[33\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#index-2)
[\[34\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#index-3)
[\[35\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#index-4)
[\[36\]](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#index-5)
[\[37\]](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#index-0)
[\[38\]](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#index-0)
[\[39\]](https://docs.sqlalchemy.org/en/20/orm/extensions/mypy.html#index-0)
[\[40\]](https://docs.sqlalchemy.org/en/20/orm/inheritance.html#index-0)
[\[41\]](https://docs.sqlalchemy.org/en/20/orm/internals.html#index-0)
[\[42\]](https://docs.sqlalchemy.org/en/20/orm/internals.html#index-1)
[\[43\]](https://docs.sqlalchemy.org/en/20/orm/internals.html#index-2)
[\[44\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-0)
[\[45\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-1)
[\[46\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-2)
[\[47\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-3)
[\[48\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-4)
[\[49\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-5)
[\[50\]](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#index-6)
[\[51\]](https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html#index-0)
[\[52\]](https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html#index-1)
[\[53\]](https://docs.sqlalchemy.org/en/20/orm/quickstart.html#index-0)
[\[54\]](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#index-0)
[\[55\]](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html#index-0)
[\[56\]](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html#index-1)
[\[57\]](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html#index-2)

[python\_impl (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.python_impl)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.python_impl)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.python_impl)

[python\_type (sqlalchemy.types.Boolean attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Boolean.python_type)

[(sqlalchemy.types.Date attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Date.python_type)

[(sqlalchemy.types.DateTime attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.DateTime.python_type) | Q - | | | | --- | --- | | [Query (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query)

[query (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.query)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.query)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set.params.query)

[query() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.query)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.query)

[query\_cache\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.query_cache_size)

[query\_class (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.query_class)

[query\_cls (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.query_cls)

[query\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.query_expression)

[query\_or\_session (sqlalchemy.ext.baked.BakedQuery.to\_query parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query.params.query_or_session)

[query\_parameters (sqlalchemy.engine.URL.update\_query\_dict parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_dict.params.query_parameters)

[query\_property() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.query_property)

[query\_string (sqlalchemy.engine.URL.update\_query\_string parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_string.params.query_string)

[QueryableAttribute (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute)

[QueryContext (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryContext)

[QueryContext.default\_load\_options (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryContext.default_load_options) | [QueryEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.QueryEvents)

[QueryPropertyDescriptor (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.QueryPropertyDescriptor)

[QueuePool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool)

[quote (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.quote)

[(sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.Index.params.quote)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.quote)

[quote() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote)

[quote\_identifier() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_identifier)

[quote\_schema (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.params.quote_schema)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.quote_schema)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.quote_schema)

[quote\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema)

[quoted\_name (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.quoted_name) | R - | | | | --- | --- | | [raiseerr (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect.params.raiseerr)

[raiseload (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.raiseload)

[(sqlalchemy.orm.defer parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.defer.params.raiseload)

[(sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.deferred.params.raiseload)

[raiseload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.raiseload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.raiseload)

[random (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.random)

[Range (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range)

[range\_ (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over.params.range_)

[rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.rank)

[RAW (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.RAW)

[raw (sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.params.raw)

[(sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.params.raw)

[(sqlalchemy.orm.MapperEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.MapperEvents.params.raw)

[raw\_connection() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.raw_connection)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.raw_connection)

[read (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.read)

[read committed](https://docs.sqlalchemy.org/en/20/glossary.html#term-read-committed)

[read uncommitted](https://docs.sqlalchemy.org/en/20/glossary.html#term-read-uncommitted)

[REAL (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.REAL)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.REAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.REAL)

[reconstructor() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.reconstructor)

[record\_info (sqlalchemy.pool.ConnectionPoolEntry attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.record_info)

[(sqlalchemy.pool.ManagesConnection attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ManagesConnection.record_info)

[(sqlalchemy.pool.PoolProxiedConnection attribute)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.record_info)

[recover (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.recover)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.recover)

[(sqlalchemy.engine.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase.params.recover)

[recreate() (sqlalchemy.pool.AssertionPool method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.AssertionPool.recreate)

[(sqlalchemy.pool.NullPool method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.NullPool.recreate)

[(sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.recreate)

[recursion\_depth (sqlalchemy.orm.immediateload parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.immediateload.params.recursion_depth)

[(sqlalchemy.orm.selectinload parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.selectinload.params.recursion_depth)

[recursive (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.recursive)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.recursive)

[(sqlalchemy.sql.expression.Select.cte parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.cte.params.recursive)

[recycle (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.params.recycle)

[reduce\_columns (sqlalchemy.orm.Query.subquery parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.subquery.params.reduce_columns)

[reduce\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns)

[refcolumns (sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.refcolumns)

[references() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.references)

[(sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.references)

[referred\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.referred_cls)

[referred\_columns (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.referred_columns)

[referred\_schema (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.referred_schema)

[referred\_schema\_fn (sqlalchemy.schema.Table.to\_metadata parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.to_metadata.params.referred_schema_fn)

[referred\_table (sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint.referred_table)

[(sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.referred_table)

[reflect (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflect)

[reflect() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect)

[reflect\_table() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table)

[reflected](https://docs.sqlalchemy.org/en/20/glossary.html#term-reflected)

[ReflectedCheckConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedCheckConstraint)

[ReflectedColumn (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn)

[ReflectedComputed (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedComputed)

[ReflectedForeignKeyConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedForeignKeyConstraint)

[ReflectedIdentity (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity)

[ReflectedIndex (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex)

[ReflectedPrimaryKeyConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedPrimaryKeyConstraint)

[ReflectedTableComment (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedTableComment)

[ReflectedUniqueConstraint (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedUniqueConstraint)

[reflection](https://docs.sqlalchemy.org/en/20/glossary.html#term-reflection)

[reflection\_options (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reflection_options)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.reflection_options)

[(sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflection_options)

[refresh() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.refresh)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.refresh)

[(sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh)

[refresh\_flush() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush)

[REGCLASS (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REGCLASS)

[REGCONFIG (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REGCONFIG)

[regexp (sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.regexp)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.regexp)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.regexp)

[regexp\_match() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_match)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.regexp_match)

[regexp\_replace() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.regexp_replace)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_replace)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.regexp_replace)

[register\_function() (in module sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.register_function)

[registry](https://docs.sqlalchemy.org/en/20/glossary.html#term-registry)

[(class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry)

[(sqlalchemy.orm.DeclarativeBase attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.registry)

[relational](https://docs.sqlalchemy.org/en/20/glossary.html#term-relational)

[relational algebra](https://docs.sqlalchemy.org/en/20/glossary.html#term-relational-algebra)

[relationship](https://docs.sqlalchemy.org/en/20/glossary.html#term-relationship)

[Relationship (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Relationship)

[relationship() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship)

[RelationshipDirection (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipDirection)

[RelationshipProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty)

[RelationshipProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator)

[relationships](https://docs.sqlalchemy.org/en/20/glossary.html#term-relationships)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.relationships)

[release](https://docs.sqlalchemy.org/en/20/glossary.html#term-release)

[release\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.release_savepoint)

[released](https://docs.sqlalchemy.org/en/20/glossary.html#term-released)

[releases](https://docs.sqlalchemy.org/en/20/glossary.html#term-releases)

[remote() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.remote)

[remote\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.remote_attr)

[remote\_side (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side)

[remove() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.remove)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.remove)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.remove)

[remove\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state)

[remove\_state\_actions() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction.remove_state_actions)

[remover() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.remover)

[removes() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.removes)

[removes\_return() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.removes_return)

[render\_as\_string() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.render_as_string)

[render\_bind\_cast (sqlalchemy.dialects.postgresql.JSON attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.render_bind_cast)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.render_bind_cast)

[RENDER\_CASTS (sqlalchemy.engine.BindTyping attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.BindTyping.RENDER_CASTS)

[render\_derived() (sqlalchemy.sql.expression.TableValuedAlias method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived)

[render\_literal\_cast (sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.render_literal_cast) | [render\_literal\_execute() (sqlalchemy.sql.expression.BindParameter method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.render_literal_execute)

[render\_literal\_value() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_literal_value)

[render\_nulls (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.render_nulls)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.render_nulls)

[render\_table\_with\_column\_in\_update\_from (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_table_with_column_in_update_from)

[reorder() (sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.reorder)

[reorder\_on\_append (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.reorder_on_append)

[repeatable read](https://docs.sqlalchemy.org/en/20/glossary.html#term-repeatable-read)

[replace\_existing (sqlalchemy.schema.Table.append\_column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.append_column.params.replace_existing)

[replace\_selectable() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.replace_selectable)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.replace_selectable)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.replace_selectable)

[replacement\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse)

[replaces() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.collection.replaces)

[repr (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.repr)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.column_property.params.repr)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/20/orm/composites.html#sqlalchemy.orm.composite.params.repr)

[require\_embedded (sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.ColumnCollection.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.CompoundSelect.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column.params.require_embedded)

[required (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.required)

[requires\_name\_normalize (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.requires_name_normalize)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.requires_name_normalize)

[reset() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.reset)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.reset)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.reset)

[reset\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reset_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.reset_isolation_level)

[reset\_joinpoint() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.reset_joinpoint)

[reset\_on\_return (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.params.reset_on_return)

[reset\_state (sqlalchemy.events.PoolEvents.reset parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.reset.params.reset_state)

[resolve\_fks (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.resolve_fks)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.params.resolve_fks)

[ResourceClosedError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ResourceClosedError)

[restore\_load\_context (sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.params.restore_load_context)

[(sqlalchemy.orm.SessionEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.params.restore_load_context)

[Result (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result)

[result (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.result)

[result\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Boolean.result_processor)

[(sqlalchemy.types.Float method)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Float.result_processor)

[RETAIN\_SCHEMA (sqlalchemy.schema.SchemaConst attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.SchemaConst.RETAIN_SCHEMA)

[retrieve\_as\_bitwise (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.retrieve_as_bitwise)

[return\_defaults (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.return_defaults)

[(sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.return_defaults)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.return_defaults)

[return\_defaults() (sqlalchemy.sql.expression.UpdateBase method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase.return_defaults)

[return\_fn (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.return_fn)

[return\_type (sqlalchemy.ext.associationproxy.AssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.op.params.return_type)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.return_type)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.op.params.return_type)

[returned\_defaults (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.returned_defaults)

[returned\_defaults\_rows (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.returned_defaults_rows)

[RETURNING](https://docs.sqlalchemy.org/en/20/glossary.html#term-RETURNING)

[returning (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning)

[returning() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete.returning)

[(sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.returning)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update.returning)

[returning\_column\_descriptions (sqlalchemy.sql.expression.UpdateBase attribute)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase.returning_column_descriptions)

[returning\_precedes\_values (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning_precedes_values)

[returns\_native\_bytes (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.returns_native_bytes)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.returns_native_bytes)

[returns\_rows (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.returns_rows)

[ReturnsRows (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ReturnsRows)

[retval (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/20/core/event.html#sqlalchemy.event.listen.params.retval)

[(sqlalchemy.events.ConnectionEvents parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.params.retval)

[(sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.params.retval)

[reverse() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.reverse)

[reverse\_operate() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.reverse_operate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.reverse_operate)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.reverse_operate)

[right (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.join.params.right)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.right)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.right)

[right\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.right_index)

[rollback() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.rollback)

[(sqlalchemy.engine.interfaces.DBAPIConnection method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection.rollback)

[(sqlalchemy.engine.NestedTransaction method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.NestedTransaction.rollback)

[rollback\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_savepoint)

[rollback\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_twophase)

[rollup (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.rollup)

[root\_connection (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.root_connection)

[(sqlalchemy.engine.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext.root_connection)

[RootTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.RootTransaction)

[Row (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row)

[row (sqlalchemy.orm.Mapper.identity\_key\_from\_row parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row.params.row)

[rowcount (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.rowcount)

[(sqlalchemy.engine.interfaces.DBAPICursor attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.rowcount)

[ROWID (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.ROWID)

[RowMapping (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.RowMapping)

[rows (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over.params.rows)

[ROWVERSION (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION)

[run\_async() (sqlalchemy.engine.AdaptedConnection method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.AdaptedConnection.run_async)

[run\_sync() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.run_sync)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.run_sync) | S - | | | | --- | --- | | [SADeprecationWarning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning)

[sampling (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.sampling)

[SAPendingDeprecationWarning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning)

[SATestSuiteWarning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SATestSuiteWarning)

[savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.savepoint)

[SAWarning](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SAWarning)

[scalar (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.scalar)

[scalar subquery](https://docs.sqlalchemy.org/en/20/glossary.html#term-scalar-subquery)

[scalar() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.scalar)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.scalar)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.scalar)

[scalar\_one() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.scalar_one)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.scalar_one)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.scalar_one)

[scalar\_one\_or\_none() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.scalar_one_or_none)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.scalar_one_or_none)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.scalar_one_or_none)

[scalar\_subquery() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.scalar_subquery)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.scalar_subquery)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.scalar_subquery)

[scalar\_table\_valued() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued)

[scalar\_values() (sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Values.scalar_values)

[ScalarResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ScalarResult)

[scalars() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.scalars)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.scalars)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.scalars)

[ScalarSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect)

[ScalarValues (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarValues)

[scale (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.scale)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.scale)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.scale)

[schema (sqlalchemy.dialects.postgresql.base.PGInspector.get\_domains parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_domains.params.schema)

[(sqlalchemy.dialects.postgresql.base.PGInspector.get\_enums parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums.params.schema)

[(sqlalchemy.dialects.postgresql.base.PGInspector.get\_table\_oid parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid.params.schema)

[schema\_for\_object (sqlalchemy.sql.compiler.IdentifierPreparer attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.schema_for_object)

[schema\_for\_object() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.schema_for_object)

[schema\_name (sqlalchemy.engine.reflection.Inspector.has\_schema parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_schema.params.schema_name)

[schema\_translate\_map (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.params.schema_translate_map)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map)

[(sqlalchemy.sql.compiler.DDLCompiler parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.params.schema_translate_map)

[SchemaConst (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.SchemaConst)

[SchemaEventTarget (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.SchemaEventTarget)

[SchemaItem (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.SchemaItem)

[SchemaType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.SchemaType)

[scope (sqlalchemy.engine.reflection.Inspector.get\_multi\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_check_constraints.params.scope)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_columns.params.scope)

[(sqlalchemy.engine.reflection.Inspector.get\_multi\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_multi_foreign_keys.params.scope)

[scoped\_session (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session)

[ScopedRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ScopedRegistry)

[scopefunc (sqlalchemy.ext.asyncio.async\_scoped\_session parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.params.scopefunc)

[(sqlalchemy.orm.scoped\_session parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.params.scopefunc)

[(sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)
[\[0\]](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)

[second\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.second_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Interval.params.second_precision)

[secondary (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondary)

[secondaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondaryjoin)

[seed (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.seed)

[Select (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select)

[select (sqlalchemy.sql.expression.Insert attribute)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.select)

[(sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.select)

[(sqlalchemy.sql.expression.ValuesBase attribute)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.ValuesBase.select)

[select() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.select)

[(sqlalchemy.orm.WriteOnlyCollection method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.WriteOnlyCollection.select)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.select)

[select\_from() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.select_from)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Exists.select_from)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.select_from)

[selectable](https://docs.sqlalchemy.org/en/20/glossary.html#term-selectable)

[Selectable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Selectable)

[selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.selectable)

[(sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.selectable)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic.params.selectable)

[SelectBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectBase)

[selected\_columns (sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.selected_columns)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.selected_columns)

[(sqlalchemy.sql.expression.SelectBase attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectBase.selected_columns)

[selectin\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.selectin_polymorphic)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.selectin_polymorphic)

[selectinload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.selectinload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.selectinload)

[SelectLabelStyle (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle)

[self\_and\_descendants (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.self_and_descendants)

[self\_group() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.self_group)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.self_group)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group)

[sentinel](https://docs.sqlalchemy.org/en/20/glossary.html#term-sentinel)

[Sequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence)

[sequence\_name (sqlalchemy.engine.reflection.Inspector.has\_sequence parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_sequence.params.sequence_name)

[sequences\_optional (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.sequences_optional)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.sequences_optional)

[serializable](https://docs.sqlalchemy.org/en/20/glossary.html#term-serializable)

[Serializer (class in sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Serializer)

[server\_default (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.server_default)

[server\_onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.server_onupdate)

[server\_side\_cursors (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.server_side_cursors)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.server_side_cursors)

[server\_version\_info (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.server_version_info)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.server_version_info)

[Session](https://docs.sqlalchemy.org/en/20/glossary.html#term-Session)

[(class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session)

[session (sqlalchemy.ext.asyncio.async\_session parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_session.params.session)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.session)

[(sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session)

[session\_factory (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.session_factory)

[(sqlalchemy.ext.asyncio.async\_scoped\_session parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.params.session_factory)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.session_factory)

[session\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.session_user)

[SessionEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents)

[sessionmaker (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.sessionmaker)

[SessionTransaction (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransaction)

[SessionTransactionOrigin (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin)

[SET (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.SET)

[set() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.set)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.set)

[set\_ (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.set_)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update.params.set_)

[set\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute)

[set\_committed\_value() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value)

[set\_connection\_execution\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_connection_execution_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.set_connection_execution_options)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options)

[set\_engine\_execution\_options() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_engine_execution_options)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.set_engine_execution_options)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options)

[set\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.set_isolation_level)

[set\_label\_style() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.set_label_style)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.set_label_style)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.set_label_style)

[set\_parent() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.set_parent)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.SynonymProperty.set_parent)

[set\_shard() (sqlalchemy.ext.horizontal\_shard.ShardedQuery method)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard)

[set\_shard\_id (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id)

[setdefault() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.setdefault)

[(sqlalchemy.orm.KeyFuncDict method)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.KeyFuncDict.setdefault)

[SETINPUTSIZES (sqlalchemy.engine.BindTyping attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.BindTyping.SETINPUTSIZES)

[setinputsizes() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.setinputsizes)

[setoutputsize() (sqlalchemy.engine.interfaces.DBAPICursor method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor.setoutputsize)

[setter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.setter)

[setup() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty.setup)

[shard\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shard_chooser)

[shard\_id (sqlalchemy.ext.horizontal\_shard.set\_shard\_id parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.set_shard_id.params.shard_id)

[ShardedQuery (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery)

[ShardedSession (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession)

[shards (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shards)

[shares\_lineage() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.shares_lineage)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.shares_lineage)

[should\_evaluate\_none (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none)

[single (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.single)

[single\_entity (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.single_entity)

[(sqlalchemy.orm.Bundle parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.Bundle.params.single_entity)

[single\_parent (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.single_parent)

[SingletonThreadPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.SingletonThreadPool)

[size (sqlalchemy.engine.CursorResult.partitions parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.partitions.params.size)

[(sqlalchemy.engine.Result.partitions parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.partitions.params.size)

[skip\_autocommit\_rollback (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.skip_autocommit_rollback)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.skip_autocommit_rollback)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.skip_autocommit_rollback)

[skip\_fn (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.sort_tables.params.skip_fn)

[skip\_locked (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.skip_locked)

[slice() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.slice)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.slice)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.slice)

[SMALLDATETIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME)

[SMALLINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.SMALLINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.SMALLINT)

[SmallInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.SmallInteger)

[SMALLMONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLMONEY)

[soft (sqlalchemy.pool.ConnectionPoolEntry.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ConnectionPoolEntry.invalidate.params.soft)

[(sqlalchemy.pool.ManagesConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.ManagesConnection.invalidate.params.soft)

[(sqlalchemy.pool.PoolProxiedConnection.invalidate parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.PoolProxiedConnection.invalidate.params.soft) | [soft\_invalidate() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate)

[sort() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.sort)

[sort\_by\_parameter\_order (sqlalchemy.sql.expression.Delete.returning parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete.returning.params.sort_by_parameter_order)

[(sqlalchemy.sql.expression.Insert.returning parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.returning.params.sort_by_parameter_order)

[(sqlalchemy.sql.expression.Update.returning parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update.returning.params.sort_by_parameter_order)

[sort\_key\_function (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.sort_key_function)

[(sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function)

[sort\_order (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.sort_order)

[sort\_tables() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.sort_tables)

[sort\_tables\_and\_constraints() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints)

[sort\_tables\_on\_foreign\_key\_dependency() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.sort_tables_on_foreign_key_dependency)

[sorted\_tables (sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.sorted_tables)

[SPARSE (sqlalchemy.dialects.oracle.VectorStorageType attribute)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageType.SPARSE)

[SparseVector (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.SparseVector)

[splice\_horizontally() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.splice_horizontally)

[splice\_vertically() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.splice_vertically)

[spoil() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil)

[(sqlalchemy.sql.expression.StatementLambdaElement method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil)

[sql\_compiler (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.sql_compiler)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.sql_compiler)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.sql_compiler)

[sql\_only (sqlalchemy.orm.raiseload parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.raiseload.params.sql_only)

[SQL\_VARIANT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.SQL_VARIANT)

sqlalchemy.dialects.mssql.aioodbc

[module](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#module-sqlalchemy.dialects.mssql.aioodbc)

sqlalchemy.dialects.mssql.base

[module](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#module-sqlalchemy.dialects.mssql.base)

sqlalchemy.dialects.mssql.pymssql

[module](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pymssql)

sqlalchemy.dialects.mssql.pyodbc

[module](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pyodbc)

sqlalchemy.dialects.mysql.aiomysql

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.aiomysql)

sqlalchemy.dialects.mysql.asyncmy

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.asyncmy)

sqlalchemy.dialects.mysql.base

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.base)

sqlalchemy.dialects.mysql.cymysql

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.cymysql)

sqlalchemy.dialects.mysql.mariadbconnector

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mariadbconnector)

sqlalchemy.dialects.mysql.mysqlconnector

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector)

sqlalchemy.dialects.mysql.mysqldb

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqldb)

sqlalchemy.dialects.mysql.pymysql

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pymysql)

sqlalchemy.dialects.mysql.pyodbc

[module](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pyodbc)

sqlalchemy.dialects.oracle.base

[module](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#module-sqlalchemy.dialects.oracle.base)

sqlalchemy.dialects.oracle.cx\_oracle

[module](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#module-sqlalchemy.dialects.oracle.cx_oracle)

sqlalchemy.dialects.oracle.oracledb

[module](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#module-sqlalchemy.dialects.oracle.oracledb)

sqlalchemy.dialects.postgresql.asyncpg

[module](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.asyncpg)

sqlalchemy.dialects.postgresql.base

[module](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.base)

sqlalchemy.dialects.postgresql.pg8000

[module](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pg8000)

sqlalchemy.dialects.postgresql.psycopg

[module](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg)

sqlalchemy.dialects.postgresql.psycopg2

[module](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2)

sqlalchemy.dialects.postgresql.psycopg2cffi

[module](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2cffi)

sqlalchemy.dialects.sqlite

[module](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite)

sqlalchemy.dialects.sqlite.aiosqlite

[module](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.aiosqlite)

sqlalchemy.dialects.sqlite.base

[module](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.base)

sqlalchemy.dialects.sqlite.pysqlcipher

[module](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlcipher)

sqlalchemy.dialects.sqlite.pysqlite

[module](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlite)

sqlalchemy.engine

[module](https://docs.sqlalchemy.org/en/20/core/connections.html#module-sqlalchemy.engine)

sqlalchemy.exc

[module](https://docs.sqlalchemy.org/en/20/core/exceptions.html#module-sqlalchemy.exc)

sqlalchemy.ext.associationproxy

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy)

sqlalchemy.ext.automap

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#module-sqlalchemy.ext.automap)

sqlalchemy.ext.baked

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#module-sqlalchemy.ext.baked)

sqlalchemy.ext.compiler

[module](https://docs.sqlalchemy.org/en/20/core/compiler.html#module-sqlalchemy.ext.compiler)

sqlalchemy.ext.declarative

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/api.html#module-sqlalchemy.ext.declarative)

sqlalchemy.ext.horizontal\_shard

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/horizontal_shard.html#module-sqlalchemy.ext.horizontal_shard)

sqlalchemy.ext.hybrid

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#module-sqlalchemy.ext.hybrid)

sqlalchemy.ext.indexable

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable)

sqlalchemy.ext.instrumentation

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation)

sqlalchemy.ext.mutable

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#module-sqlalchemy.ext.mutable)

sqlalchemy.ext.orderinglist

[module](https://docs.sqlalchemy.org/en/20/orm/extensions/orderinglist.html#module-sqlalchemy.ext.orderinglist)

sqlalchemy.ext.serializer

[module](https://docs.sqlalchemy.org/en/20/core/serializer.html#module-sqlalchemy.ext.serializer)

sqlalchemy.inspection

[module](https://docs.sqlalchemy.org/en/20/core/inspection.html#module-sqlalchemy.inspection)

sqlalchemy.orm.exc

[module](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#module-sqlalchemy.orm.exc)

sqlalchemy.orm.instrumentation

[module](https://docs.sqlalchemy.org/en/20/orm/events.html#module-sqlalchemy.orm.instrumentation)

sqlalchemy.orm.session

[module](https://docs.sqlalchemy.org/en/20/orm/session.html#module-sqlalchemy.orm.session)

sqlalchemy.pool

[module](https://docs.sqlalchemy.org/en/20/core/pooling.html#module-sqlalchemy.pool)

sqlalchemy.schema

[module](https://docs.sqlalchemy.org/en/20/core/metadata.html#module-sqlalchemy.schema)

sqlalchemy.sql.expression

[module](https://docs.sqlalchemy.org/en/20/core/expression_api.html#module-sqlalchemy.sql.expression)

sqlalchemy.sql.visitors

[module](https://docs.sqlalchemy.org/en/20/core/visitors.html#module-sqlalchemy.sql.visitors)

sqlalchemy.types

[module](https://docs.sqlalchemy.org/en/20/core/type_basics.html#module-sqlalchemy.types)

[sqlalchemy\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ExceptionContext.sqlalchemy_exception)

[SQLAlchemyError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError)

[SQLColumnExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.SQLColumnExpression)

[SQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler)

[SQLORMExpression (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.SQLORMExpression)

[sqltext (sqlalchemy.engine.interfaces.ReflectedCheckConstraint attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedCheckConstraint.sqltext)

[(sqlalchemy.engine.interfaces.ReflectedComputed attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedComputed.sqltext)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.sqltext)

[stack (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.stack)

[StaleDataError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError)

[start (sqlalchemy.engine.interfaces.ReflectedIdentity attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIdentity.start)

[(sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Identity.params.start)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/20/core/defaults.html#sqlalchemy.schema.Sequence.params.start)

[start() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.start)

[(sqlalchemy.ext.asyncio.AsyncTransaction method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTransaction.start)

[startswith() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.startswith)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.startswith)

[state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.state)

[(sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.state)

[(sqlalchemy.schema.CheckConstraint.ddl\_if parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.CheckConstraint.ddl_if.params.state)

[state\_dict (sqlalchemy.orm.InstanceEvents.pickle parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.pickle.params.state_dict)

[(sqlalchemy.orm.InstanceEvents.unpickle parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.unpickle.params.state_dict)

[state\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager.state_getter)

[statement (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.statement)

[(sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.params.statement)

[(sqlalchemy.engine.Connection.exec\_driver\_sql parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql.params.statement)

[statement\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.statement_compiler)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.statement_compiler)

[StatementError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.StatementError)

[StatementLambdaElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement)

[StaticPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.StaticPool)

[status() (sqlalchemy.pool.AssertionPool method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.AssertionPool.status)

[(sqlalchemy.pool.NullPool method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.NullPool.status)

[(sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.Pool.status)

[storage\_format (sqlalchemy.dialects.oracle.VECTOR parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR.params.storage_format)

[(sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.storage_format)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.storage_format)

[storage\_type (sqlalchemy.dialects.oracle.VECTOR parameter)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR.params.storage_type)

[strategy (sqlalchemy.engine.CursorResult.unique parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.unique.params.strategy)

[(sqlalchemy.engine.Result.unique parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.unique.params.strategy)

[stream() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.stream)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.stream)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.stream)

[stream\_results (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.stream_results)

[stream\_scalars() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.stream_scalars)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.stream_scalars)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.stream_scalars)

[strict (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.strict)

[strict\_attrs (sqlalchemy.ext.declarative.AbstractConcreteBase parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.AbstractConcreteBase.params.strict_attrs)

[strictly\_left\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.strictly_left_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.strictly_left_of)

[strictly\_right\_of() (sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.strictly_right_of)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.strictly_right_of)

[String (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.String)

[string (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled.string)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.string)

[stringify\_dialect (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.stringify_dialect)

[StrSQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler)

[subject (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect.params.subject)

[subquery](https://docs.sqlalchemy.org/en/20/glossary.html#term-subquery)

[Subquery (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Subquery)

[subquery() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.subquery)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.subquery)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.subquery)

[subqueryload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.subqueryload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.subqueryload)

[SUBTRANSACTION (sqlalchemy.orm.SessionTransactionOrigin attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.SessionTransactionOrigin.SUBTRANSACTION)

[suffix\_with() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.suffix_with)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.suffix_with)

[(sqlalchemy.sql.expression.HasSuffixes method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes.suffix_with)

[sum (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.sum)

[sum() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.sum)

[supplemental\_cols (sqlalchemy.sql.expression.UpdateBase.return\_defaults parameter)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase.return_defaults.params.supplemental_cols)

[Supported version](https://docs.sqlalchemy.org/en/20/dialects/index.html#term-Supported-version)

[supports\_alter (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_alter)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_alter)

[supports\_comments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_comments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_comments)

[supports\_constraint\_comments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_constraint_comments)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_constraint_comments)

[supports\_default\_metavalue (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_default_metavalue)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_default_metavalue)

[supports\_default\_values (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_default_values)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_default_values)

[supports\_empty\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_empty_insert)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_empty_insert)

[supports\_execution (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.supports_execution)

[supports\_identity\_columns (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_identity_columns)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_identity_columns)

[supports\_multivalues\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_multivalues_insert)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_multivalues_insert)

[supports\_native\_boolean (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_boolean)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_native_boolean)

[supports\_native\_decimal (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_decimal)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_native_decimal)

[supports\_native\_enum (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_enum)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_native_enum)

[supports\_native\_uuid (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_native_uuid)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_native_uuid)

[supports\_sane\_multi\_rowcount (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_multi_rowcount)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_sane_multi_rowcount)

[supports\_sane\_multi\_rowcount() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.supports_sane_multi_rowcount)

[supports\_sane\_rowcount (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_rowcount)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_sane_rowcount)

[supports\_sane\_rowcount() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.supports_sane_rowcount)

[supports\_sane\_rowcount\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_rowcount_returning)

[supports\_sequences (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sequences)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_sequences)

[supports\_server\_side\_cursors (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_server_side_cursors)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_server_side_cursors)

[supports\_simple\_order\_by\_label (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_simple_order_by_label)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_simple_order_by_label)

[supports\_statement\_cache (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_statement_cache)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.supports_statement_cache)

[symmetric (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.between.params.symmetric)

[symmetric\_difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.symmetric_difference_update)

[sync\_backref (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.sync_backref)

[sync\_connection (sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.sync_connection)

[sync\_engine (sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.sync_engine)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.sync_engine)

[sync\_session (sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.sync_session)

[sync\_session\_class (sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.sync_session_class)

[(sqlalchemy.ext.asyncio.AsyncSession parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.params.sync_session_class)

[synchronize\_session (sqlalchemy.orm.Query.delete parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.delete.params.synchronize_session)

[(sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.update.params.synchronize_session)

[Synonym (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.Synonym)

[synonym() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.synonym)

[synonym\_for() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.synonym_for)

[SynonymProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.SynonymProperty)

[synonyms (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.synonyms)

[sysdate (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.sysdate)

[system (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.system) | T - | | | | --- | --- | | [t (sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.t)

[(sqlalchemy.engine.Result attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.t)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row.t)

[Table (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table)

[table (sqlalchemy.engine.reflection.Inspector.reflect\_table parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table.params.table)

[(sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.table)

[(sqlalchemy.orm.Session.bind\_table parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bind_table.params.table)

[table metadata](https://docs.sqlalchemy.org/en/20/glossary.html#term-table-metadata)

[table() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.table)

[table\_map (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.table_map)

[table\_name (sqlalchemy.dialects.postgresql.base.PGInspector.get\_table\_oid parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_columns parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns.params.table_name)

[table\_valued() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.table_valued)

[(sqlalchemy.sql.expression.TableClause method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableClause.table_valued)

[(sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Values.table_valued)

[TableClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableClause)

[tablename (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.tablename)

[tables (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.tables)

[(sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.tables)

[(sqlalchemy.schema.MetaData.create\_all parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.create_all.params.tables)

[TableSample (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableSample)

[tablesample() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.tablesample)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.tablesample)

[(sqlalchemy.sql.expression.FromClause method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause.tablesample)

[TableValuedAlias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias)

[target (sqlalchemy.events.DDLEvents.after\_create parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_create.params.target)

[(sqlalchemy.events.DDLEvents.after\_drop parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_drop.params.target)

[(sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.target)

[target\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.target_class)

[target\_collection (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.target_collection)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.target_collection)

[target\_fullname (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.target_fullname)

[terminate\_only (sqlalchemy.events.PoolResetState attribute)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolResetState.terminate_only)

[TEXT (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.TEXT)

[Text (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Text)

[text (sqlalchemy.engine.interfaces.ReflectedTableComment attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedTableComment.text)

[(sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.column.params.text)

[(sqlalchemy.sql.expression.literal\_column parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.literal_column.params.text)

[text() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text)

[text\_type (sqlalchemy.dialects.postgresql.HSTORE parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.params.text_type)

[TextClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TextClause)

[TextualSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TextualSelect)

thread safety

[Connection](https://docs.sqlalchemy.org/en/20/core/connections.html#index-0)

[Transaction](https://docs.sqlalchemy.org/en/20/core/connections.html#index-2)

[ThreadLocalRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.util.ThreadLocalRegistry)

[TIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.TIME)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TIME)

[Time (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Time)

[timeout (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.timeout)

[TimeoutError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.TimeoutError)

[TIMESTAMP (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP)

[(class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.TIMESTAMP) | [timetuple (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.timetuple)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.timetuple)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.timetuple)

[timezone (sqlalchemy.dialects.mssql.SMALLDATETIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.timezone)

[TINYBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYBLOB)

[TINYINT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.TINYINT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYINT)

[TINYTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYTEXT)

[to\_metadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.to_metadata)

[to\_offline\_string() (sqlalchemy.sql.expression.CacheKey method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string)

[to\_query() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query)

[to\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.to_tsquery)

[to\_tsvector (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.to_tsvector)

[tometadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.tometadata)

[track\_bound\_values (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.track_bound_values)

[track\_closure\_variables (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.track_closure_variables)

[(sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.track_closure_variables)

[Transaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Transaction)

[transaction (sqlalchemy.orm.SessionEvents.after\_begin parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin.params.transaction)

[(sqlalchemy.orm.SessionEvents.after\_transaction\_create parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create.params.transaction)

[(sqlalchemy.orm.SessionEvents.after\_transaction\_end parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_end.params.transaction)

[transaction\_was\_reset (sqlalchemy.events.PoolResetState attribute)](https://docs.sqlalchemy.org/en/20/core/events.html#sqlalchemy.events.PoolResetState.transaction_was_reset)

[transient](https://docs.sqlalchemy.org/en/20/glossary.html#term-transient)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.transient)

[transient\_to\_pending() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.transient_to_pending)

[translate\_connect\_args() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.translate_connect_args)

[translate\_select\_structure (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.translate_select_structure)

[traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse)

[(sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse)

[traverse\_using() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse_using)

[true() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.true)

[True\_ (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.True_)

[truncate\_microseconds (sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.truncate_microseconds)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.truncate_microseconds)

[try\_cast() (in module sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.try_cast)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.try_cast)

[TryCast (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TryCast)

[ts\_headline (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ts_headline)

[TSMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSMULTIRANGE)

[TSQUERY (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSQUERY)

[TSRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSRANGE)

[TSTZMULTIRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSTZMULTIRANGE)

[TSTZRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSTZRANGE)

[TSVECTOR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSVECTOR)

[Tuple (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Tuple)

[tuple() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row.tuple)

[tuple\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.tuple_)

[tuple\_in\_values (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.tuple_in_values)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.tuple_in_values)

[TupleResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.TupleResult)

[tuples() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.tuples)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.tuples)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.tuples)

[twophase (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.params.twophase)

[TwoPhaseTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction)

[type (sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.type)

[(sqlalchemy.engine.interfaces.ReflectedColumn attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedColumn.type)

[(sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.column.params.type)

[type\_ (sqlalchemy.dialects.postgresql.array parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array.params.type_)

[(sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.type_)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.type_)

[type\_annotation\_map (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.type_annotation_map)

[(sqlalchemy.orm.DeclarativeBase parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.DeclarativeBase.params.type_annotation_map)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.params.type_annotation_map)

[type\_coerce() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.type_coerce)

[type\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.type_compiler)

[type\_compiler\_cls (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler_cls)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.type_compiler_cls)

[type\_compiler\_instance (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler_instance)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.type_compiler_instance)

[type\_descriptor() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_descriptor)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.type_descriptor)

[type\_engine() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine)

[type\_name (sqlalchemy.dialects.postgresql.base.PGInspector.has\_type parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.has_type.params.type_name)

[TypeCoerce (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TypeCoerce)

[typecolname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.typecolname)

[TypeDecorator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator)

[TypeDecorator.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator)

[TypeEngine (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine)

[TypeEngine.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator) | U - | | | | --- | --- | | [UnaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.UnaryExpression)

[UnboundExecutionError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError)

[unchanged (sqlalchemy.orm.attributes.History attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History.unchanged)

[undefer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.undefer)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.undefer)

[undefer\_group() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.undefer_group)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.undefer_group)

[unformat\_identifiers() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.unformat_identifiers)

[Unicode (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Unicode)

[unicode (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.unicode)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.unicode)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.unicode)

[UnicodeText (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.UnicodeText)

[uninstall\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor)

[uninstall\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member)

[union() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.union)

[(sqlalchemy.dialects.postgresql.AbstractRange.comparator\_factory method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.AbstractRange.comparator_factory.union)

[(sqlalchemy.dialects.postgresql.Range method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.union)

[union\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.union_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.union_all)

[(sqlalchemy.sql.expression.CTE method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CTE.union_all)

[unique (sqlalchemy.engine.interfaces.ReflectedIndex attribute)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.interfaces.ReflectedIndex.unique)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.unique)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.params.unique)

[unique constraint](https://docs.sqlalchemy.org/en/20/glossary.html#term-unique-constraint)

[unique key index](https://docs.sqlalchemy.org/en/20/glossary.html#term-unique-key-index)

[unique() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.unique)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult.unique)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.unique)

[unique\_params() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column.unique_params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table.unique_params)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params)

[UniqueConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.UniqueConstraint)

[UNIQUEIDENTIFIER (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER)

[unit of work](https://docs.sqlalchemy.org/en/20/glossary.html#term-unit-of-work)

[unloaded (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.unloaded)

[unloaded\_expirable (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.unloaded_expirable)

[UnmappedClassError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError)

[UnmappedColumnError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError)

[UnmappedError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError)

[UnmappedInstanceError](https://docs.sqlalchemy.org/en/20/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError)

[unmodified (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.unmodified)

[unmodified\_intersection() (sqlalchemy.orm.InstanceState method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.unmodified_intersection)

[unpickle() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.InstanceEvents.unpickle)

[UnreflectableTableError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnreflectableTableError)

[unregister() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/20/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ClassManager.unregister)

[unsigned (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.unsigned)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.unsigned)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.unsigned) | [UnsupportedCompilationError](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnsupportedCompilationError)

[UOWTransaction (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction)

[Update (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update)

[update() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.update)

[(sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.update)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.update)

[update\_args (sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.update.params.update_args)

[update\_changed\_only (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.update_changed_only)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.update_changed_only)

[update\_context (sqlalchemy.orm.QueryEvents.before\_compile\_update parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update.params.update_context)

[(sqlalchemy.orm.SessionEvents.after\_bulk\_update parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_update.params.update_context)

[update\_delete\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options)

[update\_executemany\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.update_executemany_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.update_executemany_returning)

[update\_execution\_options() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.update_execution_options)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.update_execution_options)

[(sqlalchemy.orm.ORMExecuteState method)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_execution_options)

[update\_expression() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/20/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.update_expression)

[update\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.update_from_clause)

[update\_limit\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_limit_clause)

[update\_prefetch (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_prefetch)

[update\_query\_dict() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_dict)

[update\_query\_pairs() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_pairs)

[update\_query\_string() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.update_query_string)

[update\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.update_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.update_returning)

[update\_returning\_multifrom (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.update_returning_multifrom)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.update_returning_multifrom)

[update\_tables\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_tables_clause)

[update\_type\_annotation\_map() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.registry.update_type_annotation_map)

[update\_url() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.update_url)

[UpdateBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase)

[upper (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.upper)

[(sqlalchemy.dialects.postgresql.Range parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.params.upper)

[upper\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.between.params.upper_bound)

[upper\_inc (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.upper_inc)

[upper\_inf (sqlalchemy.dialects.postgresql.Range attribute)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Range.upper_inf)

[URL (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL)

[url (sqlalchemy.create\_mock\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_mock_engine.params.url)

[(sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.url)

[(sqlalchemy.engine.default.DefaultDialect.create\_connect\_args parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args.params.url)

[use\_alter (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKey.params.use_alter)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/20/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.use_alter)

[use\_existing\_column (sqlalchemy.orm.mapped\_column parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.mapped_column.params.use_existing_column)

[use\_insertmanyvalues (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.create_engine.params.use_insertmanyvalues)

[(sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.use_insertmanyvalues)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.use_insertmanyvalues)

[use\_insertmanyvalues\_wo\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.use_insertmanyvalues_wo_returning)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.use_insertmanyvalues_wo_returning)

[use\_lifo (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/20/core/pooling.html#sqlalchemy.pool.QueuePool.params.use_lifo)

[uselist (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.uselist)

[user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.user)

[user\_defined\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options)

[UserDefinedType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/custom_types.html#sqlalchemy.types.UserDefinedType)

[username (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.username)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.create.params.username)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL.set.params.username)

[uses\_inspection (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.uses_inspection)

[uses\_objects (sqlalchemy.orm.SynonymProperty attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.SynonymProperty.uses_objects)

[using (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.using)

[UUID (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.UUID)

[Uuid (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Uuid) | V - | | | | --- | --- | | [validate\_identifier() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.validate_identifier)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect.validate_identifier)

[validate\_sql\_phrase() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.validate_sql_phrase)

[validate\_strings (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.validate_strings)

[validates() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/mapped_attributes.html#sqlalchemy.orm.validates)

[validators (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.validators)

[vals() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.vals)

[value (sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.value)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/20/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.value)

[(sqlalchemy.orm.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/20/orm/events.html#sqlalchemy.orm.AttributeEvents.append.params.value)

[value() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.value)

[value\_attr (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/20/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.value_attr)

[Values (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Values)

[values (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.values)

[(sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/20/orm/collection_api.html#sqlalchemy.orm.collections.bulk_replace.params.values)

[(sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.update.params.values)

[values() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.values)

[(sqlalchemy.engine.RowMapping method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.RowMapping.values)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.values) | [values\_callable (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.Enum.params.values_callable)

[ValuesBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.ValuesBase)

[VARBINARY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.VARBINARY)

[VARCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.VARCHAR)

[Variant (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Variant)

[VECTOR (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VECTOR)

[VectorDistanceType (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorDistanceType)

[VectorIndexConfig (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexConfig)

[VectorIndexType (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorIndexType)

[VectorStorageFormat (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageFormat)

[VectorStorageType (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/20/dialects/oracle.html#sqlalchemy.dialects.oracle.VectorStorageType)

[version id column](https://docs.sqlalchemy.org/en/20/glossary.html#term-version-id-column)

[version\_id\_col (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.version_id_col)

[version\_id\_generator (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.version_id_generator)

[view\_name (sqlalchemy.engine.reflection.Inspector.get\_view\_definition parameter)](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_definition.params.view_name)

[viewonly (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/20/orm/relationship_api.html#sqlalchemy.orm.relationship.params.viewonly)

[views (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.views)

[visit\_override\_binds() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.visit_override_binds)

[Visitable (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.Visitable)

[visitor\_iterator (sqlalchemy.sql.visitors.ExternalTraversal attribute)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator)

[visitors (sqlalchemy.sql.visitors.traverse parameter)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.visitors)

[(sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.visitors) | W - | | | | --- | --- | | [was\_already\_deleted() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.UOWTransaction.was_already_deleted)

[was\_deleted (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState.was_deleted)

[was\_deleted() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.util.was_deleted)

[websearch\_to\_tsquery (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.websearch_to_tsquery)

[where (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.where)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/20/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update.params.where)

[WHERE clause](https://docs.sqlalchemy.org/en/20/glossary.html#term-WHERE-clause)

[where() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.where)

[(sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete.where)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Exists.where)

[where\_criteria (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria.params.where_criteria)

[whereclause (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.whereclause)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.whereclause)

[with\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/20/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.with_criteria)

[with\_dialect\_options() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete.with_dialect_options)

[(sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.with_dialect_options)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update.with_dialect_options)

[with\_entities() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_entities)

[with\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/columns.html#sqlalchemy.orm.with_expression)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/relationships.html#sqlalchemy.orm.Load.with_expression)

[with\_for\_update (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.with_for_update)

[(sqlalchemy.orm.scoped\_session.refresh parameter)](https://docs.sqlalchemy.org/en/20/orm/contextual.html#sqlalchemy.orm.scoped_session.refresh.params.with_for_update)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.get.params.with_for_update)

[with\_for\_update() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_for_update)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update)

[with\_hint() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.with_hint)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_hint) | [with\_labels (sqlalchemy.orm.Query.subquery parameter)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.subquery.params.with_labels)

[with\_labels() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_labels)

[with\_loader\_criteria() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_loader_criteria)

[with\_only\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns)

[with\_ordinality (sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.with_ordinality)

[with\_parent() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.with_parent)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_parent)

[with\_polymorphic (sqlalchemy.orm.Mapper parameter)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.with_polymorphic)

[with\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/queryguide/inheritance.html#sqlalchemy.orm.with_polymorphic)

[with\_polymorphic\_mappers (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper.with_polymorphic_mappers)

[with\_query\_expansion (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.with_query_expansion)

[with\_query\_expansion() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.match.with_query_expansion)

[with\_session() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_session)

[with\_statement\_hint() (sqlalchemy.orm.AppenderQuery method)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.AppenderQuery.with_statement_hint)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_statement_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.with_statement_hint)

[with\_ties (sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.with_ties)

[(sqlalchemy.sql.expression.GenerativeSelect.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch.params.with_ties)

[(sqlalchemy.sql.expression.Select.fetch parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select.fetch.params.with_ties)

[with\_transformation() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/20/orm/queryguide/query.html#sqlalchemy.orm.Query.with_transformation)

[with\_types (sqlalchemy.sql.expression.TableValuedAlias.render\_derived parameter)](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived.params.with_types)

[with\_variant() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant)

[(sqlalchemy.types.Variant method)](https://docs.sqlalchemy.org/en/20/core/type_api.html#sqlalchemy.types.Variant.with_variant)

[within\_group() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.within_group)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.within_group)

[(sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group)

[within\_group\_type() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type)

[WithinGroup (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup)

[WrapsColumnExpression (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.elements.WrapsColumnExpression)

[WriteOnlyCollection (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.WriteOnlyCollection)

[WriteOnlyMapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/20/orm/large_collections.html#sqlalchemy.orm.WriteOnlyMapped) | X - | | | | --- | --- | | [xid (sqlalchemy.engine.Connection.begin\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.xid) | [XML (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/20/dialects/mssql.html#sqlalchemy.dialects.mssql.XML) | Y - | | | | --- | --- | | [YEAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.YEAR)

[yield\_per (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.yield_per)

[yield\_per() (sqlalchemy.engine.ChunkedIteratorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult.yield_per)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.CursorResult.yield_per)

[(sqlalchemy.engine.FilterResult method)](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.FilterResult.yield_per) | | Z - | | | | --- | --- | | [zero\_indexes (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.zero_indexes)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/20/core/type_basics.html#sqlalchemy.types.ARRAY.params.zero_indexes)

[zerofill (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.zerofill)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.zerofill)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/20/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.zerofill) | | © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Index — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= Search terms: [Contents](https://docs.sqlalchemy.org/en/14/contents.html) | [Index](https://docs.sqlalchemy.org/en/14/genindex.html#) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Index ===== [**Symbols**](https://docs.sqlalchemy.org/en/14/genindex.html#Symbols) | [**\_**](https://docs.sqlalchemy.org/en/14/genindex.html#_) | [**A**](https://docs.sqlalchemy.org/en/14/genindex.html#A) | [**B**](https://docs.sqlalchemy.org/en/14/genindex.html#B) | [**C**](https://docs.sqlalchemy.org/en/14/genindex.html#C) | [**D**](https://docs.sqlalchemy.org/en/14/genindex.html#D) | [**E**](https://docs.sqlalchemy.org/en/14/genindex.html#E) | [**F**](https://docs.sqlalchemy.org/en/14/genindex.html#F) | [**G**](https://docs.sqlalchemy.org/en/14/genindex.html#G) | [**H**](https://docs.sqlalchemy.org/en/14/genindex.html#H) | [**I**](https://docs.sqlalchemy.org/en/14/genindex.html#I) | [**J**](https://docs.sqlalchemy.org/en/14/genindex.html#J) | [**K**](https://docs.sqlalchemy.org/en/14/genindex.html#K) | [**L**](https://docs.sqlalchemy.org/en/14/genindex.html#L) | [**M**](https://docs.sqlalchemy.org/en/14/genindex.html#M) | [**N**](https://docs.sqlalchemy.org/en/14/genindex.html#N) | [**O**](https://docs.sqlalchemy.org/en/14/genindex.html#O) | [**P**](https://docs.sqlalchemy.org/en/14/genindex.html#P) | [**Q**](https://docs.sqlalchemy.org/en/14/genindex.html#Q) | [**R**](https://docs.sqlalchemy.org/en/14/genindex.html#R) | [**S**](https://docs.sqlalchemy.org/en/14/genindex.html#S) | [**T**](https://docs.sqlalchemy.org/en/14/genindex.html#T) | [**U**](https://docs.sqlalchemy.org/en/14/genindex.html#U) | [**V**](https://docs.sqlalchemy.org/en/14/genindex.html#V) | [**W**](https://docs.sqlalchemy.org/en/14/genindex.html#W) | [**X**](https://docs.sqlalchemy.org/en/14/genindex.html#X) | [**Y**](https://docs.sqlalchemy.org/en/14/genindex.html#Y) | [**Z**](https://docs.sqlalchemy.org/en/14/genindex.html#Z) * * * Symbols ------- | | | | --- | --- | | [\*\*cparams (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.**cparams)

[(sqlalchemy.engine.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.connect.params.**cparams)

[\*\*dialect\_kw (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Constraint.params.**dialect_kw)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.**dialect_kw)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.**dialect_kw)

[\*\*dialect\_kwargs (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.**dialect_kwargs)

[\*\*kw (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.**kw)

[(sqlalchemy.engine.URL.translate\_connect\_args parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.translate_connect_args.params.**kw)

[(sqlalchemy.events.DDLEvents.after\_create parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_create.params.**kw)

[\*\*kwargs (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.**kwargs)

[(sqlalchemy.orm.ColumnProperty.Comparator.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate.params.**kwargs)

[(sqlalchemy.orm.PropComparator.any parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.any.params.**kwargs)

[\*\*types (sqlalchemy.sql.expression.TextClause.columns parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.columns.params.**types)

[\*addl\_attrs (sqlalchemy.orm.defer parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.defer.params.*addl_attrs)

[(sqlalchemy.orm.undefer parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.undefer.params.*addl_attrs)

[\*args (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.*args)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.*args)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.*args) | [\*cargs (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.*cargs)

[(sqlalchemy.engine.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.connect.params.*cargs)

[\*clauses (sqlalchemy.sql.expression.CompoundSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by.params.*clauses)

[(sqlalchemy.sql.expression.CompoundSelect.order\_by parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by.params.*clauses)

[(sqlalchemy.sql.expression.GenerativeSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by.params.*clauses)

[\*col\_expressions (sqlalchemy.engine.CursorResult.columns parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.columns.params.*col_expressions)

[(sqlalchemy.engine.Result.columns parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.columns.params.*col_expressions)

[\*cols (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.*cols)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite.params.*cols)

[(sqlalchemy.sql.expression.TextClause.columns parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.columns.params.*cols)

[\*columns (sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.deferred.params.*columns)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.*columns)

[(sqlalchemy.schema.UniqueConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.UniqueConstraint.params.*columns)

[\*elements (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.*elements)

[\*entities (sqlalchemy.future.select parameter)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.select.params.*entities)

[(sqlalchemy.orm.Query.from\_self parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.from_self.params.*entities)

[(sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select.params.*entities)

[\*enums (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.*enums)

[\*expr (sqlalchemy.orm.Query.distinct parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.distinct.params.*expr)

[(sqlalchemy.orm.Query.prefix\_with parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.prefix_with.params.*expr)

[(sqlalchemy.orm.Query.suffix\_with parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.suffix_with.params.*expr)

[\*expressions (sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Index.params.*expressions)

[\*exprs (sqlalchemy.orm.Bundle parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.params.*exprs)

[\*from\_obj (sqlalchemy.orm.Query.select\_from parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.select_from.params.*from_obj)

[\*fromclauses (sqlalchemy.sql.expression.ScalarSelect.correlate parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate.params.*fromclauses)

[(sqlalchemy.sql.expression.ScalarSelect.correlate\_except parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate_except.params.*fromclauses)

[(sqlalchemy.sql.expression.Select.correlate parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.correlate.params.*fromclauses)

[\*multiparams/\*\*params (sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execute.params.*multiparams/**params)

[\*names (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.*names)

[\*opts (sqlalchemy.orm.Load.options parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.options.params.*opts)
, [\[0\]](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Load.options.params.*opts)

[\*order\_by (sqlalchemy.sql.expression.within\_group parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.within_group.params.*order_by)

[\*other (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.*other)

[(sqlalchemy.orm.ColumnProperty.Comparator.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate.params.*other)

[(sqlalchemy.orm.PropComparator.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.operate.params.*other)

[\*props (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.join.params.*props)

[\*selects (sqlalchemy.sql.expression.except\_ parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.except_.params.*selects)

[(sqlalchemy.sql.expression.except\_all parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.except_all.params.*selects)

[(sqlalchemy.sql.expression.intersect parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.intersect.params.*selects)

[\*whens (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.case.params.*whens)

[1.x style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1.x-style)

[1.x-style](https://docs.sqlalchemy.org/en/14/glossary.html#term-0)

[2.0 style](https://docs.sqlalchemy.org/en/14/glossary.html#term-2.0-style)

[2.0-style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1) | \_ -- | | | | --- | --- | | [\_\_add\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__)

[\_\_and\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__and__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__and__)

[\_\_call\_\_() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.__call__)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.__call__)

[(sqlalchemy.orm.sessionmaker method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__call__)

[\_\_delete\_\_() (sqlalchemy.orm.InstrumentedAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute.__delete__)

[\_\_div\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__div__)

[\_\_eq\_\_() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.__eq__)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.__eq__)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.__eq__)

[\_\_ge\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__ge__)

[\_\_get\_\_() (sqlalchemy.orm.InstrumentedAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute.__get__)

[\_\_getitem\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__getitem__)

[\_\_gt\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__gt__)

[\_\_hash\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__hash__)

[\_\_init\_\_() (sqlalchemy.dialects.mssql.BIT method)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.__init__)

[(sqlalchemy.dialects.mssql.IMAGE method)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.__init__)

[(sqlalchemy.dialects.mssql.JSON method)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON.__init__) | [\_\_invert\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__invert__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__invert__)

[\_\_le\_\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__le__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.__le__)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.__le__)

[\_\_lshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__lshift__)

[\_\_lt\_\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__lt__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.__lt__)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.__lt__)

[\_\_mod\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mod__)

[\_\_mul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mul__)

[\_\_ne\_\_() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.__ne__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__ne__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.__ne__)

[\_\_neg\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__neg__)

[\_\_or\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__or__)

[(sqlalchemy.sql.expression.Operators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__or__)

[\_\_radd\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__radd__)

[\_\_rdiv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rdiv__)

[\_\_rmod\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmod__)

[\_\_rmul\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmul__)

[\_\_rshift\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rshift__)

[\_\_rsub\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rsub__)

[\_\_rtruediv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rtruediv__)

[\_\_set\_\_() (sqlalchemy.orm.InstrumentedAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute.__set__)

[\_\_sub\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__sub__)

[\_\_truediv\_\_() (sqlalchemy.sql.expression.ColumnOperators method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__truediv__)

[\_asdict() (sqlalchemy.engine.Row method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row._asdict)

[\_connection\_record (sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy._connection_record)

[\_ConnectionFairy (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy)

[\_ConnectionRecord (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionRecord)

[\_create\_rule (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Constraint.params._create_rule)

[\_CreateDropBase (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema._CreateDropBase)

[\_fields (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row._fields)

[\_get\_listen\_keys() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._get_listen_keys)

[\_listen\_on\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._listen_on_attribute)

[\_mapping (sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row._mapping)

[\_parents (sqlalchemy.ext.mutable.Mutable attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._parents)

[(sqlalchemy.ext.mutable.MutableBase attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase._parents)

[\_type\_bound (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Constraint.params._type_bound) | A - | | | | --- | --- | | [AbstractConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.AbstractConcreteBase)

[ACID](https://docs.sqlalchemy.org/en/14/glossary.html#term-ACID)

[ACID model](https://docs.sqlalchemy.org/en/14/glossary.html#term-ACID-model)

[active\_history (sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.params.active_history)

[(sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.active_history)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite.params.active_history)

[adapt() (sqlalchemy.types.SchemaType method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.adapt)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.adapt)

[adapt\_on\_names (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.aliased.params.adapt_on_names)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.adapt_on_names)

[adapt\_to\_emulated() (sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated)

[adapt\_to\_entity() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.adapt_to_entity)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.adapt_to_entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.adapt_to_entity)

[AdaptedConnection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.AdaptedConnection)

[adapter (sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.adapter)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.adapter)

[(sqlalchemy.orm.RelationshipProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.adapter)

[add() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.add)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.add)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.add)

[add\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.add_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.add_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.add_all)

[add\_column() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.add_column)

[add\_columns() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.add_columns)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.add_columns)

[add\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.add_criteria)

[(sqlalchemy.sql.expression.StatementLambdaElement method)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria)

[add\_cte() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.add_cte)

[(sqlalchemy.sql.expression.HasCTE method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasCTE.add_cte)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.add_cte)

[add\_entity() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.add_entity)

[add\_is\_dependent\_on() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.add_is_dependent_on)

[add\_properties() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_properties)

[add\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_property)

[AddConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.AddConstraint)

[adds() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.adds)

[adjacent\_to() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.adjacent_to)

[after\_attach() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_attach)

[after\_begin() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin)

[after\_bulk\_delete() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_delete)

[after\_bulk\_update() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_update)

[after\_commit() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_commit)

[after\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_configured)

[after\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_create)

[after\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute)

[after\_delete() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_delete)

[after\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_drop)

[after\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute)

[after\_flush() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush)

[after\_flush\_postexec() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec)

[after\_insert() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_insert)

[after\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach)

[after\_rollback() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_rollback)

[after\_soft\_rollback() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback)

[after\_transaction\_create() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create)

[after\_transaction\_end() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_end)

[after\_update() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_update)

[against (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.against)

[against() (sqlalchemy.schema.DDLElement method)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement.against)

[aggregate\_order\_by (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.aggregate_order_by)

[Alias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Alias)

[alias (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.aliased.params.alias)

[alias() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.alias)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.alias)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.alias)

[aliased (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.join.params.aliased)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.aliased)

[aliased() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.aliased)

[AliasedClass (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.util.AliasedClass)

[AliasedInsp (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.util.AliasedInsp)

[AliasedReturnsRows (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows)

[aliasname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.aliasname)

[All() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.All)

[all() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.all)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.all)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.all)

[all\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.all_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.all_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.all_)

[all\_mappers (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers)

[all\_orm\_descriptors (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.all_orm_descriptors)

[allow\_partial\_pks (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.allow_partial_pks)

[allows\_lambda (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.allows_lambda)

[always (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.always)

[always\_refresh (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.always_refresh)

[AmbiguousForeignKeysError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.AmbiguousForeignKeysError)

[and\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.and_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.and_)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.and_)

[annotations](https://docs.sqlalchemy.org/en/14/glossary.html#term-annotations)

[anon\_key\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.anon_key_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_key_label)

[anon\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.anon_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_label)

[ansi\_bind\_rules (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.ansi_bind_rules)

[AnsiFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction)

[Any() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Any)

[any() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.any)

[any\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.any_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.any_)

[append (sqlalchemy.engine.URL.update\_query\_dict parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_dict.params.append)

[(sqlalchemy.engine.URL.update\_query\_pairs parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_pairs.params.append)

[(sqlalchemy.engine.URL.update\_query\_string parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_string.params.append)

[append() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.append)

[(sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.append)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.append)

[append\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.append_column)

[append\_constraint() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.append_constraint)

[append\_group\_by() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.append_group_by)

[append\_order\_by() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.append_order_by)

[append\_wo\_mutation() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.append_wo_mutation)

[appender() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.appender)

[AppenderQuery (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.AppenderQuery)

[apply\_labels() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.apply_labels)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.apply_labels)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.apply_labels) | [args (sqlalchemy.orm.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.init.params.args)

[(sqlalchemy.orm.InstanceEvents.init\_failure parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.init_failure.params.args)

[argument (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.argument)

[argument\_for() (sqlalchemy.schema.CheckConstraint class method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for)

[(sqlalchemy.schema.Column class method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.argument_for)

[(sqlalchemy.schema.ColumnCollectionConstraint class method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for)

[argument\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.argument_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.argument_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.argument_name)

[ArgumentError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.ArgumentError)

[ARRAY (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY)

[array (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array)

[ARRAY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY)

[array() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.array)

[ARRAY.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator)

[array\_agg (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg)

[array\_agg() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array_agg)

[as\_boolean() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean)

[as\_comparison() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison)

[as\_declarative() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.as_declarative)

[as\_declarative\_base() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.as_declarative_base)

[as\_float() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float)

[as\_generic() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic)

[as\_immutable() (sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.as_immutable)

[as\_integer() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer)

[as\_json() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json)

[as\_mutable() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.as_mutable)

[as\_numeric() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric)

[as\_scalar() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.as_scalar)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.as_scalar)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.as_scalar)

[as\_string() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string)

[as\_tuple (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.as_tuple)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.as_tuple)

[as\_uuid (sqlalchemy.dialects.postgresql.UUID parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.UUID.params.as_uuid)

[asc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.asc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.asc)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.asc)

[ascii (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.ascii)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.ascii)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.ascii)

[asdecimal (sqlalchemy.dialects.oracle.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.DOUBLE_PRECISION.params.asdecimal)

[(sqlalchemy.dialects.postgresql.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOUBLE_PRECISION.params.asdecimal)

[(sqlalchemy.dialects.postgresql.REAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REAL.params.asdecimal)

[AssertionPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.AssertionPool)

[associate\_with() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with)

[associate\_with\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with_attribute)

[association relationship](https://docs.sqlalchemy.org/en/14/glossary.html#term-association-relationship)

[ASSOCIATION\_PROXY (in module sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ASSOCIATION_PROXY)

[association\_proxy() (in module sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy)

[AssociationProxy (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy)

[AssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance)

[astext (sqlalchemy.dialects.postgresql.JSON.Comparator attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator.astext)

[astext\_type (sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.astext_type)

[async\_engine\_from\_config() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_engine_from_config)

[async\_object\_session() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_object_session)

[async\_scoped\_session (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session)

[async\_session (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.async_session)

[async\_session() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_session)

[AsyncConnection (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection)

[AsyncEngine (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine)

[AsyncMappingResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncMappingResult)

[AsyncResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult)

[AsyncScalarResult (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncScalarResult)

[AsyncSession (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession)

[AsyncSessionTransaction (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSessionTransaction)

[AsyncTransaction (class in sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTransaction)

[atomicity](https://docs.sqlalchemy.org/en/14/glossary.html#term-atomicity)

[attached](https://docs.sqlalchemy.org/en/14/glossary.html#term-attached)

[attr (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.attr)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.attr)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.attr)

[attr\_name (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.attr_name)

[attribute\_instrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstrumentationEvents.attribute_instrument)

[attribute\_mapped\_collection() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.attribute_mapped_collection)

[attribute\_names (sqlalchemy.ext.asyncio.async\_scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire.params.attribute_names)

[(sqlalchemy.ext.asyncio.AsyncSession.expire parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire.params.attribute_names)

[(sqlalchemy.orm.scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.expire.params.attribute_names)

[AttributeEvent (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeEvent)

[AttributeEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents)

[AttributeState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState)

[attrname (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.attrname)

[attrs (sqlalchemy.orm.InstanceEvents.expire parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.expire.params.attrs)

[(sqlalchemy.orm.InstanceEvents.refresh parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh.params.attrs)

[(sqlalchemy.orm.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush.params.attrs)

[autocommit (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.autocommit)

[(sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.autocommit)

[(sqlalchemy.orm.sessionmaker parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.autocommit)

[autoescape (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains.params.autoescape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith.params.autoescape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith.params.autoescape)

[autoflush (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.autoflush)

[(sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.autoflush)

[(sqlalchemy.orm.sessionmaker parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.autoflush)

[autoflush() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.autoflush)

[autoincrement (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.autoincrement)

[autoload (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.autoload)

[autoload\_replace (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.autoload_replace)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.autoload_replace)

[autoload\_with (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.autoload_with)

[automap\_base() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base)

[AutomapBase (class in sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase)

[AwaitRequired](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.AwaitRequired) | B - | | | | --- | --- | | [back\_populates (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates)

[backref](https://docs.sqlalchemy.org/en/14/glossary.html#term-backref)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref)

[backref() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.backref)

[bake\_queries (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.bake_queries)

[baked\_lazyload() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.baked_lazyload)

[BakedQuery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery)

[Bakery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.Bakery)

[bakery() (in module sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.bakery)

[(sqlalchemy.ext.baked.BakedQuery class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.bakery)

[base (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.base)

[(sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.base)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.base)

[Base20DeprecationWarning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning)

[base\_columns (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.base_columns)

[base\_mapper (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.base_mapper)

[BaseCursorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult)

[batch (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.batch)

[before\_attach() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_attach)

[before\_commit() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_commit)

[before\_compile() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile)

[before\_compile\_delete() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete)

[before\_compile\_update() (sqlalchemy.orm.QueryEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update)

[before\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_configured)

[before\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.before_create)

[before\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute)

[before\_delete() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_delete)

[before\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.before_drop)

[before\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute)

[before\_flush() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush)

[before\_insert() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_insert)

[before\_mapper\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_mapper_configured)

[before\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach)

[before\_update() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_update)

[begin() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.begin)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.begin)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.begin)

[begin\_nested() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.begin_nested)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.begin_nested)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.begin_nested)

[begin\_twophase() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.begin_twophase)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.begin_twophase)

[Best effort](https://docs.sqlalchemy.org/en/14/dialects/index.html#term-Best-effort)

[between() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.between)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.between)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.between)

[BFILE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.BFILE)

[bidirectional relationship](https://docs.sqlalchemy.org/en/14/glossary.html#term-bidirectional-relationship)

[BIGINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BIGINT)

[BigInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger)

[BINARY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY)

[binary (sqlalchemy.dialects.mysql.CHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR.params.binary)

[(sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.binary)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.binary)

[BinaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression)

[bind (sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.bind)

[(sqlalchemy.dialects.postgresql.ENUM.drop parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop.params.bind)

[(sqlalchemy.engine.reflection.Inspector parameter)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.params.bind) | [bind parameter](https://docs.sqlalchemy.org/en/14/glossary.html#term-bind-parameter)

[bind parameters](https://docs.sqlalchemy.org/en/14/glossary.html#term-bind-parameters)

[bind\_arguments (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments)

[(sqlalchemy.orm.ORMExecuteState.invoke\_statement parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.bind_arguments)

[(sqlalchemy.orm.scoped\_session.connection parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.connection.params.bind_arguments)

[bind\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression)

[bind\_mapper (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper)

[bind\_mapper() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper)

[bind\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor)

[(sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.bind_processor)

[bind\_table() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table)

[bindparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam)

[BindParameter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter)

[bindparams() (sqlalchemy.sql.expression.TextClause method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.bindparams)

[binds (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.binds)

[BIT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BIT)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BIT)

[BLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB)

[bool\_op() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bool_op)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.bool_op)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.bool_op)

[BOOLEAN (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BOOLEAN)

[Boolean (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean)

[bound parameter](https://docs.sqlalchemy.org/en/14/glossary.html#term-bound-parameter)

[bound parameters](https://docs.sqlalchemy.org/en/14/glossary.html#term-bound-parameters)

[branch (sqlalchemy.events.ConnectionEvents.engine\_connect parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.engine_connect.params.branch)

[bulk\_insert\_mappings() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings)

[bulk\_replace() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.bulk_replace)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace)

[bulk\_save\_objects() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects)

[bulk\_update\_mappings() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_update_mappings)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings)

[Bundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle)

[BYTEA (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BYTEA) | C - | | | | --- | --- | | [c (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.c)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.c)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.c)

[cache (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.cache)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.cache)

[cache\_ok (sqlalchemy.types.ExternalType attribute)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok)

[(sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.cache_ok)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok)

[CacheKey (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey)

[callable\_ (sqlalchemy.schema.DDLElement attribute)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement.callable_)

[(sqlalchemy.schema.DDLElement.execute\_if parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if.params.callable_)

[(sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.callable_)

[callables (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.callables)

[candidate key](https://docs.sqlalchemy.org/en/14/glossary.html#term-candidate-key)

[cartesian product](https://docs.sqlalchemy.org/en/14/glossary.html#term-cartesian-product)

[cascade](https://docs.sqlalchemy.org/en/14/glossary.html#term-cascade)

[(sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.cascade)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade)

[cascade\_backrefs (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade_backrefs)

[cascade\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.cascade_iterator)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.cascade_iterator)

[cascade\_scalar\_deletes (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.cascade_scalar_deletes)

[CascadeOptions (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CascadeOptions)

[Case (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Case)

[case() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.case)

[case\_sensitive (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.case_sensitive)

[Cast (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Cast)

[cast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.cast)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.cast)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.cast)

[cast\_nulls (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.cast_nulls)

[chain() (sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain)

[chained\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.chained_exception)

[changed() (sqlalchemy.ext.mutable.Mutable method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.changed)

[(sqlalchemy.ext.mutable.MutableComposite method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite.changed)

[CHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CHAR)

[char\_length (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.char_length)

[charset (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.charset)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.charset)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.charset)

[check constraint](https://docs.sqlalchemy.org/en/14/glossary.html#term-check-constraint)

[check\_modified() (sqlalchemy.orm.IdentityMap method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.IdentityMap.check_modified)

[CheckConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint)

[checkfirst (sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.checkfirst)

[(sqlalchemy.dialects.postgresql.ENUM.drop parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop.params.checkfirst)

[(sqlalchemy.schema.MetaData.create\_all parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.create_all.params.checkfirst)

[checkin() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.checkin)

[checkout() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.checkout)

[ChunkedIteratorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult)

[CIDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.CIDR)

[CircularDependencyError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.CircularDependencyError)

[class\_ (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.class_)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite.params.class_)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_)

[class\_attribute (sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.class_attribute)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.class_attribute)

[(sqlalchemy.orm.SynonymProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.SynonymProperty.class_attribute)

[class\_instrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstrumentationEvents.class_instrument)

[class\_manager (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_manager)

[class\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.class_mapper)

[class\_registry (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.class_registry)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.params.class_registry)

[class\_uninstrument() (sqlalchemy.orm.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstrumentationEvents.class_uninstrument)

[classes (sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.classes)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.classes)

[ClassManager (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager)

[classname\_for\_table (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.classname_for_table)

[classname\_for\_table() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table)

[clause (sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.clause)

[(sqlalchemy.orm.scoped\_session.connection parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.connection.params.clause)

[(sqlalchemy.orm.scoped\_session.get\_bind parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.get_bind.params.clause)

[ClauseElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement)

[clauseelement (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.clauseelement)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.clauseelement)

[ClauseList (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ClauseList)

[clauses (sqlalchemy.sql.functions.FunctionElement attribute)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses)

[clear() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.clear)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.clear)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.clear)

[clear\_compiled\_cache() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.clear_compiled_cache)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.clear_compiled_cache)

[clear\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.clear_mappers)

[CLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CLOB)

[cloned\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse)

[close (sqlalchemy.engine.Engine.dispose parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.dispose.params.close)

[close() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.close)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.close)

[(sqlalchemy.engine.FilterResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FilterResult.close)

[close\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.close_all)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.close_all)

[(sqlalchemy.orm.scoped\_session class method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.close_all)

[close\_all\_sessions() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.close_all_sessions)

[close\_detached() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.close_detached)

[close\_with\_result (sqlalchemy.orm.scoped\_session.connection parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.connection.params.close_with_result)

[(sqlalchemy.orm.Session.connection parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.close_with_result)

[closed (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.closed)

[(sqlalchemy.engine.FilterResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FilterResult.closed)

[(sqlalchemy.engine.IteratorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.IteratorResult.closed)

[cls (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.cls)

[(sqlalchemy.orm.registry.generate\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base.params.cls)

[(sqlalchemy.orm.registry.map\_declaratively parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.map_declaratively.params.cls)

[coalesce (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.coalesce)

[coerce() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce)

[(sqlalchemy.ext.mutable.MutableBase class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce)

[(sqlalchemy.ext.mutable.MutableDict class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.coerce)

[coerce\_compared\_value() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value)

[(sqlalchemy.types.UserDefinedType method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.coerce_compared_value)

[coerce\_to\_is\_types (sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types)

[collate() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.collate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.collate)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.collate)

[collation (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.collation)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.collation)

[(sqlalchemy.dialects.mssql.VARCHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.VARCHAR.params.collation)

[collection (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection)

[(sqlalchemy.orm.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection.params.collection)

[collection\_adapter (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection_adapter)

[(sqlalchemy.orm.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection.params.collection_adapter)

[collection\_class (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.collection_class)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.collection_class)

[CollectionAdapter (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.CollectionAdapter)

[cols (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.cols)

[(sqlalchemy.sql.expression.ValuesBase.return\_defaults parameter)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.ValuesBase.return_defaults.params.cols)

[coltype (sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.coltype)

[(sqlalchemy.types.Boolean.result\_processor parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor.params.coltype)

[(sqlalchemy.types.Float.result\_processor parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor.params.coltype)

[Column (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column)

[column (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.column)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.column)

[(sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.column)

[column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.column)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.column)

[column\_attrs (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.column_attrs)

[column\_descriptions (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.column_descriptions)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.column_descriptions)

[column\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression)

[column\_keys (sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.compile.params.column_keys)

[(sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.column_keys)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.compile.params.column_keys)

[column\_mapped\_collection() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.column_mapped_collection)

[column\_prefix (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.column_prefix)

[column\_property() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property)

[column\_reflect() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.column_reflect)

[column\_valued() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued)

[ColumnAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance)

[ColumnClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnClause)

[ColumnCollection (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection)

[ColumnCollectionConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint)

[ColumnCollectionMixin (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionMixin)

[ColumnDefault (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.ColumnDefault)

[ColumnElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement)

[ColumnOperators (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators)

[ColumnProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty)

[ColumnProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator)

[columns (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.columns)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.columns)

[(sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.columns)

[columns clause](https://docs.sqlalchemy.org/en/14/glossary.html#term-columns-clause)

[columns() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.columns)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.columns)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.columns)

[columns\_clause\_froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.columns_clause_froms)

[comment (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.comment)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.comment)

[commit() (sqlalchemy.engine.NestedTransaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.NestedTransaction.commit)

[(sqlalchemy.engine.RootTransaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RootTransaction.commit)

[(sqlalchemy.engine.Transaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Transaction.commit)

[commit\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.commit_twophase)

[common\_parent() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.common_parent)

[Comparator (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.Comparator)

[comparator (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.comparator)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.comparator)

[comparator() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.comparator)

[comparator\_factory (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSON attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSONB attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.comparator_factory)

[compare() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.compare)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.compare)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare) | [compare\_against\_backend() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend)

[compare\_values() (sqlalchemy.types.ARRAY method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.compare_values)

[(sqlalchemy.types.PickleType method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.compare_values)

[(sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values)

[compile() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.compile)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.compile)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile)

[compile\_kwargs (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.params.compile_kwargs)

[(sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.compile.params.compile_kwargs)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.compile.params.compile_kwargs)

[compile\_state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.compile_state)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.compile_state)

[Compiled (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled)

[compiled\_cache (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.compiled_cache)

[CompileError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.CompileError)

[compiles() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/14/core/compiler.html#sqlalchemy.ext.compiler.compiles)

[composite primary key](https://docs.sqlalchemy.org/en/14/glossary.html#term-composite-primary-key)

[composite() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite)

[CompositeProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty)

[CompositeProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty.Comparator)

[CompositeProperty.CompositeBundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle)

[composites (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.composites)

[CompoundSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect)

[Computed (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Computed)

[concat (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.concat)

[concat() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.concat)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.concat)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.concat)

[Concatenable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable)

[Concatenable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.Comparator)

[concrete (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.concrete)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.concrete)

[ConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.ConcreteBase)

[ConcurrentModificationError (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError)

[configuration (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine_from_config.params.configuration)

[configure() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.configure)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.configure)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.configure)

[configure\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.configure_mappers)

[configured (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.configured)

[confirm\_deleted\_rows (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.confirm_deleted_rows)

[conn (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.conn)

[conn\_type (sqlalchemy.types.TypeEngine.compare\_against\_backend parameter)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend.params.conn_type)

[connect() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.connect)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.connect)

[connect\_args (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.connect_args)

[Connection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection)

[(class in sqlalchemy.future)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Connection)

[connection (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.connection)

[connection() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.connection)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.connection)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.connection)

[connection\_callable() (sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection_callable)

[connection\_proxy (sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_proxy)

[connection\_record (sqlalchemy.events.PoolEvents.checkin parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.checkin.params.connection_record)

[(sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_record)

[(sqlalchemy.events.PoolEvents.close parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.close.params.connection_record)

[ConnectionEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents)

[consistency](https://docs.sqlalchemy.org/en/14/glossary.html#term-consistency)

[constrained](https://docs.sqlalchemy.org/en/14/glossary.html#term-constrained)

[constraint](https://docs.sqlalchemy.org/en/14/glossary.html#term-constraint)

[Constraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Constraint)

[constraint (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.constraint)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.constraint)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.constraint)

[constraints](https://docs.sqlalchemy.org/en/14/glossary.html#term-constraints)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.constraints)

[construct\_arguments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments)

[construct\_params() (sqlalchemy.engine.Compiled method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.construct_params)

[(sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.construct_params)

[(sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.construct_params)

[constructor (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.constructor)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.params.constructor)

[contained\_by() (sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contained_by)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.contained_by)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.contained_by)

[contains() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.contains)

[(sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contains)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.contains)

[contains\_column() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.contains_column)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.contains_column)

[(sqlalchemy.schema.ForeignKeyConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.contains_column)

[contains\_eager() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.contains_eager)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.contains_eager)

[context (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.handle\_error parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.handle_error.params.context)

[conv() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.conv)

[convert\_int (sqlalchemy.dialects.mssql.ROWVERSION parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION.params.convert_int)

[(sqlalchemy.dialects.mssql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP.params.convert_int)

[convert\_unicode (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.convert_unicode)

[(sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.convert_unicode)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.convert_unicode)

[converter() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.converter)

[copy() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.copy)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.copy)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.copy)

[correlate (sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.correlate)

[correlate() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.correlate)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Exists.correlate)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate)

[correlate\_except() (sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Exists.correlate_except)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.correlate_except)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.correlate_except)

[correlated subqueries](https://docs.sqlalchemy.org/en/14/glossary.html#term-correlated-subqueries)

[correlated subquery](https://docs.sqlalchemy.org/en/14/glossary.html#term-correlated-subquery)

[correlates](https://docs.sqlalchemy.org/en/14/glossary.html#term-correlates)

[corresponding\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.corresponding_column)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.corresponding_column)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column)

[count (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.count)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row.count)

[(sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.count)

[count() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.count)

[count\_from (sqlalchemy.ext.orderinglist.ordering\_list parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list.params.count_from)

[count\_from\_0() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_0)

[count\_from\_1() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_1)

[count\_from\_n\_factory() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_n_factory)

[create() (sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create)

[(sqlalchemy.engine.URL class method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create)

[(sqlalchemy.schema.Index method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Index.create)

[create\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.create_all)

[create\_async\_engine() (in module sqlalchemy.ext.asyncio)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.create_async_engine)

[create\_connect\_args() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.create_connect_args)

[create\_constraint (sqlalchemy.dialects.mssql.BIT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.params.create_constraint)

[(sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.create_constraint)

[(sqlalchemy.types.Boolean parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.params.create_constraint)

[create\_cursor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.create_cursor)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.create_cursor)

[create\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine)

[(in module sqlalchemy.future)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.create_engine)

[create\_legacy\_select() (sqlalchemy.sql.expression.Select class method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select)

[create\_mock\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_mock_engine)

[create\_row\_processor() (sqlalchemy.orm.Bundle method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.create_row_processor)

[(sqlalchemy.orm.CompositeProperty.CompositeBundle method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle.create_row_processor)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.create_row_processor)

[create\_type (sqlalchemy.dialects.postgresql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.params.create_type)

[create\_xid() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_xid)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.create_xid)

[CreateColumn (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateColumn)

[CreateEnginePlugin (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin)

[createfunc (sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)
, [\[4\]](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)

[CreateIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateIndex)

[CreateSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateSchema)

[CreateSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateSequence)

[CreateTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateTable)

[creator (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.creator)

[(sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.creator)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.creator)

[criterion (sqlalchemy.orm.PropComparator.any parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.any.params.criterion)

[(sqlalchemy.orm.PropComparator.has parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.has.params.criterion)

[(sqlalchemy.orm.QueryableAttribute.any parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.any.params.criterion)

[CRUD](https://docs.sqlalchemy.org/en/14/glossary.html#term-CRUD)

[crud](https://docs.sqlalchemy.org/en/14/glossary.html#term-crud)

[CTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CTE)

[cte() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.cte)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.cte)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte)

[cube (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cube)

[cume\_dist (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cume_dist)

[current\_date (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_date)

[current\_executable (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.current_executable)

[current\_parameters (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.current_parameters)

[current\_time (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_time)

[current\_timestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_timestamp)

[current\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_user)

[cursor](https://docs.sqlalchemy.org/en/14/glossary.html#term-cursor)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.cursor)

[(sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.cursor)

[cursor() (sqlalchemy.pool.\_ConnectionFairy method)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.cursor)

[CursorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult)

[custom\_op (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.custom_op)

[cycle (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.cycle)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.cycle)

[cyclomatic complexity](https://docs.sqlalchemy.org/en/14/glossary.html#term-cyclomatic-complexity) | D - | | | | --- | --- | | [data marshalling](https://docs.sqlalchemy.org/en/14/glossary.html#term-data-marshalling)

[data() (sqlalchemy.sql.expression.Values method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Values.data)

[data\_type (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.data_type)

[database (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.database)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.database)

[database metadata](https://docs.sqlalchemy.org/en/14/glossary.html#term-database-metadata)

[DatabaseError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.DatabaseError)

[DataError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.DataError)

[datatype (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.datatype)

[DATE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.DATE)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATE)

[Date (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date)

[DATERANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DATERANGE)

[DATETIME (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATETIME)

[DateTime (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime)

[DATETIME2 (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIME2)

[DATETIMEOFFSET (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIMEOFFSET)

[day\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.day_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.params.day_precision)

[DBAPI](https://docs.sqlalchemy.org/en/14/glossary.html#term-DBAPI)

[dbapi\_connection (sqlalchemy.engine.default.DefaultDialect.do\_begin parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback.params.dbapi_connection)

[dbapi\_exception\_translation\_map (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.dbapi_exception_translation_map)

[DBAPIError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.DBAPIError)

[DDL](https://docs.sqlalchemy.org/en/14/glossary.html#term-DDL)

[(class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDL)

[ddl\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.ddl_compiler)

[DDLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler)

[DDLElement (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement)

[DDLEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents)

[DECIMAL (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DECIMAL)

[decimal\_return\_scale (sqlalchemy.dialects.oracle.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.DOUBLE_PRECISION.params.decimal_return_scale)

[(sqlalchemy.dialects.postgresql.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOUBLE_PRECISION.params.decimal_return_scale)

[(sqlalchemy.dialects.postgresql.REAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REAL.params.decimal_return_scale)

[declarative](https://docs.sqlalchemy.org/en/14/glossary.html#term-declarative)

[declarative\_base (sqlalchemy.ext.automap.automap\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base.params.declarative_base)

[declarative\_base() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base)

[declarative\_mixin() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_mixin)

[declared\_attr (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declared_attr)

[default (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.default)

[(sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.default)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.default)

[default\_expr (sqlalchemy.orm.query\_expression parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.query_expression.params.default_expr)

[default\_from() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.default_from)

[default\_isolation\_level (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.default_isolation_level)

[default\_schema\_name (sqlalchemy.engine.reflection.Inspector attribute)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.default_schema_name)

[DefaultClause (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.DefaultClause)

[DefaultDialect (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect)

[DefaultExecutionContext (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext)

[DefaultGenerator (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.DefaultGenerator)

[defaultload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.defaultload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.defaultload)

[defer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.defer)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.defer)

[deferrable (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.deferrable)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.deferrable)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.deferrable)

[deferred (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.deferred)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite.params.deferred)

[deferred() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.deferred)

[deferred\_scalar\_loader (sqlalchemy.orm.ClassManager attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager.deferred_scalar_loader)

[DeferredReflection (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection)

[define\_constraint\_remote\_table() (sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.define_constraint_remote_table)

[defined() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.defined)

[del\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute)

[Delete (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Delete)

[delete() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.delete)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.delete)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.delete)

[delete\_context (sqlalchemy.orm.QueryEvents.before\_compile\_delete parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete.params.delete_context)

[(sqlalchemy.orm.SessionEvents.after\_bulk\_delete parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_delete.params.delete_context)

[delete\_extra\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.delete_extra_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.delete_extra_from_clause)

[deleted](https://docs.sqlalchemy.org/en/14/glossary.html#term-deleted)

[(sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.deleted)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.deleted)

[deleted\_to\_detached() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_detached)

[deleted\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_persistent)

[deleter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.deleter)

[denormalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.denormalize_name)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.denormalize_name)

[dense\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank)

[deprecated\_since (sqlalchemy.exc.Base20DeprecationWarning attribute)](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning.deprecated_since)

[(sqlalchemy.exc.SADeprecationWarning attribute)](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning.deprecated_since)

[(sqlalchemy.exc.SAPendingDeprecationWarning attribute)](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning.deprecated_since)

[deregister() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/14/core/compiler.html#sqlalchemy.ext.compiler.deregister)

[desc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.desc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.desc)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.desc)

[description (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.description)

[(sqlalchemy.sql.expression.AliasedReturnsRows attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.description)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.description)

[descriptor](https://docs.sqlalchemy.org/en/14/glossary.html#term-descriptor)

[(sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.descriptor)

[descriptors](https://docs.sqlalchemy.org/en/14/glossary.html#term-descriptors)

[Deserializer (class in sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer)

[detach() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.detach)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.detach)

[(sqlalchemy.pool.\_ConnectionFairy method)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.detach)

[detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.detached)

[detached\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.detached_to_persistent)

[DetachedInstanceError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError)

[dialect](https://docs.sqlalchemy.org/en/14/glossary.html#term-dialect)

[Dialect (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect)

[dialect (sqlalchemy.dialects.postgresql.HSTORE.bind\_processor parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor.params.dialect)

[(sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.dialect)

[(sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.params.dialect) | [dialect\_impl() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl)

[dialect\_kwargs (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.dialect_kwargs)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.dialect_kwargs)

[(sqlalchemy.schema.ColumnCollectionConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.dialect_kwargs)

[dialect\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.dialect_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.dialect_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.dialect_name)

[dialect\_options (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.dialect_options)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.dialect_options)

[(sqlalchemy.schema.ColumnCollectionConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.dialect_options)

[DialectEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents)

[DialectKWArgs (class in sqlalchemy.sql.base)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs)

[dict (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.dict)

[dict\_ (sqlalchemy.orm.AttributeEvents.init\_scalar parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar.params.dict_)

[dict\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter)

[difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.difference_update)

[difference\_update\_query() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.difference_update_query)

[dimensions (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.dimensions)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.dimensions)

[direction (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.direction)

[dirty (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.dirty)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.dirty)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.dirty)

[discard() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.discard)

[DisconnectionError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.DisconnectionError)

[discriminator](https://docs.sqlalchemy.org/en/14/glossary.html#term-discriminator)

[dispatch() (sqlalchemy.sql.visitors.InternalTraversal method)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dispatch)

[display\_width (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.display_width)

[(sqlalchemy.dialects.mysql.INTEGER parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER.params.display_width)

[(sqlalchemy.dialects.mysql.MEDIUMINT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT.params.display_width)

[dispose() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.dispose)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.dispose)

[(sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.dispose)

[dispose\_collection() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.dispose_collection)

[distinct (sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.distinct)

[distinct() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.distinct)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.distinct)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.distinct)

[distinct\_target\_key (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.distinct_target_key)

[DML](https://docs.sqlalchemy.org/en/14/glossary.html#term-DML)

[dml\_compile\_state (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.dml_compile_state)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.dml_compile_state)

[do\_begin() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_begin)

[do\_begin\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_begin_twophase)

[do\_close() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_close)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_close)

[do\_commit() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_commit)

[do\_commit\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase)

[do\_connect() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_connect)

[do\_execute() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_execute)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_execute)

[do\_execute\_no\_params() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute_no_params)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_execute_no_params)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_execute_no_params)

[do\_executemany() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_executemany)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_executemany)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_executemany)

[do\_init() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.do_init)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty.do_init)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.do_init)

[do\_orm\_execute() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute)

[do\_prepare\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_prepare_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_prepare_twophase)

[do\_recover\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_recover_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_recover_twophase)

[do\_release\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_release_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_release_savepoint)

[do\_rollback() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_rollback)

[do\_rollback\_to\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_to_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_rollback_to_savepoint)

[do\_rollback\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_rollback_twophase)

[do\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_savepoint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_savepoint)

[do\_set\_input\_sizes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_set_input_sizes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_set_input_sizes)

[do\_setinputsizes() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_setinputsizes)

[do\_terminate() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_terminate)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_terminate)

[doc (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.doc)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite.params.doc)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.doc)

[domain model](https://docs.sqlalchemy.org/en/14/glossary.html#term-domain-model)

[DontWrapMixin (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.DontWrapMixin)

[DOUBLE\_PRECISION (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.DOUBLE_PRECISION)

[dp\_annotations\_key (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key)

[dp\_anon\_name (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name)

[dp\_boolean (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean)

[dp\_clauseelement (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement)

[dp\_clauseelement\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list)

[dp\_clauseelement\_tuple (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple)

[dp\_clauseelement\_tuples (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples)

[dp\_dialect\_options (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options)

[dp\_dml\_multi\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values)

[dp\_dml\_ordered\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values)

[dp\_dml\_values (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values)

[dp\_fromclause\_canonical\_column\_collection (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection)

[dp\_fromclause\_ordered\_set (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set)

[dp\_has\_cache\_key (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key)

[dp\_has\_cache\_key\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list)

[dp\_named\_ddl\_element (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element)

[dp\_operator (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator)

[dp\_plain\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict)

[dp\_plain\_obj (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj)

[dp\_prefix\_sequence (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence)

[dp\_propagate\_attrs (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs)

[dp\_statement\_hint\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list)

[dp\_string (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string)

[dp\_string\_clauseelement\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict)

[dp\_string\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list)

[dp\_string\_multi\_dict (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict)

[dp\_table\_hint\_list (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list)

[dp\_type (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type)

[dp\_unknown\_structure (sqlalchemy.sql.visitors.InternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure)

[DQL](https://docs.sqlalchemy.org/en/14/glossary.html#term-DQL)

[driver (sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.driver)

[driver\_connection (sqlalchemy.engine.AdaptedConnection attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.AdaptedConnection.driver_connection)

[(sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.driver_connection)

[(sqlalchemy.pool.\_ConnectionRecord attribute)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionRecord.driver_connection)

[drivername (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.drivername)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.drivername)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set.params.drivername)

[drop() (sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop)

[(sqlalchemy.schema.Index method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Index.drop)

[(sqlalchemy.schema.Sequence method)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.drop)

[drop\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.drop_all)

[DropConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropConstraint)

[DropIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropIndex)

[DropSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropSchema)

[DropSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropSequence)

[DropTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropTable)

[dumps() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.dumps)

[durability](https://docs.sqlalchemy.org/en/14/glossary.html#term-durability)

[dynamic\_loader() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.dynamic_loader) | E - | | | | --- | --- | | [e (sqlalchemy.pool.\_ConnectionFairy.invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.invalidate.params.e)

[(sqlalchemy.pool.\_ConnectionRecord.invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionRecord.invalidate.params.e)

[eager load](https://docs.sqlalchemy.org/en/14/glossary.html#term-eager-load)

[eager loaded](https://docs.sqlalchemy.org/en/14/glossary.html#term-eager-loaded)

[eager loading](https://docs.sqlalchemy.org/en/14/glossary.html#term-eager-loading)

[eager loads](https://docs.sqlalchemy.org/en/14/glossary.html#term-eager-loads)

[eager\_defaults (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.eager_defaults)

[eagerload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.eagerload)

[echo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.echo)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.params.echo)

[echo\_pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.echo_pool)

[effective\_value (sqlalchemy.sql.expression.BindParameter attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.effective_value)

[element (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.aliased.params.element)

[(sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateIndex.params.element)

[(sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateTable.params.element)

[elements (sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.elements)

[else\_ (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.case.params.else_)

[empty() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.empty)

[empty\_in\_strategy (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.empty_in_strategy)

[enable\_assertions() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.enable_assertions)

[enable\_baked\_queries (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.enable_baked_queries)

[enable\_eagerloads() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.enable_eagerloads)

[enable\_from\_linting (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.enable_from_linting)

[enable\_relationship\_loading() (sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading)

[enable\_tracking (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.enable_tracking)

[encoding (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.encoding)

[endswith() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.endswith)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.endswith)

[Engine (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine)

[(class in sqlalchemy.future)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Engine)

[engine (sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.engine)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.engine)

[(sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.engine)

[engine\_connect() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.engine_connect)

[engine\_created() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.engine_created)

[(sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.engine_created)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.engine_created)

[engine\_disposed() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.engine_disposed)

[engine\_from\_config() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine_from_config)

[entities (sqlalchemy.orm.Query parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.params.entities)

[entity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.entity)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.entity)

[entity\_description (sqlalchemy.sql.expression.UpdateBase attribute)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.UpdateBase.entity_description)

[entity\_namespace (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.entity_namespace)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.entity_namespace)

[(sqlalchemy.sql.expression.FromClause attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.entity_namespace)

[entity\_or\_base (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria.params.entity_or_base)

[ENUM (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM)

[Enum (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum)

[enums (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.enums)

[escape (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains.params.escape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith.params.escape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike.params.escape)

[escaped\_bind\_names (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.escaped_bind_names)

[evaluates\_none() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none)

[Events (class in sqlalchemy.event.base)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.event.base.Events)

[events (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.params.events)

examples.adjacency\_list

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.adjacency_list)

examples.association

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.association)

examples.asyncio

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.asyncio)

examples.custom\_attributes

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.custom_attributes)

examples.dogpile\_caching

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.dogpile_caching)

examples.dynamic\_dict

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.dynamic_dict)

examples.elementtree

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.elementtree)

examples.extending\_query

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.extending_query)

examples.generic\_associations

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.generic_associations)

examples.graphs

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.graphs)

examples.inheritance

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.inheritance)

examples.join\_conditions

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.join_conditions)

examples.large\_collection

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.large_collection)

examples.materialized\_paths

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.materialized_paths)

examples.nested\_sets

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.nested_sets)

examples.performance

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.performance)

examples.postgis

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.postgis)

examples.sharding

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.sharding)

examples.space\_invaders

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.space_invaders)

examples.versioned\_history

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.versioned_history)

examples.versioned\_rows

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.versioned_rows)

examples.vertical

[module](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.vertical) | [except\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.except_)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.except_)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.except_)

[except\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.except_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.except_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.except_all)

[exception (sqlalchemy.engine.Connection.invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.invalidate.params.exception)

[(sqlalchemy.events.PoolEvents.invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.invalidate.params.exception)

[(sqlalchemy.events.PoolEvents.soft\_invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate.params.exception)

[ExceptionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext)

[exclude\_properties (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.exclude_properties)

[ExcludeConstraint (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint)

[excluded (sqlalchemy.dialects.postgresql.Insert attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.excluded)

[(sqlalchemy.dialects.sqlite.Insert attribute)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.excluded)

[exec\_driver\_sql() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.exec_driver_sql)

[Executable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Executable)

[execute() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execute)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.execute)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.execute)

[execute\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.execute_chooser)

[execute\_if() (sqlalchemy.schema.DDLElement method)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if)

[execute\_sequence\_format (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execute_sequence_format)

[executemany (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.executemany)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.executemany)

[execution\_context (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.execution_context)

[execution\_ctx\_cls (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execution_ctx_cls)

[execution\_options (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.execution_options)

[(sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.execution_options)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.execution_options)

[execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.execution_options)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.execution_options)

[ExecutionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext)

[executor (sqlalchemy.create\_mock\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_mock_engine.params.executor)

[existing\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.bulk_replace.params.existing_adapter)

[Exists (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Exists)

[exists() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.exists)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.exists)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.exists)

[expanding (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.expanding)

[expire](https://docs.sqlalchemy.org/en/14/glossary.html#term-expire)

[expire() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire)

[(sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.expire)

[expire\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expire_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.expire_all)

[expire\_on\_commit (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.expire_on_commit)

[(sqlalchemy.orm.sessionmaker parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.expire_on_commit)

[expire\_on\_flush (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.expire_on_flush)

[expired](https://docs.sqlalchemy.org/en/14/glossary.html#term-expired)

[expired\_attribute\_loader (sqlalchemy.orm.ClassManager attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager.expired_attribute_loader)

[expired\_attributes (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.expired_attributes)

[expires](https://docs.sqlalchemy.org/en/14/glossary.html#term-expires)

[Expiring](https://docs.sqlalchemy.org/en/14/glossary.html#term-Expiring)

[expiring](https://docs.sqlalchemy.org/en/14/glossary.html#term-expiring)

[exported\_columns (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.exported_columns)

[(sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.exported_columns)

[(sqlalchemy.sql.expression.FromClause attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.exported_columns)

[expr (sqlalchemy.orm.with\_expression parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.with_expression.params.expr)

[(sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.between.params.expr)

[(sqlalchemy.sql.expression.extract parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.extract.params.expr)

[expression (sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.expression)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.expression)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.expression)

[expression() (sqlalchemy.ext.hybrid.hybrid\_method method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.expression)

[(sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.expression)

[expressions (sqlalchemy.orm.ColumnProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.expressions)

[expunge() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expunge)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expunge)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.expunge)

[expunge\_all() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expunge_all)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.expunge_all)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.expunge_all)

[extend() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.extend)

[extend\_existing (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.extend_existing)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.extend_existing)

[ExtendedInstrumentationRegistry (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry)

[extension\_type (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.extension_type)

[ExternalTraversal (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal)

[ExternalType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType)

[extra\_dependencies (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.sort_tables.params.extra_dependencies)

[(sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.extra_dependencies)

[Extract (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Extract)

[extract() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.extract) | F - | | | | --- | --- | | [facade](https://docs.sqlalchemy.org/en/14/glossary.html#term-facade)

[false() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.false)

[False\_ (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.False_)

[fetch() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.fetch)

[fetchall() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.fetchall)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.fetchall)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.fetchall)

[FetchedValue (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.FetchedValue)

[fetchmany() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.fetchmany)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.fetchmany)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.fetchmany)

[fetchone() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.fetchone)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.fetchone)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.fetchone)

[field (sqlalchemy.sql.expression.extract parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.extract.params.field)

[fields (sqlalchemy.dialects.postgresql.INTERVAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL.params.fields)

[filestream (sqlalchemy.dialects.mssql.VARBINARY parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.VARBINARY.params.filestream)

[filter() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.filter)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.filter)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.filter)

[filter\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.filter_by)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.filter_by)

[filter\_fn (sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.filter_fn)

[filter\_states\_for\_dep() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction.filter_states_for_dep)

[FilterResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FilterResult)

[finalize\_flush\_changes() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction.finalize_flush_changes)

[first() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.first)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.first)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.first)

[first\_connect() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.first_connect)

[first\_init() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.first_init)

[flag\_dirty() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty)

[flag\_modified() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified)

[flags (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match.params.flags)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_replace parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_replace.params.flags)

[(sqlalchemy.orm.PropComparator.regexp\_match parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.regexp_match.params.flags)

[flat (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.aliased.params.flat)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.flat)

[(sqlalchemy.sql.expression.alias parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.alias.params.flat)

[FLOAT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.FLOAT)

[Float (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float)

[flush() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.flush)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.flush)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.flush) | [flush\_context (sqlalchemy.orm.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush.params.flush_context)

[(sqlalchemy.orm.SessionEvents.after\_flush parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush.params.flush_context)

[(sqlalchemy.orm.SessionEvents.after\_flush\_postexec parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec.params.flush_context)

[FlushError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.FlushError)

[for\_class() (sqlalchemy.ext.associationproxy.AssociationProxy method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class)

[for\_executemany (sqlalchemy.sql.compiler.SQLCompiler parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.params.for_executemany)

[for\_proxy() (sqlalchemy.ext.associationproxy.AssociationProxyInstance class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.for_proxy)

[for\_session() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.for_session)

[for\_update (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.for_update)

[force (sqlalchemy.sql.compiler.IdentifierPreparer.quote parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote.params.force)

[(sqlalchemy.sql.compiler.IdentifierPreparer.quote\_schema parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema.params.force)

[foreign key constraint](https://docs.sqlalchemy.org/en/14/glossary.html#term-foreign-key-constraint)

[foreign() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.foreign)

[foreign\_key\_constraints (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.foreign_key_constraints)

[foreign\_keys (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.foreign_keys)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.foreign_keys)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.foreign_keys)

[ForeignKey (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey)

[ForeignKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint)

[format\_column() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_column)

[format\_label\_name() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_label_name)

[format\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_schema)

[format\_table() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table)

[format\_table\_seq() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table_seq)

[freeze() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.freeze)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.freeze)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.freeze)

[FROM clause](https://docs.sqlalchemy.org/en/14/glossary.html#term-FROM-clause)

[from\_ (sqlalchemy.sql.expression.Select.join\_from parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.join_from.params.from_)

[from\_engine() (sqlalchemy.engine.reflection.Inspector class method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.from_engine)

[from\_entity (sqlalchemy.orm.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_parent.params.from_entity)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_parent.params.from_entity)

[from\_joinpoint (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.join.params.from_joinpoint)

[from\_obj (sqlalchemy.orm.Query.select\_entity\_from parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.select_entity_from.params.from_obj)

[(sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.from_obj)

[from\_select() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert.from_select)

[from\_self() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.from_self)

[from\_statement() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.from_statement)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.from_statement)

[FromClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause)

[froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.froms)

[FrozenResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FrozenResult)

[fsp (sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP.params.fsp)

[full (sqlalchemy.ext.baked.BakedQuery.spoil parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil.params.full)

[(sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.join.params.full)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.join.params.full)

[func (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func)

[funcfilter() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.funcfilter)

[Function (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function)

[FunctionElement (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement)

[FunctionFilter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter)

[future (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.future)

[(sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.future) | G - | | | | --- | --- | | [generate\_base() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base)

[generate\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.generate_relationship)

[generate\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship)

[generative](https://docs.sqlalchemy.org/en/14/glossary.html#term-generative)

[GenerativeSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect)

[GenericFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction)

[GenericTypeCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler)

[get() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.get)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get)

[get\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute)

[get\_attribute\_history() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction.get_attribute_history)

[get\_backend\_name() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.get_backend_name)

[get\_bind() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.get_bind)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_bind)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind)

[get\_check\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_check_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_check_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints)

[get\_children() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.get_children)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.get_children)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.get_children)

[get\_columns() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_columns)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_columns)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns)

[get\_current\_parameters() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters)

[get\_dbapi\_type() (sqlalchemy.types.Date method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type)

[(sqlalchemy.types.DateTime method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type)

[(sqlalchemy.types.Integer method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type)

[get\_default\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_default_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_default_isolation_level)

[get\_dialect() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.get_dialect)

[get\_dialect\_cls() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_dialect_cls)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_dialect_cls)

[get\_driver\_connection() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_driver_connection)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_driver_connection)

[get\_driver\_name() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.get_driver_name)

[get\_engine() (sqlalchemy.ext.serializer.Deserializer method)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine)

[get\_enums() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums)

[get\_execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.get_execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.get_execution_options)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.get_execution_options)

[get\_final\_froms() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.get_final_froms)

[get\_foreign\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_foreign_keys)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_foreign_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_foreign_keys) | [get\_foreign\_table\_names() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_foreign_table_names)

[get\_history() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty.get_history)

[get\_indexes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_indexes)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_indexes)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_indexes)

[get\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict)

[get\_isolation\_level() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.get_isolation_level)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_isolation_level)

[get\_label\_style (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.get_label_style)

[get\_label\_style() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.get_label_style)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.get_label_style)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.get_label_style)

[get\_lastrowid() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_lastrowid)

[get\_nested\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.get_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_nested_transaction)

[get\_out\_parameter\_values() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_out_parameter_values)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.get_out_parameter_values)

[get\_pk\_constraint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_pk_constraint)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_pk_constraint)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_pk_constraint)

[get\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property)

[get\_property\_by\_column() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property_by_column)

[get\_raw\_connection() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_raw_connection)

[get\_referent() (sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.get_referent)

[get\_result\_processor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_result_processor)

[get\_rowcount() (sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.get_rowcount)

[get\_schema\_names() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_schema_names)

[get\_select\_precolumns() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.get_select_precolumns)

[get\_sequence\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_sequence_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_sequence_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sequence_names)

[get\_sorted\_table\_and\_fkc\_names() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sorted_table_and_fkc_names)

[get\_table\_comment() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_comment)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_table_comment)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_comment)

[get\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_names)

[get\_table\_oid() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid)

[get\_table\_options() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_options)

[get\_temp\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_table_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_temp_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_table_names)

[get\_temp\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_temp_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_view_names)

[get\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.get_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.get_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.get_transaction)

[get\_unique\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_unique_constraints)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_unique_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_unique_constraints)

[get\_view\_definition() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_definition)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_view_definition)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_definition)

[get\_view\_names() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_view_names)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_names)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.get_view_names)

[getset\_factory (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.getset_factory)

[getter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.getter)

[global\_track\_bound\_values (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.global_track_bound_values)

[group (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.group)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/14/orm/composites.html#sqlalchemy.orm.composite.params.group)

[group\_by (sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.group_by)

[group\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.group_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by)

[group\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.group_by_clause)

[grouping\_sets (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.grouping_sets) | H - | | | | --- | --- | | [handle\_dbapi\_exception() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.handle_dbapi_exception)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.handle_dbapi_exception)

[handle\_dialect\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_dialect_kwargs)

[handle\_error() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.handle_error)

[handle\_pool\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_pool_kwargs)

[has() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.has)

[has\_all() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_all)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_all)

[has\_any() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_any)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_any)

[has\_changes() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes)

[has\_identity (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.has_identity)

[has\_index() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_index)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.has_index)

[has\_inherited\_table() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.has_inherited_table)

[has\_key() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_key)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_key)

[(sqlalchemy.engine.LegacyRow method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow.has_key)

[has\_out\_parameters (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.has_out_parameters)

[has\_parent() (sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager.has_parent)

[has\_sequence() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_sequence)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.has_sequence)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_sequence)

[has\_table() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_table)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.has_table)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.has_table) | [HasCacheKey (class in sqlalchemy.sql.traversals)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey)

[HasCTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasCTE)

[HasDescriptionCode (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.HasDescriptionCode)

[hashable (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.hashable)

[(sqlalchemy.types.ARRAY attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.hashable)

[(sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.hashable)

[HasPrefixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes)

[HasSuffixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes)

[having (sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.having)

[having() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.having)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.having)

[hide\_parameters (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.hide_parameters)

[hide\_password (sqlalchemy.engine.URL.render\_as\_string parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.render_as_string.params.hide_password)

[History (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History)

[history (sqlalchemy.orm.AttributeState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.history)

[host (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.host)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.host)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set.params.host)

[HSTORE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE)

[hstore (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore)

[HSTORE.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator)

[hybrid\_method (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method)

[HYBRID\_METHOD (in module sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HYBRID_METHOD)

[hybrid\_property (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property)

[HYBRID\_PROPERTY (in module sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HYBRID_PROPERTY) | I - | | | | --- | --- | | [id\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.id_chooser)

[ident (sqlalchemy.orm.Query.get parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.get.params.ident)

[(sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.ident)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.ident)

[Identified (class in sqlalchemy.log)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.log.Identified)

[IdentifierError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.IdentifierError)

[IdentifierPreparer (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer)

[Identity (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity)

[identity (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.identity)

[identity key](https://docs.sqlalchemy.org/en/14/glossary.html#term-identity-key)

[identity map](https://docs.sqlalchemy.org/en/14/glossary.html#term-identity-map)

[identity\_key (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.identity_key)

[identity\_key() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.util.identity_key)

[(sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.identity_key)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.identity_key)

[identity\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_instance)

[identity\_key\_from\_primary\_key() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_primary_key)

[identity\_key\_from\_row() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row)

[identity\_map (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.identity_map)

[(sqlalchemy.orm.Session attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_map)

[IdentityMap (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.IdentityMap)

[if\_exists (sqlalchemy.schema.DropIndex parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropIndex.params.if_exists)

[(sqlalchemy.schema.DropTable parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropTable.params.if_exists)

[if\_not\_exists (sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateIndex.params.if_not_exists)

[(sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateTable.params.if_not_exists)

[ilike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.ilike)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.ilike)

[IMAGE (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE)

[immediateload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.immediateload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.immediateload)

[imperative](https://docs.sqlalchemy.org/en/14/glossary.html#term-imperative)

[impl (sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.impl)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.impl)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.impl)

[implicit\_returning (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.implicit_returning)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.implicit_returning)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.implicit_returning)

[in\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.in_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.in_)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.in_)

[in\_boolean\_mode (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.in_boolean_mode)

[in\_boolean\_mode() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.in_boolean_mode)

[in\_natural\_language\_mode (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.in_natural_language_mode)

[in\_natural\_language\_mode() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.in_natural_language_mode)

[in\_nested\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.in_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.in_nested_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.in_nested_transaction)

[in\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.in_transaction)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.in_transaction)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.in_transaction)

[include (sqlalchemy.dialects.postgresql.base.PGInspector.get\_view\_names parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_view_names.params.include)

[include\_aliases (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria.params.include_aliases)

[include\_backrefs (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_backrefs)

[include\_collections (sqlalchemy.ext.asyncio.async\_scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified.params.include_collections)

[(sqlalchemy.ext.asyncio.AsyncSession.is\_modified parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_modified.params.include_collections)

[(sqlalchemy.orm.scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.is_modified.params.include_collections)

[include\_columns (sqlalchemy.engine.reflection.Inspector.reflect\_table parameter)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table.params.include_columns)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.include_columns)

[include\_defaults (sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.include_defaults)

[include\_foreign\_key\_constraints (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateTable.params.include_foreign_key_constraints)

[include\_properties (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.include_properties)

[include\_removes (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_removes)

[increment (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.increment)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.increment)

[Index (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Index)

[index (sqlalchemy.engine.CursorResult.scalars parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.scalars.params.index)

[(sqlalchemy.engine.Result.scalars parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.scalars.params.index)

[(sqlalchemy.engine.Row attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row.index)

[index\_elements (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_elements)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_elements)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing.params.index_elements)

[index\_property (class in sqlalchemy.ext.indexable)](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property)

[index\_where (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_where)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing.params.index_where)

[Indexable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable)

[Indexable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.Comparator)

[indexes (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.indexes)

[INET (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INET)

[info (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.info)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.info)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.info)

[inherit\_cache (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inherit_cache)

[(sqlalchemy.dialects.mysql.match attribute)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.inherit_cache)

[(sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.inherit_cache)

[inherit\_condition (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.inherit_condition)

[inherit\_foreign\_keys (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.inherit_foreign_keys)

[inherit\_schema (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema)

[inherits (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.inherits)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.inherits)

[init() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.init)

[(sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.init)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.init)

[init\_collection() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.init_collection)

[init\_failure() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.init_failure)

[init\_scalar() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.init_scalar)

[initialize() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.initialize)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.initialize)

[initialize\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict)

[initially (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.initially)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.initially)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.initially)

[initiator (sqlalchemy.orm.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.append.params.initiator)

[(sqlalchemy.orm.AttributeEvents.append\_wo\_mutation parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.append_wo_mutation.params.initiator)

[(sqlalchemy.orm.AttributeEvents.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.bulk_replace.params.initiator)

[inline (sqlalchemy.dialects.mysql.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.insert.params.inline)

[(sqlalchemy.dialects.postgresql.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert.params.inline)

[(sqlalchemy.dialects.sqlite.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.insert.params.inline)

[inline() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert.inline)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update.inline)

[inner\_columns (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.inner_columns)

[innerjoin (sqlalchemy.orm.joinedload parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.joinedload.params.innerjoin)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.innerjoin)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.innerjoin)

[Insert (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert)

[insert (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listen.params.insert)

[insert() (in module sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.insert)

[(in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert)

[(in module sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.insert)

[insert\_single\_values\_expr (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.insert_single_values_expr)

[inserted (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inserted)

[inserted\_primary\_key (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.inserted_primary_key)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.inserted_primary_key)

[inserted\_primary\_key\_rows (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.inserted_primary_key_rows)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.inserted_primary_key_rows)

[inspect() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect)

[InspectionAttr (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr)

[InspectionAttrInfo (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttrInfo)

[Inspector (class in sqlalchemy.engine.reflection)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector)

[install\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor)

[install\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member)

[install\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state)

[instance (sqlalchemy.ext.asyncio.async\_object\_session parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_object_session.params.instance)

[(sqlalchemy.ext.asyncio.async\_scoped\_session.expire parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.expire.params.instance)

[(sqlalchemy.ext.asyncio.async\_scoped\_session.is\_modified parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified.params.instance) | [instance\_state() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.instance_state)

[InstanceEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents)

[instances (sqlalchemy.orm.SessionEvents.before\_flush parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush.params.instances)

[instances() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.instances)

[InstanceState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState)

[instrument\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute)

[instrument\_class() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.instrument_class)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.CompositeProperty.instrument_class)

[(sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.instrument_class)

[instrument\_collection\_class() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class)

[instrumentation](https://docs.sqlalchemy.org/en/14/glossary.html#term-instrumentation)

[instrumentation\_finders (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders)

[INSTRUMENTATION\_MANAGER (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER)

[InstrumentationEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstrumentationEvents)

[InstrumentationFactory (class in sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory)

[InstrumentationManager (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager)

[instrumented](https://docs.sqlalchemy.org/en/14/glossary.html#term-instrumented)

[InstrumentedAttribute (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute)

[InstrumentedDict (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.InstrumentedDict)

[InstrumentedList (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.InstrumentedList)

[InstrumentedSet (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.InstrumentedSet)

[instrumenting](https://docs.sqlalchemy.org/en/14/glossary.html#term-instrumenting)

[INT (in module sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INT)

[INT4RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT4RANGE)

[INT8RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT8RANGE)

[INTEGER (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER)

[Integer (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer)

[IntegrityError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.IntegrityError)

[InterfaceError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InterfaceError)

[InternalError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InternalError)

[internally\_instrumented() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.internally_instrumented)

[InternalTraversal (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal)

[intersect() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.intersect)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.intersect)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.intersect)

[intersect\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.intersect_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.intersect_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.intersect_all)

[intersection\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.intersection_update)

[INTERVAL (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL)

[Interval (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval)

[invalidate() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.invalidate)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.invalidate)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.invalidate)

[invalidate\_pool\_on\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.invalidate_pool_on_disconnect)

[invalidated (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.invalidated)

[InvalidatePoolError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InvalidatePoolError)

[InvalidRequestError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InvalidRequestError)

[invoke\_statement() (sqlalchemy.orm.ORMExecuteState method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement)

[is\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.is_)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.is_)

[is\_active (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_active)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_active)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.is_active)

[is\_aliased\_class (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_aliased_class)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.is_aliased_class)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_aliased_class)

[is\_attribute (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.is_attribute)

[is\_bound() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.is_bound)

[(sqlalchemy.schema.ThreadLocalMetaData method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.ThreadLocalMetaData.is_bound)

[is\_bundle (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_bundle)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.is_bundle)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_bundle)

[is\_clause\_element (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_clause_element)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.is_clause_element)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_clause_element)

[is\_column\_load (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load)

[is\_comparison (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.is_comparison)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.is_comparison)

[(sqlalchemy.orm.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.op.params.is_comparison)

[is\_delete (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete)

[is\_deleted() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction.is_deleted)

[is\_derived\_from() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.is_derived_from)

[(sqlalchemy.sql.expression.AliasedReturnsRows method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.is_derived_from)

[(sqlalchemy.sql.expression.FromClause method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.is_derived_from)

[is\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.is_disconnect)

[is\_disconnect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.is_disconnect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.is_disconnect)

[is\_distinct\_from() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_distinct_from)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.is_distinct_from)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.is_distinct_from)

[is\_insert (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.is_insert)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.is_insert)

[(sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert)

[is\_instance (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_instance)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_instance)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.is_instance)

[is\_instrumented() (in module sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented)

[is\_literal (sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.column.params.is_literal)

[is\_mapper (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_mapper)

[(sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.is_mapper)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_mapper)

[is\_modified() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.is_modified)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.is_modified)

[(sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.is_modified)

[is\_not() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_not)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.is_not)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.is_not)

[is\_not\_distinct\_from() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_not_distinct_from)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.is_not_distinct_from)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.is_not_distinct_from)

[is\_orm\_statement (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement)

[is\_prepared (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.is_prepared)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.is_prepared)

[(sqlalchemy.engine.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase.params.is_prepared)

[is\_property (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_property)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_property)

[(sqlalchemy.orm.MapperProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.is_property)

[is\_relationship\_load (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load)

[is\_select (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select)

[is\_selectable (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_selectable)

[(sqlalchemy.orm.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InspectionAttr.is_selectable)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.is_selectable)

[is\_sibling() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.is_sibling)

[is\_single\_entity (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.is_single_entity)

[is\_update (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update)

[is\_valid (sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.is_valid)

[isa() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.isa)

[isdelete (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.isdelete)

[isnot() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.isnot)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.isnot)

[isnot\_distinct\_from() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot_distinct_from)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.isnot_distinct_from)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.isnot_distinct_from)

[isolate\_multiinsert\_groups (sqlalchemy.engine.default.DefaultExecutionContext.get\_current\_parameters parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters.params.isolate_multiinsert_groups)

[isolated](https://docs.sqlalchemy.org/en/14/glossary.html#term-isolated)

[isolation](https://docs.sqlalchemy.org/en/14/glossary.html#term-isolation)

[isolation level](https://docs.sqlalchemy.org/en/14/glossary.html#term-isolation-level)

[isolation\_level (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.isolation_level)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.isolation_level)

[isouter (sqlalchemy.orm.Query.join parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.join.params.isouter)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.join.params.isouter)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.isouter)

[isoutparam (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.isoutparam)

[item\_type (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.item_type)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.item_type)

[items() (sqlalchemy.engine.LegacyRow method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow.items)

[(sqlalchemy.engine.RowMapping method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RowMapping.items)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.items)

[iterate() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate)

[(sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate)

[iterate\_properties (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.iterate_properties)

[iterator (sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.iterator)

[iterator() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.iterator)

[IteratorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.IteratorResult)

[iterkeys() (sqlalchemy.engine.LegacyRow method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow.iterkeys)

[itervalues() (sqlalchemy.engine.LegacyRow method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow.itervalues) | J - | | | | --- | --- | | [Join (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Join)

[join() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.join)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.join)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.join)

[join\_depth (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.join_depth)

[join\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.join_from)

[joinedload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.joinedload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.joinedload)

[joins\_implicitly (sqlalchemy.sql.functions.FunctionElement.alias parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias.params.joins_implicitly)

[(sqlalchemy.sql.functions.FunctionElement.column\_valued parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued.params.joins_implicitly)

[(sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.joins_implicitly)

[JSON (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.JSON)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON) | [JSON.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator)

[JSON.JSONElementType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType)

[JSON.JSONIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType)

[JSON.JSONIntIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType)

[JSON.JSONPathType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType)

[JSON.JSONStrIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType)

[json\_deserializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.json_deserializer)

[json\_serializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.json_serializer)

[JSONB (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB)

[JSONB.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator) | K - | | | | --- | --- | | [keep\_existing (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.keep_existing)

[key (sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.key)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.key)

[(sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.key)

[key\_share (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.key_share)

[key\_value\_pairs (sqlalchemy.engine.URL.update\_query\_pairs parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_pairs.params.key_value_pairs)

[keys() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.keys)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.keys)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.keys) | [kwargs (sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.kwargs)

[(sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine_from_config.params.kwargs)

[(sqlalchemy.orm.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.init.params.kwargs) | L - | | | | --- | --- | | [Label (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Label)

[label() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.label)

[(sqlalchemy.orm.Bundle method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.label)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.label)

[label\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.label_length)

[LABEL\_STYLE\_DEFAULT (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.LABEL_STYLE_DEFAULT)

[LABEL\_STYLE\_DISAMBIGUATE\_ONLY (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.LABEL_STYLE_DISAMBIGUATE_ONLY)

[LABEL\_STYLE\_NONE (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.LABEL_STYLE_NONE)

[LABEL\_STYLE\_TABLENAME\_PLUS\_COL (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.LABEL_STYLE_TABLENAME_PLUS_COL)

[lambda\_cache (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.lambda_cache)

[lambda\_stmt() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt)

[LambdaElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement)

[LargeBinary (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary)

[last\_inserted\_params() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.last_inserted_params)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.last_inserted_params)

[last\_updated\_params() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.last_updated_params)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.last_updated_params)

[lastrow\_has\_defaults() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.lastrow_has_defaults)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.lastrow_has_defaults)

[(sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.lastrow_has_defaults)

[lastrowid (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.lastrowid)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.lastrowid)

[Lateral (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Lateral)

[lateral() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.lateral)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.lateral)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.lateral)

[lazy (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.lazy)

[lazy initialization](https://docs.sqlalchemy.org/en/14/glossary.html#term-lazy-initialization)

[lazy load](https://docs.sqlalchemy.org/en/14/glossary.html#term-lazy-load)

[lazy loaded](https://docs.sqlalchemy.org/en/14/glossary.html#term-lazy-loaded)

[lazy loading](https://docs.sqlalchemy.org/en/14/glossary.html#term-lazy-loading)

[lazy loads](https://docs.sqlalchemy.org/en/14/glossary.html#term-lazy-loads)

[lazy\_loaded\_from (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from)

[(sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.lazy_loaded_from)

[lazyload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.lazyload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.lazyload)

[left (sqlalchemy.sql.expression.join parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.join.params.left)

[(sqlalchemy.sql.expression.outerjoin parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.outerjoin.params.left)

[left\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.left_index)

[legacy\_is\_orphan (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.legacy_is_orphan)

[LegacyAPIWarning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.LegacyAPIWarning)

[LegacyCursorResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyCursorResult)

[LegacyRow (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow)

[length (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.length)

[(sqlalchemy.dialects.mssql.IMAGE parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.params.length)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.length) | [like() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.like)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.like)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.like)

[limit (sqlalchemy.sql.expression.CompoundSelect.limit parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit.params.limit)

[(sqlalchemy.sql.expression.GenerativeSelect.limit parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit.params.limit)

[(sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.limit)

[limit() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.limit)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit)

[link\_to\_name (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.link_to_name)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.link_to_name)

[listen() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listen)

[listeners (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.listeners)

[listens\_for() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listens_for)

[literal() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.literal)

[literal\_binds (sqlalchemy.sql.expression.values parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.values.params.literal_binds)

[literal\_column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.literal_column)

[literal\_execute (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.literal_execute)

[literal\_execute\_params (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.literal_execute_params)

[literal\_processor() (sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor)

[(sqlalchemy.types.Integer method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.literal_processor)

[(sqlalchemy.types.JSON.JSONElementType method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.literal_processor)

[lmb (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.lmb)

[Load (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load)

[load (sqlalchemy.orm.scoped\_session.merge parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.merge.params.load)

[(sqlalchemy.orm.Session.merge parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge.params.load)

[load() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.load)

[load\_dialect\_impl() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl)

[load\_history() (sqlalchemy.orm.AttributeState method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.load_history)

[load\_on\_pending (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.load_on_pending)

[load\_only() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.load_only)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.load_only)

[load\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options)

[load\_provisioning() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.load_provisioning)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.load_provisioning)

[loaded\_as\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.loaded_as_persistent)

[loaded\_value (sqlalchemy.orm.AttributeState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.loaded_value)

[loader\_strategy\_path (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path)

[LoaderStrategyException](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException)

[loads() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.loads)

[local\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.local_attr)

[local\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.local_cls)

[local\_execution\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options)

[local\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.local_table)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.local_table)

[(sqlalchemy.orm.registry.map\_imperatively parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.map_imperatively.params.local_table)

[localtime (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtime)

[localtimestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtimestamp)

[logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.logging_name)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.params.logging_name)

[logging\_token (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.logging_token)

[LONG (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.LONG)

[LONGBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGBLOB)

[LONGTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT)

[lower\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.between.params.lower_bound) | M - | | | | --- | --- | | [MACADDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR)

[MACADDR8 (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR8)

[maintain\_column\_froms (sqlalchemy.sql.expression.Select.with\_only\_columns parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns.params.maintain_column_froms)

[make\_transient() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient)

[make\_transient\_to\_detached() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached)

[make\_url() (in module sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.make_url)

[manage() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager.manage)

[manager\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter)

[many to many](https://docs.sqlalchemy.org/en/14/glossary.html#term-many-to-many)

[many to one](https://docs.sqlalchemy.org/en/14/glossary.html#term-many-to-one)

[MANYTOMANY (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MANYTOMANY)

[MANYTOONE (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MANYTOONE)

[map\_column (sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.map_column)

[map\_declaratively() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.map_declaratively)

[map\_imperatively() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.map_imperatively)

[mapped](https://docs.sqlalchemy.org/en/14/glossary.html#term-mapped)

[Mapped (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.Mapped)

[mapped class](https://docs.sqlalchemy.org/en/14/glossary.html#term-mapped-class)

[mapped() (sqlalchemy.orm.registry method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.mapped)

[mapped\_collection() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.mapped_collection)

[mapped\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.mapped_table)

[MappedCollection (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.MappedCollection)

[Mapper (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper)

[mapper (sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.mapper)

[(sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.mapper)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.mapper)

[mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper)

[mapper\_configured() (sqlalchemy.orm.MapperEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.mapper_configured)

[MapperEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents)

[MapperProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty)

[mappers (sqlalchemy.orm.registry attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.mappers)

[mapping](https://docs.sqlalchemy.org/en/14/glossary.html#term-mapping)

[(sqlalchemy.types.Variant parameter)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.params.mapping)

[MappingResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult)

[mappings (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.mappings)

[(sqlalchemy.orm.scoped\_session.bulk\_update\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_update_mappings.params.mappings)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.mappings)

[mappings() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.mappings)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.mappings)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.mappings)

[marshalling](https://docs.sqlalchemy.org/en/14/glossary.html#term-marshalling)

[match (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.match)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.match)

[match() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.match)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.match)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.match)

[MatchType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.MatchType)

[matrix() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.matrix)

[max (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.max)

[max\_identifier\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.max_identifier_length)

[max\_overflow (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.max_overflow)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.QueuePool.params.max_overflow)

[max\_row\_buffer (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.max_row_buffer)

[maxvalue (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.maxvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.maxvalue)

[MEDIUMBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMBLOB)

[MEDIUMINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT)

[MEDIUMTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT)

[memoized\_instancemethod() (sqlalchemy.ext.asyncio.AsyncMappingResult class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncMappingResult.memoized_instancemethod)

[(sqlalchemy.ext.asyncio.AsyncResult class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.memoized_instancemethod)

[(sqlalchemy.ext.asyncio.AsyncScalarResult class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncScalarResult.memoized_instancemethod)

[merge() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.merge)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.merge)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.merge)

[merge\_frozen\_result() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.merge_frozen_result)

[merge\_result() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.merge_result)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.merge_result)

[MergedResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MergedResult) | [metaclass (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.metaclass)

[(sqlalchemy.orm.registry.generate\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.generate_base.params.metaclass)

[metadata](https://docs.sqlalchemy.org/en/14/glossary.html#term-metadata)

[MetaData (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData)

[metadata (sqlalchemy.orm.declarative\_base parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.declarative_base.params.metadata)

[(sqlalchemy.orm.registry parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry.params.metadata)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.metadata)

[method chaining](https://docs.sqlalchemy.org/en/14/glossary.html#term-method-chaining)

[min (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.min)

[minvalue (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.minvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.minvalue)

[MissingGreenlet](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.MissingGreenlet)

[mode (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.mode)

[modified() (sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.modified)

module

[examples.adjacency\_list](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.adjacency_list)

[examples.association](https://docs.sqlalchemy.org/en/14/orm/examples.html#module-examples.association)

[module (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.module)

[MONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.MONEY)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MONEY)

[MovedIn20Warning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.MovedIn20Warning)

[multiparams (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.multiparams)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.multiparams)

[MultipleResultsFound](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.MultipleResultsFound)

[must\_exist (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.must_exist)

[Mutable (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable)

[mutable (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.mutable)

[MutableBase (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase)

[MutableComposite (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite)

[MutableDict (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict)

[MutableList (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList)

[MutableSet (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet) | N - | | | | --- | --- | | [N plus one](https://docs.sqlalchemy.org/en/14/glossary.html#term-N-plus-one)

[N plus one problem](https://docs.sqlalchemy.org/en/14/glossary.html#term-N-plus-one-problem)

[name (sqlalchemy.dialects.mssql.BIT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT.params.name)

[(sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.name)

[(sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.name)

[name\_for\_collection\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_collection_relationship)

[name\_for\_collection\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship)

[name\_for\_scalar\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_scalar_relationship)

[name\_for\_scalar\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship)

[named (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listen.params.named)

[names (sqlalchemy.engine.URL.translate\_connect\_args parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.translate_connect_args.params.names)

[(sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.names)

[naming\_convention (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.params.naming_convention)

[national (sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.national)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.national)

[(sqlalchemy.dialects.mysql.TEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TEXT.params.national)

[native (sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.params.native)

[native\_enum (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.native_enum)

[NCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.NCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NCHAR)

[NCLOB (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.NCLOB)

[nested (sqlalchemy.orm.scoped\_session.begin parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.begin.params.nested)

[(sqlalchemy.orm.Session.begin parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin.params.nested)

[(sqlalchemy.orm.SessionTransaction attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested)

[NestedTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.NestedTransaction)

[nesting (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.nesting)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.nesting)

[(sqlalchemy.sql.expression.Select.cte parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.cte.params.nesting)

[new (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.new)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.new)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.new)

[new\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.bulk_replace.params.new_adapter)

[next\_value (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.next_value)

[next\_value() (sqlalchemy.schema.Sequence method)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.next_value)

[no\_autoflush (sqlalchemy.ext.asyncio.async\_scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.no_autoflush)

[(sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.no_autoflush)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.no_autoflush)

[no\_parameters (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.no_parameters)

[NO\_STATE (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE)

[NoForeignKeysError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoForeignKeysError)

[NoInspectionAvailable](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable)

[noload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.noload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.noload)

[nomaxvalue (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.nomaxvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.nomaxvalue)

[nominvalue (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.nominvalue)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.nominvalue)

[non\_added() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added)

[non\_deleted() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted)

[non\_primary (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.non_primary)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.non_primary)

[none\_as\_null (sqlalchemy.dialects.mssql.JSON parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON.params.none_as_null)

[(sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.none_as_null)

[(sqlalchemy.types.JSON parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null)

[NoReferencedColumnError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoReferencedColumnError)

[NoReferencedTableError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoReferencedTableError)

[NoReferenceError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoReferenceError) | [NoResultFound](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoResultFound)

[normalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.normalize_name)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.normalize_name)

[normalized\_query (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.normalized_query)

[NoSuchColumnError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoSuchColumnError)

[NoSuchModuleError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoSuchModuleError)

[NoSuchTableError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoSuchTableError)

[not\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.not_)

[not\_extend\_left\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.not_extend_left_of)

[not\_extend\_right\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.not_extend_right_of)

[NOT\_EXTENSION (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.NOT_EXTENSION)

[not\_ilike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_ilike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.not_ilike)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.not_ilike)

[not\_in() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_in)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.not_in)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.not_in)

[not\_like() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.not_like)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.not_like)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.not_like)

[notilike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notilike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.notilike)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.notilike)

[notin\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notin_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.notin_)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.notin_)

[notlike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notlike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.notlike)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.notlike)

[NotSupportedError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NotSupportedError)

[now (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.now)

[nowait (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.nowait)

[NTEXT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.NTEXT)

[Null (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Null)

[NULL (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL)

[null() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null)

[nullable (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.nullable)

[NullPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.NullPool)

[nulls\_first() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.nulls_first)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nulls_first)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.nulls_first)

[nulls\_last() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.nulls_last)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nulls_last)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.nulls_last)

[nullsfirst() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullsfirst)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.nullsfirst)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.nullsfirst)

[nullslast() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullslast)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.nullslast)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.nullslast)

[NullType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType)

[num (sqlalchemy.engine.ChunkedIteratorResult.yield\_per parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult.yield_per.params.num)

[(sqlalchemy.engine.CursorResult.yield\_per parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.yield_per.params.num)

[(sqlalchemy.engine.Result.yield\_per parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.yield_per.params.num)

[NUMBER (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.NUMBER)

[NUMERIC (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.NUMERIC)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC)

[Numeric (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric)

[NUMRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.NUMRANGE)

[NVARCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.NVARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NVARCHAR) | O - | | | | --- | --- | | [obj (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.obj)

[(sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.obj)

[(sqlalchemy.orm.attributes.init\_collection parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection.params.obj)

[object (sqlalchemy.ext.asyncio.AsyncConnection.execute parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.execute.params.object)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.object)

[object\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.object_mapper)

[object\_session() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session)

[(sqlalchemy.ext.asyncio.async\_scoped\_session class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.object_session)

[(sqlalchemy.ext.asyncio.AsyncSession class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.object_session)

[object\_state() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state)

[ObjectAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance)

[ObjectDeletedError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError)

[ObjectDereferencedError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError)

[ObjectNotExecutableError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.ObjectNotExecutableError)

[objects (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.objects)

[(sqlalchemy.orm.scoped\_session.flush parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.flush.params.objects)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.objects)

[of (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.of)

[of\_type() (sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.of_type)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.of_type)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.of_type)

[offset (sqlalchemy.sql.expression.CompoundSelect.offset parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset.params.offset)

[(sqlalchemy.sql.expression.GenerativeSelect.offset parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset.params.offset)

[(sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.offset)

[offset() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.offset)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset)

[OID (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.OID)

[oldvalue (sqlalchemy.orm.AttributeEvents.set parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.set.params.oldvalue)

[omit\_aliases (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.omit_aliases)

[omit\_join (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.omit_join)

[on (sqlalchemy.schema.CreateIndex parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateIndex.params.on)

[(sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateTable.params.on)

[(sqlalchemy.schema.DDLElement attribute)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement.on)

[on\_conflict\_do\_nothing() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing)

[(sqlalchemy.dialects.sqlite.Insert method)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_nothing)

[on\_conflict\_do\_update() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update)

[(sqlalchemy.dialects.sqlite.Insert method)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update)

[on\_connect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.on_connect)

[on\_connect\_url() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect_url)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.on_connect_url)

[on\_duplicate\_key\_update() (sqlalchemy.dialects.mysql.Insert method)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update)

[on\_null (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.on_null)

[once (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listen.params.once)

[onclause (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.join.params.onclause)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.onclause)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.onclause)

[ondelete (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.ondelete)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.ondelete)

[one to many](https://docs.sqlalchemy.org/en/14/glossary.html#term-one-to-many)

[one() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.one)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.one)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.one)

[one\_or\_none() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.one_or_none)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.one_or_none)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.one_or_none)

[onebased (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.onebased)

[ONETOMANY (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ONETOMANY)

[only (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.only)

[only\_return\_tuples() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.only_return_tuples)

[only\_synonyms (sqlalchemy.sql.expression.Select.reduce\_columns parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns.params.only_synonyms)

[onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.onupdate)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.onupdate)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.onupdate)

[op (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.op)

[(sqlalchemy.orm.ColumnProperty.Comparator.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate.params.op)

[(sqlalchemy.orm.PropComparator.operate parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.operate.params.op)

[op() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.op)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.op)

[operate() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate)

[(sqlalchemy.orm.ColumnProperty.Comparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.operate) | [OperationalError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.OperationalError)

[operator (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.operator)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.operator)

[(sqlalchemy.orm.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.op.params.operator)

[Operators (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators)

[ops (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.ops)

[optional (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.optional)

[options (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.options)

[(sqlalchemy.orm.scoped\_session.merge parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.merge.params.options)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.options)

[options() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.options)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.options)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.options)

[opts (sqlalchemy.events.ConnectionEvents.set\_connection\_execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options.params.opts)

[(sqlalchemy.events.ConnectionEvents.set\_engine\_execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options.params.opts)

[(sqlalchemy.sql.visitors.iterate parameter)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate.params.opts)

[or\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.or_)

[order (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.order)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.order)

[order\_by (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.order_by)

[(sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over.params.order_by)

[(sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.order_by)

[order\_by() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.order_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.order_by)

[order\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.order_by_clause)

[ordered\_values() (sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update.ordered_values)

[ordering\_attr (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_attr)

[ordering\_func (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_func)

[ordering\_list() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list)

[OrderingList (class in sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList)

[orig (sqlalchemy.exc.StatementError attribute)](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.StatementError.orig)

[original (sqlalchemy.sql.expression.AliasedReturnsRows attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows.original)

[original\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.original_exception)

[orm\_execute\_state (sqlalchemy.orm.SessionEvents.do\_orm\_execute parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute.params.orm_execute_state)

[ORMExecuteState (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState)

[other (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains.params.other)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith.params.other)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike.params.other)

[outerjoin() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.outerjoin)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.outerjoin)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.outerjoin)

[outerjoin\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.outerjoin_from)

[outparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.outparam)

[Over (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Over)

[over() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.over)

[(sqlalchemy.sql.expression.WithinGroup method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup.over)

[overlap() (sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.overlap)

[overlaps (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.overlaps)

[overlaps() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.overlaps)

[overrides (sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.overrides) | P - | | | | --- | --- | | [packagenames (sqlalchemy.sql.functions.Function parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function.params.packagenames)

[parameters (sqlalchemy.engine.Connection.exec\_driver\_sql parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql.params.parameters)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.parameters)

[(sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.parameters)

[params (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.params)

[(sqlalchemy.engine.Compiled.construct\_params parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.construct_params.params.params)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.params)

[params() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.params)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params)

[paramstyle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.paramstyle)

[parent (sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.parent)

[(sqlalchemy.events.DDLEvents.before\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach.params.parent)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.parent)

[partition\_by (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over.params.partition_by)

[partitions() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.partitions)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.partitions)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.partitions)

[passive (sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.passive)

[passive\_deletes (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.passive_deletes)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_deletes)

[passive\_updates (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.passive_updates)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_updates)

[password (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.password)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.password)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set.params.password)

[pattern (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_match parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match.params.pattern)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp\_replace parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_replace.params.pattern)
[\[0\]](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_replace.params.pattern)

[(sqlalchemy.orm.PropComparator.regexp\_match parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.regexp_match.params.pattern)

[pending](https://docs.sqlalchemy.org/en/14/glossary.html#term-pending)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.pending)

[pending\_to\_persistent() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_persistent)

[pending\_to\_transient() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_transient)

[PendingRollbackError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.PendingRollbackError)

[pep-249](https://docs.sqlalchemy.org/en/14/glossary.html#term-pep-249)

[percent (sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.percent)

[(sqlalchemy.sql.expression.GenerativeSelect.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch.params.percent)

[(sqlalchemy.sql.expression.Select.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.fetch.params.percent)

[percent\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percent_rank)

[percentile\_cont (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont)

[percentile\_disc (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_disc)

[persist\_selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.persist_selectable)

[persisted (sqlalchemy.schema.Computed parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Computed.params.persisted)

[persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.persistent)

[persistent\_id() (sqlalchemy.ext.serializer.Serializer method)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id)

[persistent\_load() (sqlalchemy.ext.serializer.Deserializer method)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load)

[persistent\_to\_deleted() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_deleted)

[persistent\_to\_detached() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_detached)

[persistent\_to\_transient() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_transient)

[PGInspector (class in sqlalchemy.dialects.postgresql.base)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector)

[pickle() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.pickle)

[pickler (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.pickler)

[PickleType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType)

[plugin](https://docs.sqlalchemy.org/en/14/glossary.html#term-plugin)

[plugin-enabled](https://docs.sqlalchemy.org/en/14/glossary.html#term-plugin-enabled)

[plugin-specific](https://docs.sqlalchemy.org/en/14/glossary.html#term-plugin-specific)

[plugins (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.plugins)

[polymorphic](https://docs.sqlalchemy.org/en/14/glossary.html#term-polymorphic)

[polymorphic\_identity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_identity)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.polymorphic_identity)

[polymorphic\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_iterator)

[polymorphic\_load (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.polymorphic_load)

[polymorphic\_map (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_map)

[polymorphic\_on (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_on)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.polymorphic_on)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.polymorphic_on)

[polymorphic\_union() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union)

[polymorphically](https://docs.sqlalchemy.org/en/14/glossary.html#term-polymorphically)

[Pool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool)

[pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool)

[pool\_logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_logging_name)

[pool\_pre\_ping (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_pre_ping)

[pool\_recycle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_recycle)

[pool\_reset\_on\_return (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_reset_on_return)

[pool\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_size)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.QueuePool.params.pool_size)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.pool_size)

[pool\_timeout (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_timeout)

[pool\_use\_lifo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.pool_use_lifo)

[poolclass (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.poolclass)

[PoolEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents)

[pop() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.pop)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.pop)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.pop) | [popitem() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.popitem)

[(sqlalchemy.orm.collections.MappedCollection method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.MappedCollection.popitem)

[populate\_existing (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.populate_existing)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.populate_existing)

[populate\_existing() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.populate_existing)

[port (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.port)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.port)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set.params.port)

[positiontup (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.positiontup)

[post\_compile\_params (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.post_compile_params)

[post\_configure\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute)

[post\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.post_exec)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.post_exec)

[post\_instrument\_class() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.post_instrument_class)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.post_instrument_class)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.SynonymProperty.post_instrument_class)

[post\_update (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.post_update)

[postfetch\_cols() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.postfetch_cols)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.postfetch_cols)

[postfetch\_lastrowid (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.postfetch_lastrowid)

[pre\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.pre_exec)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.pre_exec)

[pre\_ping (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.params.pre_ping)

[precedence (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.precedence)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.precedence)

[(sqlalchemy.orm.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.op.params.precedence)

[precision (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.precision)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.precision)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.precision)

[prefetch\_cols() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.prefetch_cols)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.prefetch_cols)

[prefix (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine_from_config.params.prefix)

[prefix\_with() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.prefix_with)

[(sqlalchemy.sql.expression.HasPrefixes method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes.prefix_with)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.prefix_with)

[prefixes (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.prefixes)

[prepare() (sqlalchemy.engine.TwoPhaseTransaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction.prepare)

[(sqlalchemy.ext.automap.AutomapBase class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare)

[(sqlalchemy.ext.declarative.DeferredReflection class method)](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/index.html#sqlalchemy.ext.declarative.DeferredReflection.prepare)

[prepare\_instrumentation() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.prepare_instrumentation)

[prepare\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.prepare_twophase)

[preparer (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.preparer)

[preserve\_order (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.preserve_order)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.preserve_order)

[preserve\_parameter\_order (sqlalchemy.sql.expression.update parameter)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.update.params.preserve_parameter_order)

[previous\_transaction (sqlalchemy.orm.SessionEvents.after\_soft\_rollback parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback.params.previous_transaction)

[primary key](https://docs.sqlalchemy.org/en/14/glossary.html#term-primary-key)

[primary key constraint](https://docs.sqlalchemy.org/en/14/glossary.html#term-primary-key-constraint)

[primary\_key (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.primary_key)

[(sqlalchemy.orm.Mapper.identity\_key\_from\_primary\_key parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_primary_key.params.primary_key)

[primary\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key_from_instance)

[primary\_mapper() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_mapper)

[primaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin)

[PrimaryKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.PrimaryKeyConstraint)

[process\_bind\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param)

[process\_compile\_state() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.process_compile_state)

[process\_compile\_state\_replaced\_entities() (sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.process_compile_state_replaced_entities)

[process\_literal\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param)

[process\_result\_value() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value)

[ProgrammingError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.ProgrammingError)

[propagate (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listen.params.propagate)

[(sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.params.propagate)

[(sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.params.propagate)

[propagate\_to\_loaders (sqlalchemy.orm.Load attribute)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.propagate_to_loaders)

[(sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria.params.propagate_to_loaders)

[PropComparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator)

[properties (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.properties)

[property (sqlalchemy.orm.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_parent.params.property)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.property)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_parent.params.property)

[protocol (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.protocol)

[proxy\_bulk\_set (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.proxy_bulk_set)

[proxy\_factory (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.proxy_factory)

[proxy\_set (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.proxy_set)

Python Enhancement Proposals

[PEP 249](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html#index-1)
[\[0\]](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html#index-2)
[\[1\]](https://docs.sqlalchemy.org/en/14/core/connections.html#index-1)
[\[2\]](https://docs.sqlalchemy.org/en/14/core/internals.html#index-0)
[\[3\]](https://docs.sqlalchemy.org/en/14/core/internals.html#index-1)

[PEP 484](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html#index-0)
[\[0\]](https://docs.sqlalchemy.org/en/14/core/metadata.html#index-0)
[\[1\]](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#index-0)
[\[2\]](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#index-1)
[\[3\]](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#index-2)
[\[4\]](https://docs.sqlalchemy.org/en/14/orm/backref.html#index-0)
[\[5\]](https://docs.sqlalchemy.org/en/14/orm/basic_relationships.html#index-0)
[\[6\]](https://docs.sqlalchemy.org/en/14/orm/declarative_styles.html#index-0)
[\[7\]](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#index-0)
[\[8\]](https://docs.sqlalchemy.org/en/14/orm/extensions/mypy.html#index-0)
[\[9\]](https://docs.sqlalchemy.org/en/14/orm/internals.html#index-0)
[\[10\]](https://docs.sqlalchemy.org/en/14/orm/internals.html#index-1)
[\[11\]](https://docs.sqlalchemy.org/en/14/orm/internals.html#index-2)
[\[12\]](https://docs.sqlalchemy.org/en/14/orm/internals.html#index-3)
[\[13\]](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#index-0)

[python\_type (sqlalchemy.types.ARRAY attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.python_type)

[(sqlalchemy.types.Boolean attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.python_type)

[(sqlalchemy.types.Date attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.python_type) | Q - | | | | --- | --- | | [Query (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query)

[query (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.query)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.query)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set.params.query)

[query() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.query)

[(sqlalchemy.orm.Session method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query)

[query\_cache\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.query_cache_size)

[query\_class (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.query_class)

[query\_cls (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.query_cls)

[query\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.query_expression)

[query\_or\_session (sqlalchemy.ext.baked.BakedQuery.to\_query parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query.params.query_or_session)

[query\_parameters (sqlalchemy.engine.URL.update\_query\_dict parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_dict.params.query_parameters)

[query\_property() (sqlalchemy.orm.scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.query_property)

[query\_string (sqlalchemy.engine.URL.update\_query\_string parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_string.params.query_string)

[QueryableAttribute (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute)

[QueryContext (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryContext)

[QueryContext.default\_load\_options (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryContext.default_load_options) | [QueryEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents)

[QueuePool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.QueuePool)

[quote (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.quote)

[(sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Index.params.quote)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.quote)

[quote() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote)

[quote\_identifier() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_identifier)

[quote\_schema (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.params.quote_schema)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.quote_schema)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.quote_schema)

[quote\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema)

[quoted\_name (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.quoted_name)

[quoting (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.quoting)

[(sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.quoting) | R - | | | | --- | --- | | [raiseerr (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect.params.raiseerr)

[raiseload (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.raiseload)

[(sqlalchemy.orm.defer parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.defer.params.raiseload)

[(sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.deferred.params.raiseload)

[raiseload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.raiseload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.raiseload)

[random (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.random)

[range\_ (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over.params.range_)

[RangeOperators (class in sqlalchemy.dialects.postgresql.ranges)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators)

[RangeOperators.comparator\_factory (class in sqlalchemy.dialects.postgresql.ranges)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory)

[rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank)

[RAW (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.RAW)

[raw (sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.params.raw)

[(sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.params.raw)

[(sqlalchemy.orm.MapperEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.params.raw)

[raw\_connection() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.raw_connection)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.raw_connection)

[read (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.read)

[read committed](https://docs.sqlalchemy.org/en/14/glossary.html#term-read-committed)

[read uncommitted](https://docs.sqlalchemy.org/en/14/glossary.html#term-read-uncommitted)

[REAL (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.REAL)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.REAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.REAL)

[reconstructor() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.reconstructor)

[record\_info (sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.record_info)

[(sqlalchemy.pool.\_ConnectionRecord attribute)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionRecord.record_info)

[recover (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.recover)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.recover)

[(sqlalchemy.engine.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.do_commit_twophase.params.recover)

[recreate() (sqlalchemy.pool.AssertionPool method)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.AssertionPool.recreate)

[(sqlalchemy.pool.NullPool method)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.NullPool.recreate)

[(sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.recreate)

[recursive (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.recursive)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.recursive)

[(sqlalchemy.sql.expression.Select.cte parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.cte.params.recursive)

[recycle (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.params.recycle)

[reduce\_columns (sqlalchemy.orm.Query.subquery parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.subquery.params.reduce_columns)

[reduce\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns)

[refcolumns (sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.refcolumns)

[references() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.references)

[(sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.references)

[referred\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.referred_cls)

[referred\_schema\_fn (sqlalchemy.schema.Table.to\_metadata parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.to_metadata.params.referred_schema_fn)

[referred\_table (sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.referred_table)

[reflect (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflect)

[reflect() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect)

[reflect\_table() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflect_table)

[reflected](https://docs.sqlalchemy.org/en/14/glossary.html#term-reflected)

[reflection](https://docs.sqlalchemy.org/en/14/glossary.html#term-reflection)

[reflection\_options (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflection_options)

[reflecttable() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflecttable)

[refresh() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.refresh)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.refresh)

[(sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh)

[refresh\_flush() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.refresh_flush)

[REGCLASS (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REGCLASS)

[regexp (sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.regexp)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.regexp)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.regexp)

[regexp\_match() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_match)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.regexp_match)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.regexp_match)

[regexp\_replace() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.regexp_replace)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.regexp_replace)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.regexp_replace)

[register\_function() (in module sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.register_function)

[registry](https://docs.sqlalchemy.org/en/14/glossary.html#term-registry)

[(class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.registry)

[relation() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relation)

[relational](https://docs.sqlalchemy.org/en/14/glossary.html#term-relational)

[relational algebra](https://docs.sqlalchemy.org/en/14/glossary.html#term-relational-algebra)

[relationship](https://docs.sqlalchemy.org/en/14/glossary.html#term-relationship)

[relationship() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship)

[RelationshipProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty)

[RelationshipProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator)

[relationships](https://docs.sqlalchemy.org/en/14/glossary.html#term-relationships)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.relationships)

[release](https://docs.sqlalchemy.org/en/14/glossary.html#term-release)

[release\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.release_savepoint)

[released](https://docs.sqlalchemy.org/en/14/glossary.html#term-released)

[releases](https://docs.sqlalchemy.org/en/14/glossary.html#term-releases)

[remote() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.remote)

[remote\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.remote_attr)

[remote\_side (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side)

[remove() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.remove)

[(sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.remove)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.remove)

[remove\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state)

[remove\_state\_actions() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction.remove_state_actions)

[RemovedIn20Warning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.RemovedIn20Warning)

[remover() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.remover)

[removes() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.removes)

[removes\_return() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.removes_return)

[render\_as\_string() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.render_as_string)

[render\_derived() (sqlalchemy.sql.expression.TableValuedAlias method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived)

[render\_literal\_execute() (sqlalchemy.sql.expression.BindParameter method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.render_literal_execute)

[render\_literal\_value() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_literal_value)

[render\_nulls (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.render_nulls)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.render_nulls)

[render\_table\_with\_column\_in\_update\_from (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_table_with_column_in_update_from)

[reorder() (sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.reorder)

[reorder\_on\_append (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.reorder_on_append)

[repeatable read](https://docs.sqlalchemy.org/en/14/glossary.html#term-repeatable-read) | [replace\_existing (sqlalchemy.schema.Table.append\_column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.append_column.params.replace_existing)

[replace\_selectable() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.replace_selectable)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.replace_selectable)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.replace_selectable)

[replacement\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse)

[replaces() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.collection.replaces)

[require\_embedded (sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.ColumnCollection.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.CompoundSelect.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column.params.require_embedded)

[required (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.required)

[reset() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.reset)

[reset\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reset_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.reset_isolation_level)

[reset\_joinpoint() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.reset_joinpoint)

[reset\_on\_return (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool.params.reset_on_return)

[resolve\_fks (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.resolve_fks)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.params.resolve_fks)

[ResourceClosedError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.ResourceClosedError)

[restore\_load\_context (sqlalchemy.orm.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.params.restore_load_context)

[(sqlalchemy.orm.SessionEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.params.restore_load_context)

[Result (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result)

[result (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.result)

[result\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor)

[(sqlalchemy.types.Float method)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor)

[retrieve\_as\_bitwise (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.retrieve_as_bitwise)

[return\_defaults (sqlalchemy.orm.scoped\_session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_insert_mappings.params.return_defaults)

[(sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.return_defaults)

[(sqlalchemy.orm.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.return_defaults)

[return\_defaults() (sqlalchemy.sql.expression.ValuesBase method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.ValuesBase.return_defaults)

[return\_fn (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.return_fn)

[return\_type (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.return_type)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.return_type)

[(sqlalchemy.orm.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.op.params.return_type)

[returned\_defaults (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.returned_defaults)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.returned_defaults)

[returned\_defaults\_rows (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.returned_defaults_rows)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.returned_defaults_rows)

[RETURNING](https://docs.sqlalchemy.org/en/14/glossary.html#term-RETURNING)

[returning (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning)

[returning() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Delete.returning)

[(sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert.returning)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update.returning)

[returning\_column\_descriptions (sqlalchemy.sql.expression.UpdateBase attribute)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.UpdateBase.returning_column_descriptions)

[returning\_precedes\_values (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning_precedes_values)

[RETURNS\_BYTES (sqlalchemy.types.String attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES)

[RETURNS\_CONDITIONAL (sqlalchemy.types.String attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL)

[returns\_rows (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.returns_rows)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.returns_rows)

[RETURNS\_UNICODE (sqlalchemy.types.String attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNICODE)

[returns\_unicode\_strings (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.returns_unicode_strings)

[RETURNS\_UNKNOWN (sqlalchemy.types.String attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNKNOWN)

[ReturnsRows (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.ReturnsRows)

[retval (sqlalchemy.event.listen parameter)](https://docs.sqlalchemy.org/en/14/core/event.html#sqlalchemy.event.listen.params.retval)

[(sqlalchemy.events.ConnectionEvents parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.params.retval)

[(sqlalchemy.orm.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.params.retval)

[reverse() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.reverse)

[reverse\_operate() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.reverse_operate)

[(sqlalchemy.orm.ColumnProperty.Comparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.reverse_operate)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.reverse_operate)

[right (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.join.params.right)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.right)

[(sqlalchemy.sql.expression.FromClause.join parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.join.params.right)

[right\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.right_index)

[rollback() (sqlalchemy.engine.NestedTransaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.NestedTransaction.rollback)

[(sqlalchemy.engine.RootTransaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RootTransaction.rollback)

[(sqlalchemy.engine.Transaction method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Transaction.rollback)

[rollback\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_savepoint)

[rollback\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_twophase)

[rollup (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rollup)

[RootTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RootTransaction)

[Row (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row)

[row (sqlalchemy.orm.Mapper.identity\_key\_from\_row parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row.params.row)

[rowcount (sqlalchemy.engine.BaseCursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.rowcount)

[(sqlalchemy.engine.CursorResult attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.rowcount)

[RowMapping (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RowMapping)

[rows (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over.params.rows)

[ROWVERSION (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION)

[run\_async() (sqlalchemy.engine.AdaptedConnection method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.AdaptedConnection.run_async)

[run\_callable() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.run_callable)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.run_callable)

[(sqlalchemy.future.Engine method)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Engine.run_callable)

[run\_sync() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.run_sync)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.run_sync) | S - | | | | --- | --- | | [SADeprecationWarning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning)

[sampling (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.sampling)

[SAPendingDeprecationWarning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning)

[savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.savepoint)

[SAWarning](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.SAWarning)

[scalar (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.scalar)

[scalar subquery](https://docs.sqlalchemy.org/en/14/glossary.html#term-scalar-subquery)

[scalar() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.scalar)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.scalar)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.scalar)

[scalar\_one() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.scalar_one)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.scalar_one)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.scalar_one)

[scalar\_one\_or\_none() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.scalar_one_or_none)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.scalar_one_or_none)

[(sqlalchemy.ext.asyncio.AsyncResult method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncResult.scalar_one_or_none)

[scalar\_subquery() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.scalar_subquery)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.scalar_subquery)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.scalar_subquery)

[scalar\_table\_valued() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued)

[ScalarResult (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ScalarResult)

[scalars() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.scalars)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.scalars)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.scalars)

[ScalarSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect)

[scale (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.scale)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.scale)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.scale)

[schema (sqlalchemy.dialects.postgresql.base.PGInspector.get\_enums parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums.params.schema)

[(sqlalchemy.dialects.postgresql.base.PGInspector.get\_view\_names parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_view_names.params.schema)

[(sqlalchemy.engine.default.DefaultDialect.get\_sequence\_names parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_sequence_names.params.schema)

[schema\_for\_object (sqlalchemy.sql.compiler.IdentifierPreparer attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.schema_for_object)

[schema\_for\_object() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.schema_for_object)

[schema\_translate\_map (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.params.schema_translate_map)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map)
[\[0\]](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map)

[(sqlalchemy.sql.compiler.DDLCompiler parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.params.schema_translate_map)

[SchemaEventTarget (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.SchemaEventTarget)

[SchemaItem (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.SchemaItem)

[SchemaType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType)

[scoped\_session (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session)

[ScopedRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.util.ScopedRegistry)

[scopefunc (sqlalchemy.ext.asyncio.async\_scoped\_session parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.params.scopefunc)

[(sqlalchemy.orm.scoped\_session parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.params.scopefunc)

[(sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)
[\[0\]](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)

[second\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.second_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.params.second_precision)

[secondary (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondary)

[secondaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondaryjoin)

[seed (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.seed)

[Select (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select)

[select (sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.select)

[select() (in module sqlalchemy.future)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.select)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.select)

[select\_entity\_from() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.select_entity_from)

[select\_from() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.select_from)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Exists.select_from)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.select_from)

[selectable](https://docs.sqlalchemy.org/en/14/glossary.html#term-selectable)

[Selectable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Selectable)

[selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.selectable)

[(sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.selectable)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.selectable)

[SelectBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.SelectBase)

[selected\_columns (sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.selected_columns)

[(sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.selected_columns)

[(sqlalchemy.sql.expression.SelectBase attribute)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.SelectBase.selected_columns)

[selectin\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.selectin_polymorphic)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.selectin_polymorphic)

[selectinload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.selectinload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.selectinload)

[self\_and\_descendants (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.self_and_descendants)

[self\_group() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.self_group)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.self_group)

[(sqlalchemy.sql.expression.BinaryExpression method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression.self_group)

[Sequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence)

[sequence\_name (sqlalchemy.engine.reflection.Inspector.has\_sequence parameter)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.has_sequence.params.sequence_name)

[serializable](https://docs.sqlalchemy.org/en/14/glossary.html#term-serializable)

[Serializer (class in sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer)

[server\_default (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.server_default)

[server\_onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.server_onupdate)

[Session](https://docs.sqlalchemy.org/en/14/glossary.html#term-Session)

[(class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session)

[session (sqlalchemy.ext.asyncio.async\_session parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_session.params.session)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.session)

[(sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session)

[session\_factory (sqlalchemy.ext.asyncio.async\_scoped\_session parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.params.session_factory)

[(sqlalchemy.orm.scoped\_session attribute)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.session_factory)

[(sqlalchemy.orm.scoped\_session parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.params.session_factory)

[session\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.session_user)

[SessionEvents (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents)

[sessionmaker (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker)

[SessionTransaction (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction)

[SET (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.SET)

[set() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.set)

[(sqlalchemy.orm.AttributeEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.set)

[set\_ (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.set_)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update.params.set_)

[set\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute)

[set\_committed\_value() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value)

[set\_connection\_execution\_options() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options)

[set\_engine\_execution\_options() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options)

[set\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_isolation_level)

[(sqlalchemy.engine.Dialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.set_isolation_level)

[set\_label\_style() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.set_label_style)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.set_label_style)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.set_label_style)

[set\_parent() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.set_parent)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.set_parent)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.SynonymProperty.set_parent)

[set\_shard() (sqlalchemy.ext.horizontal\_shard.ShardedQuery method)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard)

[setdefault() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.setdefault)

[(sqlalchemy.orm.collections.MappedCollection method)](https://docs.sqlalchemy.org/en/14/orm/collections.html#sqlalchemy.orm.collections.MappedCollection.setdefault)

[setter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.setter)

[setup() (sqlalchemy.orm.MapperProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty.setup)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty.setup)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.SynonymProperty.setup)

[shard\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shard_chooser)

[ShardedQuery (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery)

[ShardedSession (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession)

[shards (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shards)

[shares\_lineage() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.shares_lineage)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.shares_lineage)

[should\_autocommit\_text() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.should_autocommit_text)

[(sqlalchemy.engine.ExecutionContext method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.ExecutionContext.should_autocommit_text)

[should\_evaluate\_none (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none)

[single (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.single)

[single\_entity (sqlalchemy.orm.Bundle attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.single_entity)

[(sqlalchemy.orm.Bundle parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Bundle.params.single_entity)

[single\_parent (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.single_parent)

[SingletonThreadPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.SingletonThreadPool)

[size (sqlalchemy.engine.CursorResult.partitions parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.partitions.params.size)

[(sqlalchemy.engine.Result.partitions parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.partitions.params.size)

[skip\_fn (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.sort_tables.params.skip_fn)

[skip\_locked (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.skip_locked)

[slice() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.slice)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.slice)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.slice) | [SMALLDATETIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME)

[SMALLINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.SMALLINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SMALLINT)

[SmallInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger)

[SMALLMONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLMONEY)

[soft (sqlalchemy.pool.\_ConnectionFairy.invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy.invalidate.params.soft)

[(sqlalchemy.pool.\_ConnectionRecord.invalidate parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionRecord.invalidate.params.soft)

[soft\_invalidate() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate)

[sort() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.sort)

[sort\_key\_function (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.sort_key_function)

[(sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function)

[sort\_tables() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.sort_tables)

[sort\_tables\_and\_constraints() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints)

[sorted\_tables (sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.sorted_tables)

[spoil() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil)

[(sqlalchemy.sql.expression.StatementLambdaElement method)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil)

[sql\_compiler (sqlalchemy.engine.Compiled attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.sql_compiler)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.sql_compiler)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.sql_compiler)

[sql\_only (sqlalchemy.orm.raiseload parameter)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.raiseload.params.sql_only)

[SQL\_VARIANT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.SQL_VARIANT)

sqlalchemy.dialects.firebird.base

[module](https://docs.sqlalchemy.org/en/14/dialects/firebird.html#module-sqlalchemy.dialects.firebird.base)

sqlalchemy.dialects.firebird.fdb

[module](https://docs.sqlalchemy.org/en/14/dialects/firebird.html#module-sqlalchemy.dialects.firebird.fdb)

sqlalchemy.dialects.firebird.kinterbasdb

[module](https://docs.sqlalchemy.org/en/14/dialects/firebird.html#module-sqlalchemy.dialects.firebird.kinterbasdb)

sqlalchemy.dialects.mssql.base

[module](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#module-sqlalchemy.dialects.mssql.base)

sqlalchemy.dialects.mssql.mxodbc

[module](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#module-sqlalchemy.dialects.mssql.mxodbc)

sqlalchemy.dialects.mssql.pymssql

[module](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pymssql)

sqlalchemy.dialects.mssql.pyodbc

[module](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pyodbc)

sqlalchemy.dialects.mysql.aiomysql

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.aiomysql)

sqlalchemy.dialects.mysql.asyncmy

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.asyncmy)

sqlalchemy.dialects.mysql.base

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.base)

sqlalchemy.dialects.mysql.cymysql

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.cymysql)

sqlalchemy.dialects.mysql.mariadbconnector

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mariadbconnector)

sqlalchemy.dialects.mysql.mysqlconnector

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector)

sqlalchemy.dialects.mysql.mysqldb

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqldb)

sqlalchemy.dialects.mysql.oursql

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.oursql)

sqlalchemy.dialects.mysql.pymysql

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pymysql)

sqlalchemy.dialects.mysql.pyodbc

[module](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pyodbc)

sqlalchemy.dialects.oracle.base

[module](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#module-sqlalchemy.dialects.oracle.base)

sqlalchemy.dialects.oracle.cx\_oracle

[module](https://docs.sqlalchemy.org/en/14/dialects/oracle.html#module-sqlalchemy.dialects.oracle.cx_oracle)

sqlalchemy.dialects.postgresql.asyncpg

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.asyncpg)

sqlalchemy.dialects.postgresql.base

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.base)

sqlalchemy.dialects.postgresql.pg8000

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pg8000)

sqlalchemy.dialects.postgresql.psycopg2

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2)

sqlalchemy.dialects.postgresql.psycopg2cffi

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2cffi)

sqlalchemy.dialects.postgresql.pygresql

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pygresql)

sqlalchemy.dialects.postgresql.pypostgresql

[module](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pypostgresql)

sqlalchemy.dialects.sqlite

[module](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite)

sqlalchemy.dialects.sqlite.aiosqlite

[module](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.aiosqlite)

sqlalchemy.dialects.sqlite.base

[module](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.base)

sqlalchemy.dialects.sqlite.pysqlcipher

[module](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlcipher)

sqlalchemy.dialects.sqlite.pysqlite

[module](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlite)

sqlalchemy.dialects.sybase.base

[module](https://docs.sqlalchemy.org/en/14/dialects/sybase.html#module-sqlalchemy.dialects.sybase.base)

sqlalchemy.dialects.sybase.mxodbc

[module](https://docs.sqlalchemy.org/en/14/dialects/sybase.html#module-sqlalchemy.dialects.sybase.mxodbc)

sqlalchemy.dialects.sybase.pyodbc

[module](https://docs.sqlalchemy.org/en/14/dialects/sybase.html#module-sqlalchemy.dialects.sybase.pyodbc)

sqlalchemy.dialects.sybase.pysybase

[module](https://docs.sqlalchemy.org/en/14/dialects/sybase.html#module-sqlalchemy.dialects.sybase.pysybase)

sqlalchemy.engine

[module](https://docs.sqlalchemy.org/en/14/core/connections.html#module-sqlalchemy.engine)

sqlalchemy.exc

[module](https://docs.sqlalchemy.org/en/14/core/exceptions.html#module-sqlalchemy.exc)

sqlalchemy.ext.associationproxy

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy)

sqlalchemy.ext.automap

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#module-sqlalchemy.ext.automap)

sqlalchemy.ext.baked

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#module-sqlalchemy.ext.baked)

sqlalchemy.ext.compiler

[module](https://docs.sqlalchemy.org/en/14/core/compiler.html#module-sqlalchemy.ext.compiler)

sqlalchemy.ext.declarative

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/api.html#module-sqlalchemy.ext.declarative)

sqlalchemy.ext.horizontal\_shard

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html#module-sqlalchemy.ext.horizontal_shard)

sqlalchemy.ext.hybrid

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#module-sqlalchemy.ext.hybrid)

sqlalchemy.ext.indexable

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable)

sqlalchemy.ext.instrumentation

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation)

sqlalchemy.ext.mutable

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#module-sqlalchemy.ext.mutable)

sqlalchemy.ext.orderinglist

[module](https://docs.sqlalchemy.org/en/14/orm/extensions/orderinglist.html#module-sqlalchemy.ext.orderinglist)

sqlalchemy.ext.serializer

[module](https://docs.sqlalchemy.org/en/14/core/serializer.html#module-sqlalchemy.ext.serializer)

sqlalchemy.future

[module](https://docs.sqlalchemy.org/en/14/core/future.html#module-sqlalchemy.future)

sqlalchemy.inspection

[module](https://docs.sqlalchemy.org/en/14/core/inspection.html#module-sqlalchemy.inspection)

sqlalchemy.orm.exc

[module](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#module-sqlalchemy.orm.exc)

sqlalchemy.orm.instrumentation

[module](https://docs.sqlalchemy.org/en/14/orm/events.html#module-sqlalchemy.orm.instrumentation)

sqlalchemy.orm.session

[module](https://docs.sqlalchemy.org/en/14/orm/session.html#module-sqlalchemy.orm.session)

sqlalchemy.pool

[module](https://docs.sqlalchemy.org/en/14/core/pooling.html#module-sqlalchemy.pool)

sqlalchemy.schema

[module](https://docs.sqlalchemy.org/en/14/core/metadata.html#module-sqlalchemy.schema)

sqlalchemy.sql.expression

[module](https://docs.sqlalchemy.org/en/14/core/expression_api.html#module-sqlalchemy.sql.expression)

sqlalchemy.sql.visitors

[module](https://docs.sqlalchemy.org/en/14/core/visitors.html#module-sqlalchemy.sql.visitors)

sqlalchemy.types

[module](https://docs.sqlalchemy.org/en/14/core/type_basics.html#module-sqlalchemy.types)

[sqlalchemy\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext.sqlalchemy_exception)

[SQLAlchemyError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError)

[SQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler)

[sqltext (sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.sqltext)

[(sqlalchemy.schema.Computed parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Computed.params.sqltext)

[StaleDataError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError)

[start (sqlalchemy.schema.Identity parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Identity.params.start)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence.params.start)

[start() (sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.start)

[(sqlalchemy.ext.asyncio.AsyncTransaction method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncTransaction.start)

[startswith() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.startswith)

[(sqlalchemy.orm.QueryableAttribute method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.startswith)

[state (sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.state)

[(sqlalchemy.schema.DDLElement.execute\_if parameter)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if.params.state)

[state\_dict (sqlalchemy.orm.InstanceEvents.pickle parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.pickle.params.state_dict)

[(sqlalchemy.orm.InstanceEvents.unpickle parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.unpickle.params.state_dict)

[state\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager.state_getter)

[statement (sqlalchemy.engine.Compiled parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled.params.statement)

[(sqlalchemy.engine.Connection.exec\_driver\_sql parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.exec_driver_sql.params.statement)

[(sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execute.params.statement)

[statement\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.statement_compiler)

[StatementError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.StatementError)

[StatementLambdaElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement)

[StaticPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.StaticPool)

[storage\_format (sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.storage_format)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.storage_format)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.storage_format)

[strategy (sqlalchemy.engine.CursorResult.unique parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.unique.params.strategy)

[(sqlalchemy.engine.Result.unique parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.unique.params.strategy)

[stream() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.stream)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.stream)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.stream)

[stream\_results (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.stream_results)

[stream\_scalars() (sqlalchemy.ext.asyncio.async\_scoped\_session method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.async_scoped_session.stream_scalars)

[(sqlalchemy.ext.asyncio.AsyncConnection method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.stream_scalars)

[(sqlalchemy.ext.asyncio.AsyncSession method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.stream_scalars)

[strict (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.strict)

[strictly\_left\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.strictly_left_of)

[strictly\_right\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.strictly_right_of)

[String (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String)

[stringify\_dialect (sqlalchemy.schema.CreateSchema attribute)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateSchema.stringify_dialect)

[(sqlalchemy.schema.DropSchema attribute)](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DropSchema.stringify_dialect)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.stringify_dialect)

[StrSQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler)

[subject (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect.params.subject)

[subquery](https://docs.sqlalchemy.org/en/14/glossary.html#term-subquery)

[Subquery (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Subquery)

[subquery() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.subquery)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.subquery)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.subquery)

[subqueryload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.subqueryload)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.subqueryload)

[subtransactions (sqlalchemy.orm.scoped\_session.begin parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.begin.params.subtransactions)

[(sqlalchemy.orm.Session.begin parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin.params.subtransactions)

[suffix\_with() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.suffix_with)

[(sqlalchemy.sql.expression.HasSuffixes method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes.suffix_with)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.suffix_with)

[sum (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sum)

[sum() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.sum)

[Supported version](https://docs.sqlalchemy.org/en/14/dialects/index.html#term-Supported-version)

[supports\_default\_metavalue (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_default_metavalue)

[supports\_default\_values (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_default_values)

[supports\_empty\_insert (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_empty_insert)

[supports\_execution (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.supports_execution)

[supports\_sane\_multi\_rowcount() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.supports_sane_multi_rowcount)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.supports_sane_multi_rowcount)

[supports\_sane\_rowcount() (sqlalchemy.engine.BaseCursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult.supports_sane_rowcount)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.supports_sane_rowcount)

[supports\_sane\_rowcount\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_rowcount_returning)

[supports\_statement\_cache (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_statement_cache)

[(sqlalchemy.engine.Dialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.supports_statement_cache)

[symmetric (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.between.params.symmetric)

[symmetric\_difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.symmetric_difference_update)

[sync\_backref (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.sync_backref)

[sync\_connection (sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.sync_connection)

[sync\_engine (sqlalchemy.ext.asyncio.AsyncConnection attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncConnection.sync_engine)

[(sqlalchemy.ext.asyncio.AsyncEngine attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.sync_engine)

[sync\_session (sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.sync_session)

[sync\_session\_class (sqlalchemy.ext.asyncio.AsyncSession attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.sync_session_class)

[(sqlalchemy.ext.asyncio.AsyncSession parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncSession.params.sync_session_class)

[synchronize\_session (sqlalchemy.orm.Query.delete parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.delete.params.synchronize_session)

[(sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.update.params.synchronize_session)

[synonym() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.synonym)

[synonym\_for() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.synonym_for)

[SynonymProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.SynonymProperty)

[synonyms (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.synonyms)

[sysdate (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sysdate)

[system (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.system) | T - | | | | --- | --- | | [Table (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table)

[table (sqlalchemy.dialects.mysql.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.insert.params.table)

[(sqlalchemy.dialects.postgresql.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert.params.table)

[(sqlalchemy.dialects.sqlite.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.insert.params.table)

[table metadata](https://docs.sqlalchemy.org/en/14/glossary.html#term-table-metadata)

[table() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.table)

[table\_map (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.table_map)

[table\_name (sqlalchemy.engine.reflection.Inspector.get\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_columns parameter)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/14/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_foreign_keys.params.table_name)

[table\_names() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.table_names)

[(sqlalchemy.future.Engine method)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Engine.table_names)

[table\_valued() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.table_valued)

[(sqlalchemy.sql.expression.FromClause method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.table_valued)

[(sqlalchemy.sql.expression.TableClause method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableClause.table_valued)

[TableClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableClause)

[tablename (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.tablename)

[tables (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.tables)

[(sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.tables)

[(sqlalchemy.schema.MetaData.create\_all parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.create_all.params.tables)

[TableSample (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableSample)

[tablesample() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.tablesample)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.tablesample)

[(sqlalchemy.sql.expression.FromClause method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause.tablesample)

[TableValuedAlias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias)

[target (sqlalchemy.events.DDLEvents.after\_create parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_create.params.target)

[(sqlalchemy.events.DDLEvents.after\_drop parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_drop.params.target)

[(sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.target)

[target\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.target_class)

[target\_collection (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.target_collection)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.target_collection)

[target\_fullname (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.target_fullname)

[TEXT (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TEXT)

[Text (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text)

[text (sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.column.params.text)

[(sqlalchemy.sql.expression.literal\_column parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.literal_column.params.text)

[(sqlalchemy.sql.expression.text parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.text.params.text)

[text() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.text)

[text\_type (sqlalchemy.dialects.postgresql.HSTORE parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.params.text_type)

[TextClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.TextClause)

[TextualSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TextualSelect)

thread safety

[Connection](https://docs.sqlalchemy.org/en/14/core/connections.html#index-0)

[Transaction](https://docs.sqlalchemy.org/en/14/core/connections.html#index-2)

[ThreadLocalMetaData (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.ThreadLocalMetaData)

[ThreadLocalRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.util.ThreadLocalRegistry) | [TIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TIME)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TIME)

[Time (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time)

[timeout (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.QueuePool.params.timeout)

[TimeoutError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.TimeoutError)

[TIMESTAMP (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TIMESTAMP)

[timetuple (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.timetuple)

[(sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.PropComparator.timetuple)

[(sqlalchemy.orm.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.QueryableAttribute.timetuple)

[timezone (sqlalchemy.dialects.mssql.SMALLDATETIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.timezone)

[TINYBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYBLOB)

[TINYINT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TINYINT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYINT)

[TINYTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYTEXT)

[to\_metadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.to_metadata)

[to\_offline\_string() (sqlalchemy.sql.expression.CacheKey method)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string)

[to\_query() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query)

[tometadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.tometadata)

[track\_bound\_values (sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.track_bound_values)

[track\_closure\_variables (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria.params.track_closure_variables)

[(sqlalchemy.sql.expression.lambda\_stmt parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt.params.track_closure_variables)

[Transaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Transaction)

[transaction (sqlalchemy.orm.Session attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction)

[(sqlalchemy.orm.SessionEvents.after\_begin parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin.params.transaction)

[(sqlalchemy.orm.SessionEvents.after\_transaction\_create parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create.params.transaction)

[transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.transaction)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.transaction)

[(sqlalchemy.future.Engine method)](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Engine.transaction)

[transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient)

[(sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.transient)

[transient\_to\_pending() (sqlalchemy.orm.SessionEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.transient_to_pending)

[translate\_connect\_args() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.translate_connect_args)

[translate\_select\_structure (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.translate_select_structure)

[traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse)

[(sqlalchemy.sql.visitors.ExternalTraversal method)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse)

[traverse\_using() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using)

[Traversible (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible)

[TraversibleType (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType)

[true() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.true)

[True\_ (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.True_)

[truncate\_microseconds (sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.truncate_microseconds)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.truncate_microseconds)

[try\_cast() (in module sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.try_cast)

[TSRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSRANGE)

[TSTZRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSTZRANGE)

[TSVECTOR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSVECTOR)

[Tuple (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Tuple)

[tuple\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.tuple_)

[twophase (sqlalchemy.orm.Session parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.twophase)

[TwoPhaseTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction)

[type (sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.type)

[(sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.column.params.type)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.type)

[type\_ (sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.type_)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.type_)

[(sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.type_)

[type\_coerce() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.type_coerce)

[type\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler)

[type\_descriptor() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_descriptor)

[(sqlalchemy.engine.Dialect class method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect.type_descriptor)

[type\_engine() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine)

[TypeCoerce (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.TypeCoerce)

[typecolname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.typecolname)

[TypeDecorator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator)

[TypeDecorator.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator)

[TypeEngine (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine)

[TypeEngine.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator) | U - | | | | --- | --- | | [UnaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.UnaryExpression)

[UnboundExecutionError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError)

[undefer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.undefer)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.undefer)

[undefer\_group() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.undefer_group)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.undefer_group)

[unformat\_identifiers() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.unformat_identifiers)

[Unicode (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode)

[unicode (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.unicode)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.unicode)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.unicode)

[unicode\_error (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.unicode_error)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.unicode_error)

[(sqlalchemy.dialects.mssql.VARCHAR parameter)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.VARCHAR.params.unicode_error)

[UnicodeText (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText)

[uninstall\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor)

[uninstall\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member)

[union() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.union)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.union)

[(sqlalchemy.sql.expression.CTE method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CTE.union)

[union\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.union_all)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.union_all)

[(sqlalchemy.sql.expression.CTE method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CTE.union_all)

[unique (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.unique)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.unique)

[(sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.Index.params.unique)

[unique constraint](https://docs.sqlalchemy.org/en/14/glossary.html#term-unique-constraint)

[unique key index](https://docs.sqlalchemy.org/en/14/glossary.html#term-unique-key-index)

[unique() (sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.unique)

[(sqlalchemy.engine.MappingResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult.unique)

[(sqlalchemy.engine.Result method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.unique)

[unique\_params() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.unique_params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.unique_params)

[(sqlalchemy.sql.expression.ClauseElement method)](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params)

[UniqueConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.UniqueConstraint)

[UNIQUEIDENTIFIER (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER)

[unit of work](https://docs.sqlalchemy.org/en/14/glossary.html#term-unit-of-work)

[unloaded (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.unloaded)

[unloaded\_expirable (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.unloaded_expirable)

[UnmappedClassError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError)

[UnmappedColumnError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError)

[UnmappedError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError)

[UnmappedInstanceError](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError)

[unmodified (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.unmodified)

[unmodified\_intersection() (sqlalchemy.orm.InstanceState method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.unmodified_intersection)

[unpickle() (sqlalchemy.orm.InstanceEvents method)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.unpickle)

[UnreflectableTableError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.UnreflectableTableError) | [unregister() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/14/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.unregister)

[(sqlalchemy.orm.ClassManager method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.ClassManager.unregister)

[unsigned (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.unsigned)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.unsigned)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.unsigned)

[UnsupportedCompilationError](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.UnsupportedCompilationError)

[UOWTransaction (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction)

[Update (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update)

[update() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.update)

[(sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.update)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.update)

[update\_args (sqlalchemy.orm.Query.update parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.update.params.update_args)

[update\_changed\_only (sqlalchemy.orm.scoped\_session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.bulk_save_objects.params.update_changed_only)

[(sqlalchemy.orm.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.update_changed_only)

[update\_context (sqlalchemy.orm.QueryEvents.before\_compile\_update parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update.params.update_context)

[(sqlalchemy.orm.SessionEvents.after\_bulk\_update parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_bulk_update.params.update_context)

[update\_delete\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options)

[update\_execution\_options() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.update_execution_options)

[(sqlalchemy.ext.asyncio.AsyncEngine method)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#sqlalchemy.ext.asyncio.AsyncEngine.update_execution_options)

[update\_expression() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.update_expression)

[update\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.update_from_clause)

[update\_limit\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_limit_clause)

[update\_query\_dict() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_dict)

[update\_query\_pairs() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_pairs)

[update\_query\_string() (sqlalchemy.engine.URL method)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.update_query_string)

[update\_tables\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_tables_clause)

[update\_url() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.update_url)

[UpdateBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.UpdateBase)

[upper\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.between.params.upper_bound)

[URL (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL)

[url (sqlalchemy.create\_mock\_engine parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_mock_engine.params.url)

[(sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.url)

[(sqlalchemy.engine.default.DefaultDialect.create\_connect\_args parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args.params.url)

[use\_alter (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKey.params.use_alter)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/14/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.use_alter)

[use\_labels (sqlalchemy.sql.expression.Select.create\_legacy\_select parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.create_legacy_select.params.use_labels)

[use\_lifo (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.QueuePool.params.use_lifo)

[uselist (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.uselist)

[user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.user)

[user\_defined\_options (sqlalchemy.orm.ORMExecuteState attribute)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options)

[UserDefinedType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType)

[username (sqlalchemy.engine.URL attribute)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.username)

[(sqlalchemy.engine.URL.create parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.create.params.username)

[(sqlalchemy.engine.URL.set parameter)](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL.set.params.username)

[uses\_inspection (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.uses_inspection)

[uses\_objects (sqlalchemy.orm.SynonymProperty attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.SynonymProperty.uses_objects)

[using (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.using)

[UUID (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.UUID) | V - | | | | --- | --- | | [validate\_sql\_phrase() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.validate_sql_phrase)

[validate\_strings (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.validate_strings)

[validates() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#sqlalchemy.orm.validates)

[validators (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.validators)

[vals() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.vals)

[value (sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.value)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.value)

[(sqlalchemy.orm.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.append.params.value)

[value() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.value)

[Values (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Values)

[values (sqlalchemy.dialects.mysql.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.insert.params.values)

[(sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.values)

[(sqlalchemy.dialects.postgresql.insert parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert.params.values) | [values() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.values)

[(sqlalchemy.engine.LegacyRow method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow.values)

[(sqlalchemy.engine.RowMapping method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RowMapping.values)

[values\_callable (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.values_callable)

[ValuesBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.ValuesBase)

[VARBINARY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARBINARY)

[VARCHAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR)

[Variant (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant)

[version id column](https://docs.sqlalchemy.org/en/14/glossary.html#term-version-id-column)

[version\_id\_col (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.version_id_col)

[version\_id\_generator (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.version_id_generator)

[viewonly (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.viewonly)

[views (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.views)

[visitor\_iterator (sqlalchemy.sql.visitors.ExternalTraversal attribute)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator)

[visitors (sqlalchemy.sql.visitors.traverse parameter)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.visitors)

[(sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.visitors) | W - | | | | --- | --- | | [was\_already\_deleted() (sqlalchemy.orm.UOWTransaction method)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.UOWTransaction.was_already_deleted)

[was\_deleted (sqlalchemy.orm.InstanceState attribute)](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.was_deleted)

[was\_deleted() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.was_deleted)

[where (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.where)

[(sqlalchemy.dialects.sqlite.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.Insert.on_conflict_do_update.params.where)

[WHERE clause](https://docs.sqlalchemy.org/en/14/glossary.html#term-WHERE-clause)

[where() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.where)

[(sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Delete.where)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Exists.where)

[where\_criteria (sqlalchemy.orm.with\_loader\_criteria parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria.params.where_criteria)

[whereclause (sqlalchemy.orm.Query attribute)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.whereclause)

[(sqlalchemy.schema.Table.select parameter)](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.select.params.whereclause)

[(sqlalchemy.sql.expression.delete parameter)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.delete.params.whereclause)

[with\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.with_criteria)

[with\_dialect\_options() (sqlalchemy.sql.expression.UpdateBase method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.UpdateBase.with_dialect_options)

[with\_entities() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_entities)

[with\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.with_expression)

[(sqlalchemy.orm.Load method)](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.Load.with_expression)

[with\_for\_update (sqlalchemy.orm.scoped\_session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.get.params.with_for_update)

[(sqlalchemy.orm.scoped\_session.refresh parameter)](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.refresh.params.with_for_update)

[(sqlalchemy.orm.Session.get parameter)](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.with_for_update)

[with\_for\_update() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_for_update)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update) | [with\_hint() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_hint)

[(sqlalchemy.sql.expression.UpdateBase method)](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.UpdateBase.with_hint)

[with\_labels (sqlalchemy.orm.Query.subquery parameter)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.subquery.params.with_labels)

[with\_labels() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_labels)

[with\_loader\_criteria() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria)

[with\_only\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns)

[with\_ordinality (sqlalchemy.sql.functions.FunctionElement.table\_valued parameter)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.with_ordinality)

[with\_parent() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_parent)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_parent)

[with\_polymorphic (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper.params.with_polymorphic)

[with\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/14/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic)

[(sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_polymorphic)

[with\_polymorphic\_mappers (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.with_polymorphic_mappers)

[with\_query\_expansion (sqlalchemy.dialects.mysql.match parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.params.with_query_expansion)

[with\_query\_expansion() (sqlalchemy.dialects.mysql.match method)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.match.with_query_expansion)

[with\_session() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_session)

[with\_statement\_hint() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_statement_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.with_statement_hint)

[with\_ties (sqlalchemy.sql.expression.CompoundSelect.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.fetch.params.with_ties)

[(sqlalchemy.sql.expression.GenerativeSelect.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.fetch.params.with_ties)

[(sqlalchemy.sql.expression.Select.fetch parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.fetch.params.with_ties)

[with\_transformation() (sqlalchemy.orm.Query method)](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_transformation)

[with\_types (sqlalchemy.sql.expression.TableValuedAlias.render\_derived parameter)](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived.params.with_types)

[with\_variant() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant)

[(sqlalchemy.types.Variant method)](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant)

[within\_group() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.within_group)

[(sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group)

[within\_group\_type() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type)

[WithinGroup (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup)

[WrapsColumnExpression (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.elements.WrapsColumnExpression) | X - | | | | --- | --- | | [xid (sqlalchemy.engine.Connection.begin\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.xid) | [XML (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.XML) | Y - | | | | --- | --- | | [YEAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.YEAR)

[yield\_per (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.yield_per)

[yield\_per() (sqlalchemy.engine.ChunkedIteratorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult.yield_per)

[(sqlalchemy.engine.CursorResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult.yield_per)

[(sqlalchemy.engine.FilterResult method)](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FilterResult.yield_per) | | Z - | | | | --- | --- | | [zero\_indexes (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.zero_indexes)

[(sqlalchemy.types.ARRAY attribute)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.zero_indexes)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.zero_indexes)

[zerofill (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.zerofill)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.zerofill)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.zerofill) | | © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Index — SQLAlchemy 1.3 Documentation Release: 1.3.24 legacy version | Release Date: March 30, 2021 [SQLAlchemy 1.3 Documentation](https://docs.sqlalchemy.org/en/13/index.html) ============================================================================= Search terms: [Contents](https://docs.sqlalchemy.org/en/13/contents.html) | [Index](https://docs.sqlalchemy.org/en/13/genindex.html#) | [Download this Documentation](https://docs.sqlalchemy.org/13/sqlalchemy_13.zip) Search terms: [Home](https://docs.sqlalchemy.org/en/13/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/13/sqlalchemy_13.zip) Index ===== [**Symbols**](https://docs.sqlalchemy.org/en/13/genindex.html#Symbols) | [**\_**](https://docs.sqlalchemy.org/en/13/genindex.html#_) | [**A**](https://docs.sqlalchemy.org/en/13/genindex.html#A) | [**B**](https://docs.sqlalchemy.org/en/13/genindex.html#B) | [**C**](https://docs.sqlalchemy.org/en/13/genindex.html#C) | [**D**](https://docs.sqlalchemy.org/en/13/genindex.html#D) | [**E**](https://docs.sqlalchemy.org/en/13/genindex.html#E) | [**F**](https://docs.sqlalchemy.org/en/13/genindex.html#F) | [**G**](https://docs.sqlalchemy.org/en/13/genindex.html#G) | [**H**](https://docs.sqlalchemy.org/en/13/genindex.html#H) | [**I**](https://docs.sqlalchemy.org/en/13/genindex.html#I) | [**J**](https://docs.sqlalchemy.org/en/13/genindex.html#J) | [**K**](https://docs.sqlalchemy.org/en/13/genindex.html#K) | [**L**](https://docs.sqlalchemy.org/en/13/genindex.html#L) | [**M**](https://docs.sqlalchemy.org/en/13/genindex.html#M) | [**N**](https://docs.sqlalchemy.org/en/13/genindex.html#N) | [**O**](https://docs.sqlalchemy.org/en/13/genindex.html#O) | [**P**](https://docs.sqlalchemy.org/en/13/genindex.html#P) | [**Q**](https://docs.sqlalchemy.org/en/13/genindex.html#Q) | [**R**](https://docs.sqlalchemy.org/en/13/genindex.html#R) | [**S**](https://docs.sqlalchemy.org/en/13/genindex.html#S) | [**T**](https://docs.sqlalchemy.org/en/13/genindex.html#T) | [**U**](https://docs.sqlalchemy.org/en/13/genindex.html#U) | [**V**](https://docs.sqlalchemy.org/en/13/genindex.html#V) | [**W**](https://docs.sqlalchemy.org/en/13/genindex.html#W) | [**X**](https://docs.sqlalchemy.org/en/13/genindex.html#X) | [**Y**](https://docs.sqlalchemy.org/en/13/genindex.html#Y) | [**Z**](https://docs.sqlalchemy.org/en/13/genindex.html#Z) * * * Symbols ------- | | | | --- | --- | | [\*\*cparams (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.**cparams)

[(sqlalchemy.engine.interfaces.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.connect.params.**cparams)

[\*\*dialect\_kw (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Constraint.params.**dialect_kw)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.**dialect_kw)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.**dialect_kw)

[\*\*dialect\_kwargs (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.**dialect_kwargs)

[\*\*kw (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.**kw)

[(sqlalchemy.engine.url.URL.translate\_connect\_args parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.translate_connect_args.params.**kw)

[(sqlalchemy.events.DDLEvents.after\_create parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_create.params.**kw)

[\*\*kwargs (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.**kwargs)

[(sqlalchemy.orm.attributes.QueryableAttribute.any parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.any.params.**kwargs)

[(sqlalchemy.orm.attributes.QueryableAttribute.has parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.has.params.**kwargs)

[\*addl\_attrs (sqlalchemy.orm.defer parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.defer.params.*addl_attrs)

[(sqlalchemy.orm.undefer parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.undefer.params.*addl_attrs)

[\*args (sqlalchemy.dialects.mysql.Insert.on\_duplicate\_key\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update.params.*args)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.*args)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.*args) | [\*cargs (sqlalchemy.engine.default.DefaultDialect.connect parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect.params.*cargs)

[(sqlalchemy.engine.interfaces.Dialect.connect parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.connect.params.*cargs)

[\*clauses (sqlalchemy.sql.expression.CompoundSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by.params.*clauses)

[(sqlalchemy.sql.expression.CompoundSelect.order\_by parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by.params.*clauses)

[(sqlalchemy.sql.expression.GenerativeSelect.group\_by parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by.params.*clauses)

[\*cols (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.*cols)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.*cols)

[\*columns (sqlalchemy.orm.deferred parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.deferred.params.*columns)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.*columns)

[(sqlalchemy.schema.UniqueConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.UniqueConstraint.params.*columns)

[\*elements (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.*elements)

[\*entities (sqlalchemy.orm.query.Query.from\_self parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.from_self.params.*entities)

[\*enums (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.*enums)

[\*expr (sqlalchemy.orm.query.Query.distinct parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.distinct.params.*expr)

[(sqlalchemy.sql.expression.CTE.prefix\_with parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CTE.prefix_with.params.*expr)

[(sqlalchemy.sql.expression.CTE.suffix\_with parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CTE.suffix_with.params.*expr)

[\*expressions (sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Index.params.*expressions)

[\*exprs (sqlalchemy.orm.query.Bundle parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.params.*exprs)

[\*from\_obj (sqlalchemy.orm.query.Query.select\_from parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.select_from.params.*from_obj)

[\*fromclauses (sqlalchemy.sql.expression.Select.correlate parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.correlate.params.*fromclauses)

[(sqlalchemy.sql.expression.Select.correlate\_except parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.correlate_except.params.*fromclauses)

[\*multiparams/\*\*params (sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execute.params.*multiparams/**params)

[\*names (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.*names)

[\*opts (sqlalchemy.orm.strategy\_options.Load.options parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.options.params.*opts)

[\*order\_by (sqlalchemy.sql.expression.within\_group parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.within_group.params.*order_by)

[\*other (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.*other)

[(sqlalchemy.orm.attributes.QueryableAttribute.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.operate.params.*other)

[(sqlalchemy.orm.ColumnProperty.Comparator.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate.params.*other)

[\*prefixes (sqlalchemy.orm.query.Query.prefix\_with parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.prefix_with.params.*prefixes)

[\*props (sqlalchemy.orm.query.Query.join parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.join.params.*props)

[\*selects (sqlalchemy.sql.expression.except\_ parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.except_.params.*selects)

[(sqlalchemy.sql.expression.except\_all parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.except_all.params.*selects)

[(sqlalchemy.sql.expression.intersect parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.intersect.params.*selects)

[\*suffixes (sqlalchemy.orm.query.Query.suffix\_with parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.suffix_with.params.*suffixes) | \_ -- | | | | --- | --- | | [\_\_add\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__add__)

[\_\_and\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__and__)

[(sqlalchemy.sql.operators.Operators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.Operators.__and__)

[\_\_call\_\_() (sqlalchemy.orm.scoping.scoped\_session method)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session.__call__)

[(sqlalchemy.orm.session.sessionmaker method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.__call__)

[(sqlalchemy.schema.DDLElement method)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.__call__)

[\_\_delete\_\_() (sqlalchemy.orm.attributes.InstrumentedAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.InstrumentedAttribute.__delete__)

[\_\_div\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__div__)

[\_\_eq\_\_() (sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.__eq__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.__eq__)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.__eq__)

[\_\_ge\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__ge__)

[\_\_get\_\_() (sqlalchemy.orm.attributes.InstrumentedAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.InstrumentedAttribute.__get__)

[\_\_getitem\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__getitem__)

[\_\_gt\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__gt__)

[\_\_hash\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__hash__)

[\_\_init\_\_() (sqlalchemy.dialects.mssql.CHAR method)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.__init__)

[(sqlalchemy.dialects.mssql.IMAGE method)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.__init__)

[(sqlalchemy.dialects.mssql.NCHAR method)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.NCHAR.__init__) | [\_\_invert\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__invert__)

[(sqlalchemy.sql.operators.Operators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.Operators.__invert__)

[\_\_le\_\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__le__)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.__le__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.__le__)

[\_\_lshift\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__lshift__)

[\_\_lt\_\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__lt__)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.__lt__)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.__lt__)

[\_\_mod\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__mod__)

[\_\_mul\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__mul__)

[\_\_ne\_\_() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.__ne__)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.__ne__)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.__ne__)

[\_\_neg\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__neg__)

[\_\_or\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__or__)

[(sqlalchemy.sql.operators.Operators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.Operators.__or__)

[\_\_radd\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__radd__)

[\_\_rdiv\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__rdiv__)

[\_\_rmod\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__rmod__)

[\_\_rmul\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__rmul__)

[\_\_rshift\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__rshift__)

[\_\_rsub\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__rsub__)

[\_\_rtruediv\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__rtruediv__)

[\_\_set\_\_() (sqlalchemy.orm.attributes.InstrumentedAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.InstrumentedAttribute.__set__)

[\_\_sub\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__sub__)

[\_\_truediv\_\_() (sqlalchemy.sql.operators.ColumnOperators method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.__truediv__)

[\_asdict() (sqlalchemy.util.KeyedTuple method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.util.KeyedTuple._asdict)

[\_connection\_record (sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy._connection_record)

[\_ConnectionFairy (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy)

[\_ConnectionRecord (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionRecord)

[\_create\_rule (sqlalchemy.schema.Constraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Constraint.params._create_rule)

[\_CreateDropBase (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema._CreateDropBase)

[\_declarative\_constructor() (in module sqlalchemy.ext.declarative.api)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.api._declarative_constructor)

[\_enable\_transaction\_accounting (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params._enable_transaction_accounting)

[\_fields (sqlalchemy.util.KeyedTuple attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.util.KeyedTuple._fields)

[\_get\_listen\_keys() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._get_listen_keys)

[\_listen\_on\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._listen_on_attribute)

[\_parents (sqlalchemy.ext.mutable.Mutable attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable._parents)

[(sqlalchemy.ext.mutable.MutableBase attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase._parents) | A - | | | | --- | --- | | [AbstractConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.AbstractConcreteBase)

[ACID](https://docs.sqlalchemy.org/en/13/glossary.html#term-ACID)

[ACID model](https://docs.sqlalchemy.org/en/13/glossary.html#term-ACID-model)

[active\_history (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.active_history)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.active_history)

[(sqlalchemy.orm.events.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.params.active_history)

[adapt() (sqlalchemy.types.SchemaType method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.SchemaType.adapt)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.adapt)

[adapt\_on\_names (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.aliased.params.adapt_on_names)

[adapt\_to\_emulated() (sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated)

[adapt\_to\_entity() (sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.adapt_to_entity)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.adapt_to_entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.adapt_to_entity)

[adapter (sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.adapter)

[(sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.adapter)

[(sqlalchemy.orm.RelationshipProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.adapter)

[add() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.add)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.add)

[(sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.add)

[add\_all() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.add_all)

[add\_column() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.add_column)

[add\_columns() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.add_columns)

[add\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.add_criteria)

[add\_entity() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.add_entity)

[add\_is\_dependent\_on() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.add_is_dependent_on)

[add\_properties() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_properties)

[add\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.add_property)

[AddConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.AddConstraint)

[adds() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.adds)

[adjacent\_to() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.adjacent_to)

[after\_attach() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_attach)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_attach)

[after\_begin() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_begin)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_begin)

[after\_bulk\_delete() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_bulk_delete)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_bulk_delete)

[after\_bulk\_update() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_bulk_update)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_bulk_update)

[after\_commit() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_commit)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_commit)

[after\_configured() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.after_configured)

[after\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_create)

[after\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute)

[after\_delete() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.after_delete)

[(sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.after_delete)

[after\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_drop)

[after\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute)

[after\_flush() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_flush)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_flush)

[after\_flush\_postexec() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_flush_postexec)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_flush_postexec)

[after\_insert() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.after_insert)

[(sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.after_insert)

[after\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach)

[after\_rollback() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_rollback)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.after_rollback)

[after\_soft\_rollback() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_soft_rollback)

[after\_transaction\_create() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_transaction_create)

[after\_transaction\_end() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_transaction_end)

[after\_update() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.after_update)

[(sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.after_update)

[against() (sqlalchemy.schema.DDLElement method)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.against)

[aggregate\_order\_by (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.aggregate_order_by)

[Alias (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias)

[alias (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.aliased.params.alias)

[(sqlalchemy.orm.contains\_alias parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.contains_alias.params.alias)

[(sqlalchemy.sql.expression.subquery parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.subquery.params.alias)

[alias() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.alias)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.alias)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.alias)

[aliased (sqlalchemy.orm.query.Query.join parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.join.params.aliased)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.aliased)

[aliased() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.aliased)

[AliasedClass (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.util.AliasedClass)

[AliasedInsp (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.util.AliasedInsp)

[aliasname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.aliasname)

[All() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.All)

[all() (sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.all)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.all)

[(sqlalchemy.types.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all)

[all\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.all_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.all_)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.all_)

[all\_orm\_descriptors (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.all_orm_descriptors)

[allow\_partial\_pks (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.allow_partial_pks)

[always\_refresh (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.always_refresh)

[AmbiguousForeignKeysError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.AmbiguousForeignKeysError)

[and\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.and_)

[annotations](https://docs.sqlalchemy.org/en/13/glossary.html#term-annotations)

[anon\_label (sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.anon_label)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.anon_label)

[ansi\_bind\_rules (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.ansi_bind_rules)

[AnsiFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.AnsiFunction)

[Any() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Any)

[any() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.any)

[any\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.any_)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.any_)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.any_)

[append() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.append)

[(sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.append)

[(sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.append)

[append\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.append_column)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_column)

[append\_constraint() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.append_constraint)

[append\_correlation() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_correlation)

[append\_ddl\_listener() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.append_ddl_listener)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.append_ddl_listener)

[append\_from() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_from)

[append\_group\_by() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.append_group_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.append_group_by)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_group_by)

[append\_having() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_having)

[append\_order\_by() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.append_order_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.append_order_by)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_order_by)

[append\_prefix() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_prefix)

[append\_whereclause() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.append_whereclause)

[appender() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.appender) | [apply\_labels() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.apply_labels)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.apply_labels)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.apply_labels)

[args (sqlalchemy.orm.events.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.init.params.args)

[(sqlalchemy.orm.events.InstanceEvents.init\_failure parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.init_failure.params.args)

[argument (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.argument)

[argument\_for() (sqlalchemy.schema.CheckConstraint class method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for)

[(sqlalchemy.schema.Column class method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.argument_for)

[(sqlalchemy.schema.ColumnCollectionConstraint class method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for)

[argument\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.argument_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.argument_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.argument_name)

[ArgumentError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.ArgumentError)

[ARRAY (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY)

[array (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array)

[ARRAY (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY)

[array() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.array)

[ARRAY.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator)

[array\_agg (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.array_agg)

[array\_agg() (in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array_agg)

[array\_for\_multi\_clause (sqlalchemy.sql.functions.OrderedSetAgg attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.OrderedSetAgg.array_for_multi_clause)

[(sqlalchemy.sql.functions.percentile\_cont attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.percentile_cont.array_for_multi_clause)

[(sqlalchemy.sql.functions.percentile\_disc attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.percentile_disc.array_for_multi_clause)

[as\_boolean() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean)

[as\_comparison() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison)

[as\_declarative() (in module sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.as_declarative)

[as\_float() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float)

[as\_immutable() (sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.as_immutable)

[as\_integer() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer)

[as\_json() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json)

[as\_mutable() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.as_mutable)

[as\_scalar() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.as_scalar)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.as_scalar)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.as_scalar)

[as\_string() (sqlalchemy.types.JSON.Comparator method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string)

[as\_tuple (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.as_tuple)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.params.as_tuple)

[as\_uuid (sqlalchemy.dialects.postgresql.UUID parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.UUID.params.as_uuid)

[asc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.asc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.asc)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.asc)

[ascii (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.ascii)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.ascii)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.ascii)

[asdecimal (sqlalchemy.dialects.oracle.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.DOUBLE_PRECISION.params.asdecimal)

[(sqlalchemy.dialects.postgresql.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOUBLE_PRECISION.params.asdecimal)

[(sqlalchemy.dialects.postgresql.REAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REAL.params.asdecimal)

[AssertionPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.AssertionPool)

[associate\_with() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with)

[associate\_with\_attribute() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.associate_with_attribute)

[association relationship](https://docs.sqlalchemy.org/en/13/glossary.html#term-association-relationship)

[ASSOCIATION\_PROXY (in module sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ASSOCIATION_PROXY)

[association\_proxy() (in module sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy)

[AssociationProxy (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy)

[AssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance)

[astext (sqlalchemy.dialects.postgresql.JSON.Comparator attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator.astext)

[astext\_type (sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.astext_type)

[atomicity](https://docs.sqlalchemy.org/en/13/glossary.html#term-atomicity)

[attr (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.attr)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.attr)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.attr)

[attr\_name (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.attr_name)

[attribute\_instrument() (sqlalchemy.orm.events.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstrumentationEvents.attribute_instrument)

[attribute\_mapped\_collection() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.attribute_mapped_collection)

[attribute\_names (sqlalchemy.orm.session.Session.expire parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.expire.params.attribute_names)

[(sqlalchemy.orm.session.Session.refresh parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.refresh.params.attribute_names)

[AttributeEvents (class in sqlalchemy.orm.events)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents)

[AttributeExtension (class in sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.AttributeExtension)

[AttributeState (class in sqlalchemy.orm.state)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.AttributeState)

[attrname (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.attrname)

[attrs (sqlalchemy.orm.events.InstanceEvents.expire parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.expire.params.attrs)

[(sqlalchemy.orm.events.InstanceEvents.refresh parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.refresh.params.attrs)

[(sqlalchemy.orm.events.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.refresh_flush.params.attrs)

[autocommit (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.autocommit)

[(sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.autocommit)

[(sqlalchemy.orm.session.sessionmaker parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.params.autocommit)

[autocommit() (sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.autocommit)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.autocommit)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.autocommit)

[autoescape (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains.params.autoescape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith.params.autoescape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith.params.autoescape)

[autoflush (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.autoflush)

[(sqlalchemy.orm.session.sessionmaker parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.params.autoflush)

[autoflush() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.autoflush)

[autoincrement (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.autoincrement)

[autoload (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.autoload)

[autoload\_replace (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.autoload_replace)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.autoload_replace)

[autoload\_with (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.autoload_with)

[automap\_base() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base)

[AutomapBase (class in sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase) | B - | | | | --- | --- | | [back\_populates (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.back_populates)

[backref](https://docs.sqlalchemy.org/en/13/glossary.html#term-backref)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.backref)

[backref() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.backref)

[bake\_queries (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.bake_queries)

[baked\_lazyload() (sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.baked_lazyload)

[BakedQuery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery)

[Bakery (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Bakery)

[bakery() (in module sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.bakery)

[(sqlalchemy.ext.baked.BakedQuery class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.bakery)

[base (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.base)

[(sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.base)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.base)

[base\_columns (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.base_columns)

[base\_mapper (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.base_mapper)

[batch (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.batch)

[before\_attach() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.before_attach)

[before\_commit() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.before_commit)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.before_commit)

[before\_compile() (sqlalchemy.orm.events.QueryEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile)

[before\_compile\_delete() (sqlalchemy.orm.events.QueryEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile_delete)

[before\_compile\_update() (sqlalchemy.orm.events.QueryEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile_update)

[before\_configured() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.before_configured)

[before\_create() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.before_create)

[before\_cursor\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute)

[before\_delete() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.before_delete)

[(sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.before_delete)

[before\_drop() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.before_drop)

[before\_execute() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute)

[before\_flush() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.before_flush)

[(sqlalchemy.orm.interfaces.SessionExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension.before_flush)

[before\_insert() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.before_insert)

[(sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.before_insert)

[before\_mapper\_configured() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.before_mapper_configured)

[before\_parent\_attach() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach)

[before\_update() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.before_update)

[(sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.before_update)

[begin() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.begin)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.begin)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.begin)

[begin\_nested() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.begin_nested)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.begin_nested)

[begin\_twophase() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.begin_twophase)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.begin_twophase)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.begin_twophase)

[between() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.between)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.between)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.between)

[BFILE (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.BFILE)

[bidirectional relationship](https://docs.sqlalchemy.org/en/13/glossary.html#term-bidirectional-relationship)

[BIGINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.BIGINT)

[BigInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.BigInteger)

[BINARY (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BINARY)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.BINARY)

[binary (sqlalchemy.dialects.mysql.CHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR.params.binary)

[(sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.binary)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.binary)

[BinaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression)

[bind (sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.bind)

[(sqlalchemy.dialects.postgresql.ENUM.drop parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop.params.bind)

[(sqlalchemy.engine.interfaces.Compiled parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.params.bind) | [bind\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression)

[bind\_mapper() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bind_mapper)

[bind\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor)

[(sqlalchemy.types.Interval method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval.bind_processor)

[bind\_table() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bind_table)

[bindparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam)

[BindParameter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter)

[bindparams (sqlalchemy.sql.expression.text parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.text.params.bindparams)

[bindparams() (sqlalchemy.sql.expression.TextClause method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.bindparams)

[binds (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.binds)

[BIT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.BIT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BIT)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BIT)

[BLANK\_SCHEMA (sqlalchemy.schema.sqlalchemy.schema attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.sqlalchemy.schema.BLANK_SCHEMA)

[BLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BLOB)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.BLOB)

[bool\_op() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.bool_op)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.bool_op)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.bool_op)

[BOOLEAN (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.BOOLEAN)

[Boolean (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean)

[branch (sqlalchemy.events.ConnectionEvents.engine\_connect parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.engine_connect.params.branch)

[bulk\_insert\_mappings() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_insert_mappings)

[bulk\_replace() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.bulk_replace)

[(sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.bulk_replace)

[bulk\_save\_objects() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_save_objects)

[bulk\_update\_mappings() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_update_mappings)

[Bundle (class in sqlalchemy.orm.query)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle)

[BYTEA (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BYTEA) | C - | | | | --- | --- | | [c (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.c)

[(sqlalchemy.orm.query.Bundle attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.c)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.c)

[cache (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.cache)

[callable\_ (sqlalchemy.schema.DDLElement attribute)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.callable_)

[(sqlalchemy.schema.DDLElement.execute\_if parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if.params.callable_)

[(sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.callable_)

[callables (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.callables)

[candidate key](https://docs.sqlalchemy.org/en/13/glossary.html#term-candidate-key)

[cascade](https://docs.sqlalchemy.org/en/13/glossary.html#term-cascade)

[(sqlalchemy.orm.interfaces.MapperProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.cascade)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade)

[cascade\_backrefs (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade_backrefs)

[cascade\_iterator() (sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.cascade_iterator)

[(sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.cascade_iterator)

[cascade\_scalar\_deletes (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.cascade_scalar_deletes)

[CascadeOptions (class in sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.util.CascadeOptions)

[cascading (sqlalchemy.ext.declarative.declared\_attr attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declared_attr.cascading)

[Case (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Case)

[case() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.case)

[case\_sensitive (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.case_sensitive)

[Cast (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Cast)

[cast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.cast)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.cast)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.cast)

[cast\_nulls (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.cast_nulls)

[chain() (sqlalchemy.sql.visitors.ClauseVisitor method)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ClauseVisitor.chain)

[chained\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.chained_exception)

[changed() (sqlalchemy.ext.mutable.Mutable method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.changed)

[(sqlalchemy.ext.mutable.MutableComposite method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite.changed)

[CHAR (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.CHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.CHAR)

[char\_length (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.char_length)

[charset (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.charset)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.charset)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.charset)

[check constraint](https://docs.sqlalchemy.org/en/13/glossary.html#term-check-constraint)

[check\_modified() (sqlalchemy.orm.identity.IdentityMap method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.identity.IdentityMap.check_modified)

[CheckConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint)

[checkfirst (sqlalchemy.dialects.postgresql.ENUM.create parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create.params.checkfirst)

[(sqlalchemy.dialects.postgresql.ENUM.drop parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop.params.checkfirst)

[(sqlalchemy.schema.MetaData.create\_all parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.create_all.params.checkfirst)

[checkin() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.checkin)

[(sqlalchemy.interfaces.PoolListener method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.PoolListener.checkin)

[checkout() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.checkout)

[(sqlalchemy.interfaces.PoolListener method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.PoolListener.checkout)

[CIDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.CIDR)

[CircularDependencyError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.CircularDependencyError)

[class\_ (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.class_)

[(sqlalchemy.orm.attributes.QueryableAttribute.of\_type parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.of_type.params.class_)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.class_)

[class\_attribute (sqlalchemy.orm.interfaces.MapperProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.class_attribute)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.class_attribute)

[(sqlalchemy.orm.SynonymProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.SynonymProperty.class_attribute)

[class\_instrument() (sqlalchemy.orm.events.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstrumentationEvents.class_instrument)

[class\_manager (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.class_manager)

[class\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.class_mapper)

[class\_registry (sqlalchemy.ext.declarative.declarative\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base.params.class_registry)

[class\_uninstrument() (sqlalchemy.orm.events.InstrumentationEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstrumentationEvents.class_uninstrument)

[classes (sqlalchemy.ext.automap.AutomapBase attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.classes)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.classes)

[ClassManager (class in sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager)

[classname\_for\_table (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.classname_for_table)

[classname\_for\_table() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table)

[clause (sqlalchemy.ext.horizontal\_shard.ShardedSession.connection parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection.params.clause)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.clause)

[(sqlalchemy.orm.session.Session.connection parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.connection.params.clause)

[ClauseElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ClauseElement)

[clauseelement (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.clauseelement)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.clauseelement)

[ClauseList (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ClauseList)

[clauses (sqlalchemy.sql.functions.FunctionElement attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses)

[ClauseVisitor (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ClauseVisitor)

[clear() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.clear)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.clear)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.clear)

[clear\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.clear_mappers)

[CLOB (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.CLOB)

[cloned\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse)

[CloningVisitor (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.CloningVisitor)

[close() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.close)

[(sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.close)

[(sqlalchemy.engine.Transaction method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Transaction.close)

[close\_all() (sqlalchemy.orm.session.Session class method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.close_all)

[(sqlalchemy.orm.session.sessionmaker class method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.close_all)

[close\_all\_sessions() (in module sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.close_all_sessions)

[close\_detached() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.close_detached)

[close\_with\_result (sqlalchemy.engine.Engine.contextual\_connect parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.contextual_connect.params.close_with_result)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession.connection parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection.params.close_with_result)

[(sqlalchemy.orm.session.Session.connection parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.connection.params.close_with_result)

[closed (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.closed)

[cls (sqlalchemy.ext.declarative.declarative\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base.params.cls)

[coalesce (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.coalesce)

[coerce() (sqlalchemy.ext.mutable.Mutable class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce)

[(sqlalchemy.ext.mutable.MutableBase class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce)

[(sqlalchemy.ext.mutable.MutableDict class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.coerce)

[coerce\_arguments (sqlalchemy.sql.functions.GenericFunction attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.GenericFunction.coerce_arguments)

[coerce\_compared\_value() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value)

[(sqlalchemy.types.UserDefinedType method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.UserDefinedType.coerce_compared_value)

[coerce\_to\_is\_types (sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types)

[collate() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.collate)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.collate)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.collate)

[collation (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.collation)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.collation)

[(sqlalchemy.dialects.mssql.VARCHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.VARCHAR.params.collation)

[collection (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#id0)
, [\[4\]](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection)

[(sqlalchemy.orm.events.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.init_collection.params.collection)

[collection\_adapter (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection_adapter)

[(sqlalchemy.orm.events.AttributeEvents.init\_collection parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.init_collection.params.collection_adapter)

[collection\_class (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.collection_class)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.collection_class)

[CollectionAdapter (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.CollectionAdapter)

[cols (sqlalchemy.sql.expression.ValuesBase.return\_defaults parameter)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.ValuesBase.return_defaults.params.cols)

[coltype (sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.coltype)

[(sqlalchemy.types.Boolean.result\_processor parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean.result_processor.params.coltype)

[(sqlalchemy.types.Float.result\_processor parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Float.result_processor.params.coltype)

[Column (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column)

[column (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.column)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.column)

[(sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.column)

[column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.column)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.column)

[column\_attrs (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.column_attrs)

[column\_descriptions (sqlalchemy.orm.query.Query attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.column_descriptions)

[column\_expression() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression)

[(sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression)

[column\_keys (sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compile.params.column_keys)

[(sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.column_keys)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.compile.params.column_keys)

[column\_mapped\_collection() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.column_mapped_collection)

[column\_prefix (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.column_prefix)

[column\_property() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property)

[column\_reflect() (sqlalchemy.events.DDLEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.column_reflect)

[ColumnAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance)

[ColumnClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnClause)

[ColumnCollection (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection)

[ColumnCollectionConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint)

[ColumnCollectionMixin (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionMixin)

[ColumnDefault (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.ColumnDefault)

[ColumnElement (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement)

[ColumnOperators (class in sqlalchemy.sql.operators)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators)

[ColumnProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty)

[ColumnProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator)

[columns (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.columns)

[(sqlalchemy.orm.query.Bundle attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.columns)

[(sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.columns)

[columns clause](https://docs.sqlalchemy.org/en/13/glossary.html#term-columns-clause)

[columns() (sqlalchemy.sql.expression.TextClause method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.TextClause.columns)

[comment (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.comment)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.comment)

[commit() (sqlalchemy.engine.Transaction method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Transaction.commit)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.commit)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.commit)

[commit\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.commit_twophase)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.commit_twophase)

[common\_parent() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.common_parent)

[comparable\_using() (in module sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.comparable_using)

[ComparableProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ComparableProperty)

[Comparator (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.Comparator)

[comparator (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.comparator)

[(sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.PickleType.params.comparator)

[comparator() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.comparator)

[comparator\_factory (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSON attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.comparator_factory)

[(sqlalchemy.dialects.postgresql.JSONB attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.comparator_factory)

[compare() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compare)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.compare)

[(sqlalchemy.sql.elements.False\_ method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.False_.compare)

[compare\_against\_backend() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend)

[compare\_values() (sqlalchemy.types.ARRAY method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.compare_values)

[(sqlalchemy.types.PickleType method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.PickleType.compare_values)

[(sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values)

[compile() (sqlalchemy.engine.interfaces.Compiled method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.compile)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compile)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.compile) | [compile\_kwargs (sqlalchemy.engine.interfaces.Compiled parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.params.compile_kwargs)

[(sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compile.params.compile_kwargs)

[(sqlalchemy.schema.Table.compile parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.compile.params.compile_kwargs)

[Compiled (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled)

[compiled\_cache (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.compiled_cache)

[CompileError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.CompileError)

[compiles() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/13/core/compiler.html#sqlalchemy.ext.compiler.compiles)

[composite() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite)

[CompositeProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty)

[CompositeProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty.Comparator)

[CompositeProperty.CompositeBundle (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle)

[composites (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.composites)

[CompoundSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect)

[Computed (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Computed)

[concat (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.concat)

[concat() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.concat)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.concat)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.concat)

[Concatenable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Concatenable)

[Concatenable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Concatenable.Comparator)

[concrete (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.concrete)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.concrete)

[ConcreteBase (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.ConcreteBase)

[ConcurrentModificationError (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.ConcurrentModificationError)

[configuration (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine_from_config.params.configuration)

[configure() (sqlalchemy.orm.scoping.scoped\_session method)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session.configure)

[(sqlalchemy.orm.session.sessionmaker method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.configure)

[configure\_mappers() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.configure_mappers)

[configured (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.configured)

[confirm\_deleted\_rows (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.confirm_deleted_rows)

[conn (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.conn)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.conn)

[conn\_type (sqlalchemy.types.TypeEngine.compare\_against\_backend parameter)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend.params.conn_type)

[connect() (sqlalchemy.engine.Connectable method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.connect)

[(sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.connect)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.connect)

[connect\_args (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.connect_args)

[Connectable (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable)

[Connection (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection)

[connection (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.connection)

[connection() (sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.connection)

[connection\_proxy (sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_proxy)

[connection\_record (sqlalchemy.events.PoolEvents.checkin parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.checkin.params.connection_record)

[(sqlalchemy.events.PoolEvents.checkout parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.checkout.params.connection_record)

[(sqlalchemy.events.PoolEvents.connect parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.connect.params.connection_record)

[ConnectionEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents)

[ConnectionProxy (class in sqlalchemy.interfaces)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy)

[consistency](https://docs.sqlalchemy.org/en/13/glossary.html#term-consistency)

[constrained](https://docs.sqlalchemy.org/en/13/glossary.html#term-constrained)

[constraint](https://docs.sqlalchemy.org/en/13/glossary.html#term-constraint)

[Constraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Constraint)

[constraint (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.constraint)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.constraint)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.constraint)

[constraints](https://docs.sqlalchemy.org/en/13/glossary.html#term-constraints)

[construct\_arguments (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments)

[construct\_params() (sqlalchemy.engine.interfaces.Compiled method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.construct_params)

[(sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.construct_params)

[(sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.construct_params)

[constructor (sqlalchemy.ext.declarative.declarative\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base.params.constructor)

[contained\_by() (sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contained_by)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.contained_by)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.contained_by)

[contains() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/13/core/event.html#sqlalchemy.event.contains)

[(sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.contains)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.contains)

[contains\_alias() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.contains_alias)

[contains\_column() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.contains_column)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.contains_column)

[(sqlalchemy.schema.ForeignKeyConstraint method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.contains_column)

[contains\_eager() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.contains_eager)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.contains_eager)

[contains\_expanding\_parameters (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.contains_expanding_parameters)

[context (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.context)

[(sqlalchemy.events.ConnectionEvents.dbapi\_error parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.dbapi_error.params.context)

[contextual\_connect() (sqlalchemy.engine.Connectable method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.contextual_connect)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.contextual_connect)

[conv() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.conv)

[convert\_int (sqlalchemy.dialects.mssql.ROWVERSION parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION.params.convert_int)

[(sqlalchemy.dialects.mssql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP.params.convert_int)

[convert\_unicode (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.convert_unicode)

[(sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.convert_unicode)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.convert_unicode)

[converter() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.converter)

[copy() (sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.copy)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.copy)

[(sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.copy)

[copy\_and\_process() (sqlalchemy.sql.visitors.CloningVisitor method)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.CloningVisitor.copy_and_process)

[correlate (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.correlate)

[correlate() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.correlate)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.correlate)

[correlate\_except() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.correlate_except)

[correlated subqueries](https://docs.sqlalchemy.org/en/13/glossary.html#term-correlated-subqueries)

[correlated subquery](https://docs.sqlalchemy.org/en/13/glossary.html#term-correlated-subquery)

[correlates](https://docs.sqlalchemy.org/en/13/glossary.html#term-correlates)

[correspond\_on\_equivalents() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.correspond_on_equivalents)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.correspond_on_equivalents)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.correspond_on_equivalents)

[corresponding\_column() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.corresponding_column)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.corresponding_column)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column)

[count (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.count)

[count() (sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.count)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.count)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.count)

[count\_from (sqlalchemy.ext.orderinglist.ordering\_list parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list.params.count_from)

[count\_from\_0() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_0)

[count\_from\_1() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_1)

[count\_from\_n\_factory() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.count_from_n_factory)

[create() (sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.create)

[(sqlalchemy.engine.Connectable method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.create)

[(sqlalchemy.schema.Index method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Index.create)

[create\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.create_all)

[create\_connect\_args() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.create_connect_args)

[create\_constraint (sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.create_constraint)

[(sqlalchemy.types.Boolean parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean.params.create_constraint)

[(sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.create_constraint)

[create\_cursor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.create_cursor)

[(sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.create_cursor)

[create\_engine() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine)

[create\_row\_processor() (sqlalchemy.orm.CompositeProperty.CompositeBundle method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty.CompositeBundle.create_row_processor)

[(sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.create_row_processor)

[(sqlalchemy.orm.query.Bundle method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.create_row_processor)

[create\_type (sqlalchemy.dialects.postgresql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.params.create_type)

[create\_xid() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_xid)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.create_xid)

[CreateColumn (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateColumn)

[CreateEnginePlugin (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.CreateEnginePlugin)

[createfunc (sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)
, [\[4\]](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.createfunc)

[CreateIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateIndex)

[CreateSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateSchema)

[CreateSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateSequence)

[CreateTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateTable)

[creator (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.creator)

[(sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.creator)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.creator)

[criterion (sqlalchemy.orm.attributes.QueryableAttribute.any parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.any.params.criterion)

[(sqlalchemy.orm.attributes.QueryableAttribute.has parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.has.params.criterion)

[(sqlalchemy.orm.PropComparator.any parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.any.params.criterion)

[CRUD](https://docs.sqlalchemy.org/en/13/glossary.html#term-CRUD)

[crud](https://docs.sqlalchemy.org/en/13/glossary.html#term-crud)

[CTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CTE)

[cte() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.cte)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.cte)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte)

[cube (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.cube)

[cume\_dist (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.cume_dist)

[current\_date (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.current_date)

[current\_executable (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.current_executable)

[current\_parameters (sqlalchemy.engine.default.DefaultExecutionContext attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.current_parameters)

[current\_time (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.current_time)

[current\_timestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.current_timestamp)

[current\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.current_user)

[cursor (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.cursor)

[(sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.cursor)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.cursor)

[cursor() (sqlalchemy.pool.\_ConnectionFairy method)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy.cursor)

[cursor\_execute() (sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.cursor_execute)

[custom\_op (class in sqlalchemy.sql.operators)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.custom_op)

[cycle (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.cycle) | D - | | | | --- | --- | | [data marshalling](https://docs.sqlalchemy.org/en/13/glossary.html#term-data-marshalling)

[database (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.database)

[DatabaseError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.DatabaseError)

[DataError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.DataError)

[datatype (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.datatype)

[DATE (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DATE)

[(class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.DATE)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE)

[Date (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Date)

[DATERANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DATERANGE)

[DATETIME (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.DATETIME)

[DateTime (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.DateTime)

[DATETIME2 (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIME2)

[DATETIMEOFFSET (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.DATETIMEOFFSET)

[day\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.day_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval.params.day_precision)

[DBAPI](https://docs.sqlalchemy.org/en/13/glossary.html#term-DBAPI)

[dbapi\_connection (sqlalchemy.engine.default.DefaultDialect.do\_begin parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit.params.dbapi_connection)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback.params.dbapi_connection)

[dbapi\_error() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.dbapi_error)

[dbapi\_exception\_translation\_map (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.dbapi_exception_translation_map)

[DBAPIError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.DBAPIError)

[DDL](https://docs.sqlalchemy.org/en/13/glossary.html#term-DDL)

[(class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDL)

[ddl\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.ddl_compiler)

[DDLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler)

[DDLElement (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement)

[DDLEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents)

[DECIMAL (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.DECIMAL)

[decimal\_return\_scale (sqlalchemy.dialects.oracle.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.DOUBLE_PRECISION.params.decimal_return_scale)

[(sqlalchemy.dialects.postgresql.DOUBLE\_PRECISION parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOUBLE_PRECISION.params.decimal_return_scale)

[(sqlalchemy.dialects.postgresql.REAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REAL.params.decimal_return_scale)

[declarative\_base (sqlalchemy.ext.automap.automap\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.automap_base.params.declarative_base)

[declarative\_base() (in module sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base)

[declared\_attr (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declared_attr)

[default (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.default)

[(sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.default)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.default)

[default\_expr (sqlalchemy.orm.query\_expression parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.query_expression.params.default_expr)

[default\_from() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.default_from)

[default\_isolation\_level (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.default_isolation_level)

[default\_schema\_name (sqlalchemy.engine.reflection.Inspector attribute)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.default_schema_name)

[DefaultClause (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.DefaultClause)

[DefaultDialect (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect)

[DefaultExecutionContext (class in sqlalchemy.engine.default)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext)

[DefaultGenerator (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.DefaultGenerator)

[defaultload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.defaultload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.defaultload)

[defer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.defer)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.defer)

[deferrable (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.deferrable)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.deferrable)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.deferrable)

[deferred (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.deferred)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.deferred)

[deferred() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.deferred)

[DeferredReflection (class in sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.DeferredReflection)

[define\_constraint\_remote\_table() (sqlalchemy.sql.compiler.DDLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.define_constraint_remote_table)

[defined() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.defined)

[del\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute)

[Delete (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Delete)

[delete() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.delete)

[(sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.delete)

[(sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.delete)

[delete\_context (sqlalchemy.orm.events.QueryEvents.before\_compile\_delete parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile_delete.params.delete_context)

[(sqlalchemy.orm.events.SessionEvents.after\_bulk\_delete parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_bulk_delete.params.delete_context)

[delete\_extra\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.delete_extra_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.delete_extra_from_clause)

[deleted](https://docs.sqlalchemy.org/en/13/glossary.html#term-deleted)

[(sqlalchemy.orm.events.SessionEvents.persistent\_to\_detached parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.persistent_to_detached.params.deleted)

[(sqlalchemy.orm.session.Session attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.deleted)

[deleted\_to\_detached() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.deleted_to_detached)

[deleted\_to\_persistent() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.deleted_to_persistent)

[deleter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.deleter)

[denormalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.denormalize_name)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.denormalize_name)

[dense\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.dense_rank)

[deregister() (in module sqlalchemy.ext.compiler)](https://docs.sqlalchemy.org/en/13/core/compiler.html#sqlalchemy.ext.compiler.deregister)

[desc() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.desc)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.desc)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.desc)

[description (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.description)

[(sqlalchemy.sql.expression.Alias attribute)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.description)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.description)

[descriptor](https://docs.sqlalchemy.org/en/13/glossary.html#term-descriptor)

[(sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.descriptor)

[descriptors](https://docs.sqlalchemy.org/en/13/glossary.html#term-descriptors)

[Deserializer() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/13/core/serializer.html#sqlalchemy.ext.serializer.Deserializer)

[detach() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.detach)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.detach)

[(sqlalchemy.pool.\_ConnectionFairy method)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy.detach)

[detached](https://docs.sqlalchemy.org/en/13/glossary.html#term-detached)

[(sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.detached)

[detached\_to\_persistent() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.detached_to_persistent)

[DetachedInstanceError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.DetachedInstanceError)

[dialect](https://docs.sqlalchemy.org/en/13/glossary.html#term-dialect)

[Dialect (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect)

[dialect (sqlalchemy.dialects.postgresql.HSTORE.bind\_processor parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.bind_processor.params.dialect)

[(sqlalchemy.dialects.postgresql.HSTORE.result\_processor parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor.params.dialect)

[(sqlalchemy.engine.interfaces.Compiled parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.params.dialect) | [dialect\_impl() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl)

[dialect\_kwargs (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.dialect_kwargs)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.dialect_kwargs)

[(sqlalchemy.schema.ColumnCollectionConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.dialect_kwargs)

[dialect\_name (sqlalchemy.schema.CheckConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.argument_for.params.dialect_name)

[(sqlalchemy.schema.Column.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.argument_for.params.dialect_name)

[(sqlalchemy.schema.ColumnCollectionConstraint.argument\_for parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.argument_for.params.dialect_name)

[dialect\_options (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.dialect_options)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.dialect_options)

[(sqlalchemy.schema.ColumnCollectionConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.dialect_options)

[DialectEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DialectEvents)

[DialectKWArgs (class in sqlalchemy.sql.base)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.base.DialectKWArgs)

[dict (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.dict)

[dict\_ (sqlalchemy.orm.events.AttributeEvents.init\_scalar parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.init_scalar.params.dict_)

[dict\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dict_getter)

[difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.difference_update)

[dimensions (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.dimensions)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.params.dimensions)

[direction (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.direction)

[dirty (sqlalchemy.orm.session.Session attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.dirty)

[discard() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.discard)

[DisconnectionError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.DisconnectionError)

[discriminator](https://docs.sqlalchemy.org/en/13/glossary.html#term-discriminator)

[display\_width (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.display_width)

[(sqlalchemy.dialects.mysql.INTEGER parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER.params.display_width)

[(sqlalchemy.dialects.mysql.MEDIUMINT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT.params.display_width)

[dispose() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.dispose)

[(sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.dispose)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.dispose)

[dispose\_collection() (sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.dispose_collection)

[distinct (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.distinct)

[distinct() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.distinct)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.distinct)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.distinct)

[distinct\_target\_key (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.distinct_target_key)

[DML](https://docs.sqlalchemy.org/en/13/glossary.html#term-DML)

[do\_begin() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_begin)

[do\_begin\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_begin_twophase)

[do\_close() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_close)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_close)

[do\_commit() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_commit)

[do\_commit\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_commit_twophase)

[do\_connect() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DialectEvents.do_connect)

[do\_execute() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_execute)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DialectEvents.do_execute)

[do\_execute\_no\_params() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_execute_no_params)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_execute_no_params)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DialectEvents.do_execute_no_params)

[do\_executemany() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_executemany)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_executemany)

[(sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DialectEvents.do_executemany)

[do\_init() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.do_init)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty.do_init)

[(sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.do_init)

[do\_prepare\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_prepare_twophase)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_prepare_twophase)

[do\_recover\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_recover_twophase)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_recover_twophase)

[do\_release\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_release_savepoint)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_release_savepoint)

[do\_rollback() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_rollback)

[do\_rollback\_to\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_to_savepoint)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_rollback_to_savepoint)

[do\_rollback\_twophase() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_rollback_twophase)

[do\_savepoint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_savepoint)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_savepoint)

[do\_setinputsizes() (sqlalchemy.events.DialectEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DialectEvents.do_setinputsizes)

[doc (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.doc)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.doc)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.doc)

[domain model](https://docs.sqlalchemy.org/en/13/glossary.html#term-domain-model)

[DontWrapMixin (class in sqlalchemy.exc)](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.DontWrapMixin)

[DOUBLE (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE)

[DOUBLE\_PRECISION (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.DOUBLE_PRECISION)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.DOUBLE_PRECISION)

[driver (sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.driver)

[drivername (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.drivername)

[drop() (sqlalchemy.dialects.postgresql.ENUM method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM.drop)

[(sqlalchemy.engine.Connectable method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.drop)

[(sqlalchemy.schema.Index method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Index.drop)

[drop\_all() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.drop_all)

[DropConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DropConstraint)

[DropIndex (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DropIndex)

[DropSchema (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DropSchema)

[DropSequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DropSequence)

[DropTable (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DropTable)

[dumps() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/13/core/serializer.html#sqlalchemy.ext.serializer.dumps)

[durability](https://docs.sqlalchemy.org/en/13/glossary.html#term-durability)

[dynamic\_loader() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.dynamic_loader) | E - | | | | --- | --- | | [e (sqlalchemy.pool.\_ConnectionFairy.invalidate parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy.invalidate.params.e)

[(sqlalchemy.pool.\_ConnectionRecord.invalidate parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionRecord.invalidate.params.e)

[eager load](https://docs.sqlalchemy.org/en/13/glossary.html#term-eager-load)

[eager loaded](https://docs.sqlalchemy.org/en/13/glossary.html#term-eager-loaded)

[eager loading](https://docs.sqlalchemy.org/en/13/glossary.html#term-eager-loading)

[eager loads](https://docs.sqlalchemy.org/en/13/glossary.html#term-eager-loads)

[eager\_defaults (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.eager_defaults)

[eagerload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.eagerload)

[eagerload\_all() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.eagerload_all)

[echo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.echo)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.echo)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.echo)

[echo\_pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.echo_pool)

[effective\_value (sqlalchemy.sql.expression.BindParameter attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter.effective_value)

[element (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.aliased.params.element)

[(sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateTable.params.element)

[(sqlalchemy.sql.expression.Over attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Over.element)

[elements (sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.elements)

[else\_ (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.case.params.else_)

[empty() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.History.empty)

[empty\_in\_strategy (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.empty_in_strategy)

[enable\_assertions() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.enable_assertions)

[enable\_baked\_queries (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.enable_baked_queries)

[enable\_eagerloads() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.enable_eagerloads)

[enable\_relationship\_loading() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.enable_relationship_loading)

[encoding (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.encoding)

[endswith() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.endswith)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.endswith)

[Engine (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine)

[engine (sqlalchemy.engine.Connectable attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.engine)

[(sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.engine)

[(sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.engine)

[engine\_connect() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.engine_connect)

[engine\_created() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.engine_created)

[(sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.engine_created)

[(sqlalchemy.engine.interfaces.Dialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.engine_created)

[engine\_disposed() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.engine_disposed)

[engine\_from\_config() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine_from_config)

[entities (sqlalchemy.orm.query.Query parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.params.entities)

[entity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.entity)

[(sqlalchemy.orm.RelationshipProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.entity)

[(sqlalchemy.orm.RelationshipProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.entity)

[ENUM (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM)

[Enum (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum)

[enums (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.enums)

[equivalents (sqlalchemy.schema.Column.compare parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compare.params.equivalents)

[(sqlalchemy.sql.elements.False\_.compare parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.False_.compare.params.equivalents)

[(sqlalchemy.sql.elements.Null.compare parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.Null.compare.params.equivalents)

[escape (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains.params.escape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith.params.escape)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike.params.escape)

[evaluates\_none() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none)

[Event (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.Event)

[event (sqlalchemy.schema.DDLElement.execute\_at parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.execute_at.params.event)

[Events (class in sqlalchemy.event.base)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.event.base.Events)

[events (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.events)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.events)

examples.adjacency\_list

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.adjacency_list)

examples.association

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.association)

examples.custom\_attributes

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.custom_attributes)

examples.dogpile\_caching

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.dogpile_caching)

examples.dynamic\_dict

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.dynamic_dict)

examples.elementtree

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.elementtree)

examples.generic\_associations

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.generic_associations)

examples.graphs

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.graphs)

examples.inheritance

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.inheritance)

examples.join\_conditions

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.join_conditions)

examples.large\_collection

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.large_collection) | examples.materialized\_paths

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.materialized_paths)

examples.nested\_sets

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.nested_sets)

examples.performance

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.performance)

examples.postgis

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.postgis)

examples.sharding

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.sharding)

examples.space\_invaders

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.space_invaders)

examples.versioned\_history

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.versioned_history)

examples.versioned\_rows

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.versioned_rows)

examples.vertical

[module](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.vertical)

[except\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.except_)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.except_)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.except_)

[except\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.except_all)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.except_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.except_all)

[exception (sqlalchemy.engine.interfaces.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.exception)

[(sqlalchemy.events.ConnectionEvents.dbapi\_error parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.dbapi_error.params.exception)

[(sqlalchemy.events.PoolEvents.invalidate parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.invalidate.params.exception)

[ExceptionContext (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext)

[exclude\_properties (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.exclude_properties)

[ExcludeConstraint (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint)

[excluded (sqlalchemy.dialects.postgresql.Insert attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.excluded)

[Executable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Executable)

[execute() (sqlalchemy.engine.Connectable method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.execute)

[(sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execute)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.execute)

[execute\_at() (sqlalchemy.schema.DDLElement method)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.execute_at)

[execute\_if() (sqlalchemy.schema.DDLElement method)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if)

[execute\_sequence\_format (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execute_sequence_format)

[executemany (sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.executemany)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.executemany)

[execution\_context (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.execution_context)

[execution\_ctx\_cls (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.execution_ctx_cls)

[execution\_options (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.execution_options)

[(sqlalchemy.engine.interfaces.Compiled attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.execution_options)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession.connection parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection.params.execution_options)

[execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.execution_options)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.execution_options)

[ExecutionContext (class in sqlalchemy.engine.interfaces)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext)

[executor (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.executor)

[existing\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.bulk_replace.params.existing_adapter)

[Exists (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Exists)

[exists() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.exists)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.exists)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.exists)

[expanding (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.expanding)

[expire](https://docs.sqlalchemy.org/en/13/glossary.html#term-expire)

[expire() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.expire)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.expire)

[expire\_all() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.expire_all)

[expire\_on\_commit (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.expire_on_commit)

[(sqlalchemy.orm.session.sessionmaker parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.params.expire_on_commit)

[expire\_on\_flush (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.expire_on_flush)

[expired](https://docs.sqlalchemy.org/en/13/glossary.html#term-expired)

[expired\_attributes (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.expired_attributes)

[expires](https://docs.sqlalchemy.org/en/13/glossary.html#term-expires)

[Expiring](https://docs.sqlalchemy.org/en/13/glossary.html#term-Expiring)

[expiring](https://docs.sqlalchemy.org/en/13/glossary.html#term-expiring)

[expr (sqlalchemy.orm.with\_expression parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.with_expression.params.expr)

[(sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.between.params.expr)

[expression (sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.expression)

[(sqlalchemy.orm.ColumnProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.expression)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.expression)

[expression() (sqlalchemy.ext.hybrid.hybrid\_method method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.expression)

[(sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.expression)

[expressions (sqlalchemy.orm.ColumnProperty.Comparator attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.expressions)

[expunge() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.expunge)

[expunge\_all() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.expunge_all)

[extend() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.extend)

[extend\_existing (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.extend_existing)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.extend_existing)

[ExtendedInstrumentationRegistry (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.ExtendedInstrumentationRegistry)

[extension (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.extension)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.extension)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.extension)

[extension\_type (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.extension_type)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.extension_type)

[extra\_dependencies (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.sort_tables.params.extra_dependencies)

[(sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.extra_dependencies)

[Extract (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Extract)

[extract() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.extract) | F - | | | | --- | --- | | [false() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.false)

[False\_ (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.False_)

[fetchall() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.fetchall)

[FetchedValue (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.FetchedValue)

[fetchmany() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.fetchmany)

[fetchone() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.fetchone)

[fields (sqlalchemy.dialects.postgresql.INTERVAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL.params.fields)

[filter() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.filter)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.filter)

[(sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.filter)

[filter\_by() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.filter_by)

[filter\_fn (sqlalchemy.schema.sort\_tables\_and\_constraints parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints.params.filter_fn)

[filter\_states\_for\_dep() (sqlalchemy.orm.session.UOWTransaction method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction.filter_states_for_dep)

[finalize\_flush\_changes() (sqlalchemy.orm.session.UOWTransaction method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction.finalize_flush_changes)

[first() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.first)

[(sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.first)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.first)

[first\_connect() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.first_connect)

[(sqlalchemy.interfaces.PoolListener method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.PoolListener.first_connect)

[first\_init() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.first_init)

[flag\_dirty() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty)

[flag\_modified() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified)

[flat (sqlalchemy.orm.aliased parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.aliased.params.flat)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.flat)

[(sqlalchemy.sql.expression.alias parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.alias.params.flat)

[FLOAT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.FLOAT)

[Float (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Float)

[flush() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.flush)

[flush\_context (sqlalchemy.orm.events.InstanceEvents.refresh\_flush parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.refresh_flush.params.flush_context)

[(sqlalchemy.orm.events.SessionEvents.after\_flush parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_flush.params.flush_context)

[(sqlalchemy.orm.events.SessionEvents.after\_flush\_postexec parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_flush_postexec.params.flush_context)

[FlushError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.FlushError)

[for\_class() (sqlalchemy.ext.associationproxy.AssociationProxy method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class)

[for\_proxy() (sqlalchemy.ext.associationproxy.AssociationProxyInstance class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.for_proxy)

[for\_session() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.for_session)

[for\_update (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.for_update)

[(sqlalchemy.sql.expression.CompoundSelect attribute)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.for_update)

[(sqlalchemy.sql.expression.GenerativeSelect attribute)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.for_update)

[force (sqlalchemy.sql.compiler.IdentifierPreparer.quote parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote.params.force)

[(sqlalchemy.sql.compiler.IdentifierPreparer.quote\_schema parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema.params.force)

[foreign key constraint](https://docs.sqlalchemy.org/en/13/glossary.html#term-foreign-key-constraint)

[foreign() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.foreign)

[foreign\_key\_constraints (sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.foreign_key_constraints)

[foreign\_keys (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.foreign_keys)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.foreign_keys)

[(sqlalchemy.sql.expression.Alias attribute)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.foreign_keys) | [ForeignKey (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey)

[ForeignKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint)

[format\_column() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_column)

[format\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_schema)

[format\_table() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table)

[format\_table\_seq() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.format_table_seq)

[FROM clause](https://docs.sqlalchemy.org/en/13/glossary.html#term-FROM-clause)

[from\_engine() (sqlalchemy.engine.reflection.Inspector class method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.from_engine)

[from\_entity (sqlalchemy.orm.query.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_parent.params.from_entity)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.with_parent.params.from_entity)

[from\_joinpoint (sqlalchemy.orm.query.Query.join parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.join.params.from_joinpoint)

[from\_obj (sqlalchemy.orm.query.Query.select\_entity\_from parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.select_entity_from.params.from_obj)

[(sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.from_obj)

[from\_select() (sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Insert.from_select)

[from\_self() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.from_self)

[from\_statement() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.from_statement)

[FromClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.FromClause)

[fromkeys() (sqlalchemy.orm.instrumentation.ClassManager class method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.fromkeys)

[froms (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.froms)

[fsp (sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.fsp)

[(sqlalchemy.dialects.mysql.TIMESTAMP parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP.params.fsp)

[full (sqlalchemy.ext.baked.BakedQuery.spoil parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil.params.full)

[(sqlalchemy.orm.query.Query.join parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.join.params.full)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.join.params.full)

[func (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.func)

[(sqlalchemy.sql.expression.Over attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Over.func)

[funcfilter() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.funcfilter)

[Function (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.Function)

[FunctionAsBinary (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionAsBinary)

[FunctionElement (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement)

[FunctionFilter (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter) | G - | | | | --- | --- | | [generate\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.generate_relationship)

[generate\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship)

[generative](https://docs.sqlalchemy.org/en/13/glossary.html#term-generative)

[GenerativeSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect)

[GenericFunction (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.GenericFunction)

[GenericTypeCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler)

[get() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.get)

[(sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.get)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.get)

[get\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute)

[get\_attribute\_history() (sqlalchemy.orm.session.UOWTransaction method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction.get_attribute_history)

[get\_bind() (sqlalchemy.ext.horizontal\_shard.ShardedSession method)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.get_bind)

[get\_check\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_check_constraints)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_check_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints)

[get\_children() (sqlalchemy.schema.CheckConstraint method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.get_children)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.get_children)

[(sqlalchemy.schema.ColumnCollectionConstraint method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.get_children)

[get\_columns() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_columns)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_columns)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns)

[get\_current\_parameters() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters)

[get\_dbapi\_type() (sqlalchemy.types.Date method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type)

[(sqlalchemy.types.DateTime method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type)

[(sqlalchemy.types.Integer method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type)

[get\_default\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_default_isolation_level)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_default_isolation_level)

[get\_dialect() (sqlalchemy.engine.url.URL method)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.get_dialect)

[get\_dialect\_cls() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_dialect_cls)

[(sqlalchemy.engine.interfaces.Dialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_dialect_cls)

[get\_enums() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums) | [get\_execution\_options() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.get_execution_options)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.get_execution_options)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.get_execution_options)

[get\_foreign\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_foreign_keys)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_foreign_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_foreign_keys)

[get\_foreign\_table\_names() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_foreign_table_names)

[get\_history() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.get_history)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty.get_history)

[get\_indexes() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_indexes)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_indexes)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_indexes)

[get\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.get_instance_dict)

[get\_isolation\_level() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.get_isolation_level)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_isolation_level)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_isolation_level)

[get\_lastrowid() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_lastrowid)

[get\_pk\_constraint() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_pk_constraint)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_pk_constraint)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_pk_constraint)

[get\_primary\_keys() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_primary_keys)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_primary_keys)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_primary_keys)

[get\_property() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property)

[get\_property\_by\_column() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.get_property_by_column)

[get\_referent() (sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.get_referent)

[get\_result\_processor() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_result_processor)

[get\_rowcount() (sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.get_rowcount)

[get\_schema\_names() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_schema_names)

[get\_select\_precolumns() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.get_select_precolumns)

[get\_sorted\_table\_and\_fkc\_names() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_sorted_table_and_fkc_names)

[get\_table\_comment() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_comment)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_table_comment)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_comment)

[get\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_table_names)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_names)

[get\_table\_oid() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_table_oid)

[get\_table\_options() (sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_options)

[get\_temp\_table\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_table_names)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_temp_table_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_table_names)

[get\_temp\_view\_names() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_temp_view_names)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_temp_view_names)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_temp_view_names)

[get\_unique\_constraints() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_unique_constraints)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_unique_constraints)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_unique_constraints)

[get\_view\_definition() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_definition)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_view_definition)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_view_definition)

[get\_view\_names() (sqlalchemy.dialects.postgresql.base.PGInspector method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_view_names)

[(sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_names)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.get_view_names)

[getset\_factory (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.getset_factory)

[getter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.getter)

[group (sqlalchemy.orm.column\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_columns.html#sqlalchemy.orm.column_property.params.group)

[(sqlalchemy.orm.composite parameter)](https://docs.sqlalchemy.org/en/13/orm/composites.html#sqlalchemy.orm.composite.params.group)

[group\_by (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.group_by)

[group\_by() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.group_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.group_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.group_by)

[group\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.group_by_clause)

[grouping\_sets (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.grouping_sets) | H - | | | | --- | --- | | [handle\_dbapi\_exception() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.handle_dbapi_exception)

[(sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.handle_dbapi_exception)

[handle\_dialect\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_dialect_kwargs)

[handle\_error() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.handle_error)

[handle\_pool\_kwargs() (sqlalchemy.engine.CreateEnginePlugin method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.handle_pool_kwargs)

[has() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.has)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.has)

[has\_all() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_all)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_all)

[has\_any() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_any)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_any)

[has\_changes() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes)

[has\_identity (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.has_identity)

[has\_inherited\_table() (in module sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.has_inherited_table)

[has\_key() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.has_key)

[(sqlalchemy.dialects.postgresql.JSONB.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator.has_key)

[(sqlalchemy.engine.RowProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy.has_key)

[has\_parent() (sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.has_parent)

[has\_sequence() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_sequence)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.has_sequence) | [has\_table() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.has_table)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.has_table)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.has_table)

[HasCTE (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.HasCTE)

[hashable (sqlalchemy.dialects.postgresql.HSTORE attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.hashable)

[(sqlalchemy.types.ARRAY attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.hashable)

[(sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.hashable)

[HasPrefixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes)

[HasSuffixes (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes)

[having (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.having)

[having() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.having)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.having)

[hide\_parameters (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.hide_parameters)

[History (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.History)

[history (sqlalchemy.orm.state.AttributeState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.AttributeState.history)

[host (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.host)

[HSTORE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE)

[hstore (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore)

[HSTORE.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator)

[hybrid\_method (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method)

[HYBRID\_METHOD (in module sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HYBRID_METHOD)

[hybrid\_property (class in sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property)

[HYBRID\_PROPERTY (in module sqlalchemy.ext.hybrid)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.HYBRID_PROPERTY) | I - | | | | --- | --- | | [id\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.id_chooser)

[ident (sqlalchemy.orm.query.Query.get parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.get.params.ident)

[(sqlalchemy.sql.compiler.IdentifierPreparer.quote parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote.params.ident)

[Identified (class in sqlalchemy.log)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.log.Identified)

[identifier (sqlalchemy.sql.functions.AnsiFunction attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.AnsiFunction.identifier)

[(sqlalchemy.sql.functions.array\_agg attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.array_agg.identifier)

[(sqlalchemy.sql.functions.char\_length attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.char_length.identifier)

[IdentifierError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.IdentifierError)

[IdentifierPreparer (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer)

[identity (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.identity)

[identity map](https://docs.sqlalchemy.org/en/13/glossary.html#term-identity-map)

[identity\_key (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.identity_key)

[identity\_key() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.util.identity_key)

[(sqlalchemy.orm.session.Session class method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.identity_key)

[(sqlalchemy.orm.session.sessionmaker class method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.identity_key)

[identity\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_instance)

[identity\_key\_from\_primary\_key() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_primary_key)

[identity\_key\_from\_row() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row)

[identity\_map (sqlalchemy.orm.session.Session attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.identity_map)

[IdentityMap (class in sqlalchemy.orm.identity)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.identity.IdentityMap)

[IdentityOptions (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.IdentityOptions)

[ilike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.ilike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.ilike)

[IMAGE (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE)

[immediateload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.immediateload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.immediateload)

[impl (sqlalchemy.types.Interval attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval.impl)

[(sqlalchemy.types.PickleType attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.PickleType.impl)

[implicit\_returning (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.implicit_returning)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.implicit_returning)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.implicit_returning)

[in\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.in_)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.in_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.in_)

[in\_transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.in_transaction)

[include (sqlalchemy.dialects.postgresql.base.PGInspector.get\_view\_names parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_view_names.params.include)

[include\_backrefs (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_backrefs)

[include\_collections (sqlalchemy.orm.session.Session.is\_modified parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.is_modified.params.include_collections)

[include\_columns (sqlalchemy.engine.reflection.Inspector.reflecttable parameter)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflecttable.params.include_columns)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.include_columns)

[include\_defaults (sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.include_defaults)

[include\_foreign\_key\_constraints (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateTable.params.include_foreign_key_constraints)

[include\_properties (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.include_properties)

[include\_removes (sqlalchemy.orm.validates parameter)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.validates.params.include_removes)

[increment (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.increment)

[Index (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Index)

[index (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.index)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.index)

[index\_elements (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_elements)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_elements)

[index\_property (class in sqlalchemy.ext.indexable)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property)

[index\_where (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_nothing parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing.params.index_where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.index_where)

[Indexable (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Indexable)

[Indexable.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Indexable.Comparator)

[INET (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INET)

[info (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.info)

[(sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.info)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.info)

[inherit\_condition (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.inherit_condition)

[inherit\_foreign\_keys (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.inherit_foreign_keys)

[inherit\_schema (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema)

[inherits (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.inherits)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.inherits)

[init() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.init)

[(sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.init)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.init)

[init\_collection() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.init_collection)

[(sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.init_collection)

[init\_failed() (sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.init_failed)

[init\_failure() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.init_failure)

[init\_instance() (sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.init_instance)

[init\_scalar() (sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.init_scalar)

[initialize() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.initialize)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.initialize)

[initialize\_instance\_dict() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.initialize_instance_dict)

[initially (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.initially)

[(sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.initially)

[(sqlalchemy.schema.ColumnCollectionConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ColumnCollectionConstraint.params.initially)

[initiator (sqlalchemy.orm.attributes.set\_attribute parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.initiator)

[(sqlalchemy.orm.events.AttributeEvents.append parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.append.params.initiator)

[(sqlalchemy.orm.events.AttributeEvents.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.bulk_replace.params.initiator)

[inline (sqlalchemy.dialects.mysql.insert parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.insert.params.inline)

[(sqlalchemy.dialects.postgresql.insert parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert.params.inline)

[(sqlalchemy.schema.Column.compile parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compile.params.inline)

[inner\_columns (sqlalchemy.sql.expression.Select attribute)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.inner_columns)

[innerjoin (sqlalchemy.orm.joinedload parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.joinedload.params.innerjoin)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.innerjoin)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.innerjoin)

[Insert (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert)

[(class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Insert)

[insert() (in module sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.insert)

[(in module sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.insert)

[insert\_single\_values\_expr (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.insert_single_values_expr)

[inserted (sqlalchemy.dialects.mysql.Insert attribute)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.inserted)

[inserted\_primary\_key (sqlalchemy.engine.ResultProxy attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.inserted_primary_key)

[inspect() (in module sqlalchemy)](https://docs.sqlalchemy.org/en/13/core/inspection.html#sqlalchemy.inspect)

[InspectionAttr (class in sqlalchemy.orm.base)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr)

[InspectionAttrInfo (class in sqlalchemy.orm.base)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttrInfo)

[Inspector (class in sqlalchemy.engine.reflection)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector)

[install\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_descriptor)

[install\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_member)

[install\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.install_state)

[instance (sqlalchemy.orm.attributes.set\_attribute parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.instance)

[(sqlalchemy.orm.events.SessionEvents.detached\_to\_persistent parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.detached_to_persistent.params.instance)

[(sqlalchemy.orm.events.SessionEvents.loaded\_as\_persistent parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.loaded_as_persistent.params.instance) | [instance\_state() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.instance_state)

[InstanceEvents (class in sqlalchemy.orm.events)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents)

[instances (sqlalchemy.orm.events.SessionEvents.before\_flush parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.before_flush.params.instances)

[instances() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.instances)

[InstanceState (class in sqlalchemy.orm.state)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState)

[instrument\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_attribute)

[instrument\_class() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.instrument_class)

[(sqlalchemy.orm.CompositeProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.CompositeProperty.instrument_class)

[(sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.instrument_class)

[instrument\_collection\_class() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.instrument_collection_class)

[instrument\_declarative() (in module sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.instrument_declarative)

[instrumentation](https://docs.sqlalchemy.org/en/13/glossary.html#term-instrumentation)

[instrumentation\_finders (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.instrumentation_finders)

[INSTRUMENTATION\_MANAGER (in module sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.INSTRUMENTATION_MANAGER)

[InstrumentationEvents (class in sqlalchemy.orm.events)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstrumentationEvents)

[InstrumentationFactory (class in sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.orm.instrumentation.InstrumentationFactory)

[InstrumentationManager (class in sqlalchemy.ext.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager)

[instrumented](https://docs.sqlalchemy.org/en/13/glossary.html#term-instrumented)

[InstrumentedAttribute (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.InstrumentedAttribute)

[InstrumentedDict (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.InstrumentedDict)

[InstrumentedList (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.InstrumentedList)

[InstrumentedSet (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.InstrumentedSet)

[instrumenting](https://docs.sqlalchemy.org/en/13/glossary.html#term-instrumenting)

[INT (in module sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.INT)

[INT4RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT4RANGE)

[INT8RANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INT8RANGE)

[INTEGER (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.INTEGER)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.INTEGER)

[Integer (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Integer)

[IntegrityError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.IntegrityError)

[InterfaceError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.InterfaceError)

[InternalError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.InternalError)

[internally\_instrumented() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.internally_instrumented)

[intersect() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.intersect)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.intersect)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.intersect)

[intersect\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.intersect_all)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.intersect_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.intersect_all)

[intersection\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.intersection_update)

[INTERVAL (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.INTERVAL)

[Interval (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval)

[invalidate() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.invalidate)

[(sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.invalidate)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.invalidate)

[invalidate\_pool\_on\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.invalidate_pool_on_disconnect)

[invalidated (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.invalidated)

[InvalidatePoolError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.InvalidatePoolError)

[InvalidRequestError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.InvalidRequestError)

[is\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.is_)

[is\_active (sqlalchemy.orm.session.Session attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.is_active)

[is\_aliased\_class (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_aliased_class)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_aliased_class)

[(sqlalchemy.orm.base.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr.is_aliased_class)

[is\_attribute (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_method attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_method.is_attribute)

[(sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.is_attribute)

[is\_bound() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.is_bound)

[(sqlalchemy.schema.ThreadLocalMetaData method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.ThreadLocalMetaData.is_bound)

[is\_clause\_element (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_clause_element)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_clause_element)

[(sqlalchemy.orm.base.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr.is_clause_element)

[is\_comparison (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.is_comparison)

[(sqlalchemy.orm.attributes.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.op.params.is_comparison)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.is_comparison)

[is\_deleted() (sqlalchemy.orm.session.UOWTransaction method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction.is_deleted)

[is\_derived\_from() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.is_derived_from)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.is_derived_from)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.is_derived_from)

[is\_disconnect (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.is_disconnect)

[(sqlalchemy.engine.interfaces.ExecutionContext attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.is_disconnect)

[is\_disconnect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.is_disconnect)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.is_disconnect)

[is\_distinct\_from() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.is_distinct_from)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_distinct_from)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.is_distinct_from)

[is\_insert (sqlalchemy.engine.ResultProxy attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.is_insert)

[is\_instance (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_instance)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_instance)

[(sqlalchemy.orm.base.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr.is_instance)

[is\_instrumented() (in module sqlalchemy.orm.instrumentation)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented)

[is\_literal (sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.column.params.is_literal)

[is\_mapper (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_mapper)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_mapper)

[(sqlalchemy.orm.base.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr.is_mapper)

[is\_modified() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.is_modified)

[is\_prepared (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.is_prepared)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.is_prepared)

[(sqlalchemy.engine.interfaces.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_commit_twophase.params.is_prepared)

[is\_property (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_property)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_property)

[(sqlalchemy.orm.base.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr.is_property)

[is\_selectable (sqlalchemy.ext.associationproxy.AssociationProxy attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.is_selectable)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.is_selectable)

[(sqlalchemy.orm.base.InspectionAttr attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.base.InspectionAttr.is_selectable)

[is\_single\_entity (sqlalchemy.orm.query.Query attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.is_single_entity)

[is\_valid (sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy.is_valid)

[isa() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.isa)

[isdelete (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.isdelete)

[isnot() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.isnot)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.isnot)

[isnot\_distinct\_from() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.isnot_distinct_from)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.isnot_distinct_from)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.isnot_distinct_from)

[isolate\_multiinsert\_groups (sqlalchemy.engine.default.DefaultExecutionContext.get\_current\_parameters parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.get_current_parameters.params.isolate_multiinsert_groups)

[isolated](https://docs.sqlalchemy.org/en/13/glossary.html#term-isolated)

[Isolation](https://docs.sqlalchemy.org/en/13/glossary.html#term-Isolation)

[isolation](https://docs.sqlalchemy.org/en/13/glossary.html#term-isolation)

[isolation level](https://docs.sqlalchemy.org/en/13/glossary.html#term-isolation-level)

[isolation\_level (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.isolation_level)

[(sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.isolation_level)

[isouter (sqlalchemy.orm.query.Query.join parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.join.params.isouter)

[(sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.join.params.isouter)

[(sqlalchemy.sql.expression.Alias.join parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.join.params.isouter)

[isoutparam (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.isoutparam)

[item\_type (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.item_type)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.params.item_type)

[items() (sqlalchemy.engine.RowProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy.items)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.items)

[iterate() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.iterate)

[(sqlalchemy.sql.visitors.ClauseVisitor method)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ClauseVisitor.iterate)

[iterate\_depthfirst() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.iterate_depthfirst)

[iterate\_properties (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.iterate_properties)

[iterator (sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.iterator)

[iterator() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.iterator)

[iterkeys() (sqlalchemy.engine.RowProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy.iterkeys)

[itervalues() (sqlalchemy.engine.RowProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy.itervalues) | J - | | | | --- | --- | | [Join (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Join)

[join() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.join)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.join)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.join)

[join\_depth (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.join_depth) | [joinedload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.joinedload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.joinedload)

[joinedload\_all() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.joinedload_all)

[JSON (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.JSON)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.JSON)

[JSON.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.Comparator)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.Comparator)

[JSON.JSONElementType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType)

[JSON.JSONIndexType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType)

[JSON.JSONPathType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType)

[json\_deserializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.json_deserializer)

[json\_serializer (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.json_serializer)

[JSONB (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB)

[JSONB.Comparator (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB.Comparator) | K - | | | | --- | --- | | [keep\_existing (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.keep_existing)

[key (sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.key)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.key)

[(sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.key)

[key\_share (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.key_share)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.key_share)

[KeyedTuple (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.util.KeyedTuple)

[keys() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.keys)

[(sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.keys)

[(sqlalchemy.engine.RowProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy.keys) | [kwargs (sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.kwargs)

[(sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine_from_config.params.kwargs)

[(sqlalchemy.orm.events.InstanceEvents.init parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.init.params.kwargs) | L - | | | | --- | --- | | [Label (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Label)

[label() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.label)

[(sqlalchemy.orm.query.Bundle method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.label)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.label)

[label\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.label_length)

[LargeBinary (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.LargeBinary)

[last\_inserted\_params() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.last_inserted_params)

[last\_updated\_params() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.last_updated_params)

[lastrow\_has\_defaults() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.lastrow_has_defaults)

[(sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.lastrow_has_defaults)

[(sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.lastrow_has_defaults)

[lastrowid (sqlalchemy.engine.ResultProxy attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.lastrowid)

[Lateral (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Lateral)

[lateral() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.lateral)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.lateral)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.lateral)

[lazy (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.lazy)

[lazy initialization](https://docs.sqlalchemy.org/en/13/glossary.html#term-lazy-initialization)

[lazy load](https://docs.sqlalchemy.org/en/13/glossary.html#term-lazy-load)

[lazy loaded](https://docs.sqlalchemy.org/en/13/glossary.html#term-lazy-loaded)

[lazy loading](https://docs.sqlalchemy.org/en/13/glossary.html#term-lazy-loading)

[lazy loads](https://docs.sqlalchemy.org/en/13/glossary.html#term-lazy-loads)

[lazy\_loaded\_from (sqlalchemy.orm.query.Query attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.lazy_loaded_from)

[lazyload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.lazyload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.lazyload)

[left (sqlalchemy.sql.expression.join parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.join.params.left)

[(sqlalchemy.sql.expression.outerjoin parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.outerjoin.params.left)

[(sqlalchemy.sql.functions.FunctionAsBinary attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionAsBinary.left)

[left\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.left_index)

[legacy\_is\_orphan (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.legacy_is_orphan)

[length (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.length)

[(sqlalchemy.dialects.mssql.IMAGE parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE.params.length)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.length)

[like() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.like)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.like)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.like) | [limit (sqlalchemy.sql.expression.CompoundSelect.limit parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit.params.limit)

[(sqlalchemy.sql.expression.GenerativeSelect.limit parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit.params.limit)

[(sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.limit)

[limit() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.limit)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.limit)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.limit)

[link() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.link)

[link\_to\_name (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.link_to_name)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.link_to_name)

[linker() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.linker)

[listen() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/13/core/event.html#sqlalchemy.event.listen)

[listeners (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.listeners)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.listeners)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.listeners)

[listens\_for() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/13/core/event.html#sqlalchemy.event.listens_for)

[literal() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.literal)

[literal\_column() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.literal_column)

[literal\_processor() (sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor)

[(sqlalchemy.types.Integer method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Integer.literal_processor)

[(sqlalchemy.types.JSON.JSONElementType method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.literal_processor)

[Load (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.Load)

[(class in sqlalchemy.orm.strategy\_options)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load)

[load (sqlalchemy.orm.session.Session.merge parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.merge.params.load)

[load() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.load)

[load\_dialect\_impl() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl)

[load\_history() (sqlalchemy.orm.state.AttributeState method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.AttributeState.load_history)

[load\_on\_pending (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.load_on_pending)

[load\_only() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.load_only)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.load_only)

[load\_provisioning() (sqlalchemy.engine.default.DefaultDialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.load_provisioning)

[(sqlalchemy.engine.interfaces.Dialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.load_provisioning)

[loaded\_as\_persistent() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.loaded_as_persistent)

[loaded\_value (sqlalchemy.orm.state.AttributeState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.AttributeState.loaded_value)

[LoaderStrategyException](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.LoaderStrategyException)

[loads() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/13/core/serializer.html#sqlalchemy.ext.serializer.loads)

[local\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.local_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.local_attr)

[local\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.local_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.local_cls)

[local\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.local_table)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.local_table)

[localtime (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.localtime)

[localtimestamp (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.localtimestamp)

[locate\_all\_froms() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.locate_all_froms)

[lockmode (sqlalchemy.orm.session.Session.refresh parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.refresh.params.lockmode)

[logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.logging_name)

[(sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.logging_name)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.logging_name)

[LONG (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.LONG)

[LONGBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGBLOB)

[LONGTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT)

[lower\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.between.params.lower_bound) | M - | | | | --- | --- | | [MACADDR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MACADDR)

[make\_transient() (in module sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.make_transient)

[make\_transient\_to\_detached() (in module sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.make_transient_to_detached)

[make\_url() (in module sqlalchemy.engine.url)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.make_url)

[manage() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manage)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.manage)

[manager\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.manager_getter)

[many to many](https://docs.sqlalchemy.org/en/13/glossary.html#term-many-to-many)

[many to one](https://docs.sqlalchemy.org/en/13/glossary.html#term-many-to-one)

[MANYTOMANY (in module sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MANYTOMANY)

[MANYTOONE (in module sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MANYTOONE)

[map\_column (sqlalchemy.orm.synonym parameter)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.synonym.params.map_column)

[mapped](https://docs.sqlalchemy.org/en/13/glossary.html#term-mapped)

[mapped\_collection() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.mapped_collection)

[mapped\_table (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.mapped_table)

[MappedCollection (class in sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.MappedCollection)

[Mapper (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper)

[mapper (sqlalchemy.ext.declarative.declarative\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base.params.mapper)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession.connection parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.connection.params.mapper)

[(sqlalchemy.ext.horizontal\_shard.ShardedSession.get\_bind parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.get_bind.params.mapper)

[mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper)

[mapper\_configured() (sqlalchemy.orm.events.MapperEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.mapper_configured)

[MapperEvents (class in sqlalchemy.orm.events)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents)

[MapperExtension (class in sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension)

[MapperProperty (class in sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty)

[mapping](https://docs.sqlalchemy.org/en/13/glossary.html#term-mapping)

[(sqlalchemy.types.Variant parameter)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Variant.params.mapping)

[mappings (sqlalchemy.orm.session.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_insert_mappings.params.mappings)

[(sqlalchemy.orm.session.Session.bulk\_update\_mappings parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_update_mappings.params.mappings)

[marshalling](https://docs.sqlalchemy.org/en/13/glossary.html#term-marshalling)

[match (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.match)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.match)

[match() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.match)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.match)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.match)

[MatchType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.MatchType)

[matrix() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.matrix)

[max (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.max)

[max\_identifier\_length (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.max_identifier_length)

[max\_overflow (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.max_overflow)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.QueuePool.params.max_overflow)

[maxvalue (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.maxvalue)

[MEDIUMBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMBLOB)

[MEDIUMINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMINT)

[MEDIUMTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT)

[merge() (sqlalchemy.orm.ColumnProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.merge)

[(sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.merge)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.merge)

[merge\_result() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.merge_result)

[metaclass (sqlalchemy.ext.declarative.declarative\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base.params.metaclass)

[metadata](https://docs.sqlalchemy.org/en/13/glossary.html#term-metadata)

[MetaData (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData)

[metadata (sqlalchemy.ext.declarative.declarative\_base parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.declarative_base.params.metadata)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.metadata)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.metadata)

[method chaining](https://docs.sqlalchemy.org/en/13/glossary.html#term-method-chaining)

[min (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.min)

[minvalue (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.minvalue)

[mode (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.mode)

[(sqlalchemy.orm.query.Query.with\_lockmode parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_lockmode.params.mode)

[modified() (sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.modified)

module

[examples.adjacency\_list](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.adjacency_list)

[examples.association](https://docs.sqlalchemy.org/en/13/orm/examples.html#module-examples.association) | [module (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.module)

[MONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.MONEY)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.MONEY)

[multiparams (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.multiparams)

[(sqlalchemy.events.ConnectionEvents.before\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_execute.params.multiparams)

[MultipleResultsFound](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.MultipleResultsFound)

[mustexist (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.mustexist)

[Mutable (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable)

[mutable (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.mutable)

[MutableBase (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase)

[MutableComposite (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableComposite)

[MutableDict (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict)

[MutableList (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList)

[MutableSet (class in sqlalchemy.ext.mutable)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet) | N - | | | | --- | --- | | [N plus one problem](https://docs.sqlalchemy.org/en/13/glossary.html#term-N-plus-one-problem)

[name (sqlalchemy.dialects.mysql.BOOLEAN parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BOOLEAN.params.name)

[(sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.name)

[(sqlalchemy.engine.default.DefaultDialect.do\_release\_savepoint parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_release_savepoint.params.name)

[name\_for\_collection\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_collection_relationship)

[name\_for\_collection\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship)

[name\_for\_scalar\_relationship (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.name_for_scalar_relationship)

[name\_for\_scalar\_relationship() (in module sqlalchemy.ext.automap)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship)

[names (sqlalchemy.engine.url.URL.translate\_connect\_args parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.translate_connect_args.params.names)

[(sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.names)

[naming\_convention (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.params.naming_convention)

[national (sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.national)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.national)

[(sqlalchemy.dialects.mysql.TEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TEXT.params.national)

[native (sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval.params.native)

[native\_enum (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.native_enum)

[NCHAR (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.NCHAR)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.NCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.NCHAR)

[NCLOB (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.NCLOB) | [nested (sqlalchemy.orm.session.Session.begin parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.begin.params.nested)

[(sqlalchemy.orm.session.SessionTransaction attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.SessionTransaction.nested)

[NestedTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.NestedTransaction)

[new (sqlalchemy.orm.session.Session attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.new)

[new\_adapter (sqlalchemy.orm.collections.bulk\_replace parameter)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.bulk_replace.params.new_adapter)

[next() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.next)

[next\_value (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.next_value)

[next\_value() (sqlalchemy.schema.Sequence method)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.next_value)

[no\_autoflush (sqlalchemy.orm.session.Session attribute)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.no_autoflush)

[no\_parameters (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.no_parameters)

[NO\_STATE (in module sqlalchemy.orm.exc)](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.NO_STATE)

[NoForeignKeysError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoForeignKeysError)

[NoInspectionAvailable](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable)

[noload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.noload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.noload)

[nomaxvalue (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.nomaxvalue)

[nominvalue (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.nominvalue)

[non\_added() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added)

[non\_deleted() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted)

[non\_primary (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.non_primary)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.non_primary)

[none\_as\_null (sqlalchemy.dialects.postgresql.JSON parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.none_as_null)

[(sqlalchemy.types.JSON parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null)

[NoReferencedColumnError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoReferencedColumnError)

[NoReferencedTableError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoReferencedTableError)

[NoReferenceError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoReferenceError)

[NoResultFound](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.NoResultFound)

[normalize\_name() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.normalize_name)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.normalize_name)

[NoSuchColumnError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoSuchColumnError)

[NoSuchModuleError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoSuchModuleError)

[NoSuchTableError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NoSuchTableError)

[not\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.not_)

[not\_extend\_left\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.not_extend_left_of)

[not\_extend\_right\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.not_extend_right_of)

[NOT\_EXTENSION (in module sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.NOT_EXTENSION)

[notilike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notilike)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.notilike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.notilike)

[notin\_() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notin_)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.notin_)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.notin_)

[notlike() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.notlike)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.notlike)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.notlike)

[NotSupportedError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.NotSupportedError)

[now (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.now)

[nowait (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.nowait)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.nowait)

[NTEXT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.NTEXT)

[Null (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.Null)

[NULL (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.NULL)

[null() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.null)

[nullable (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.nullable)

[NullPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.NullPool)

[nullsfirst() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.nullsfirst)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullsfirst)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.nullsfirst)

[nullslast() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.nullslast)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.nullslast)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.nullslast)

[NullType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.NullType)

[NUMBER (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.NUMBER)

[NUMERIC (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.NUMERIC)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.NUMERIC)

[Numeric (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Numeric)

[NUMRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.NUMRANGE)

[NVARCHAR (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.NVARCHAR)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.NVARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.NVARCHAR) | O - | | | | --- | --- | | [obj (sqlalchemy.ext.associationproxy.AssociationProxy.for\_class parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.for_class.params.obj)

[(sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.obj)

[(sqlalchemy.orm.attributes.init\_collection parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.init_collection.params.obj)

[object (sqlalchemy.engine.Connection.execute parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execute.params.object)

[(sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.object)

[object\_mapper() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.object_mapper)

[object\_session() (in module sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.object_session)

[(sqlalchemy.orm.session.Session class method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.object_session)

[(sqlalchemy.orm.session.sessionmaker class method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker.object_session)

[object\_state() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.util.object_state)

[ObjectAssociationProxyInstance (class in sqlalchemy.ext.associationproxy)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance)

[ObjectDeletedError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError)

[ObjectDereferencedError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDereferencedError)

[ObjectNotExecutableError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.ObjectNotExecutableError)

[objects (sqlalchemy.orm.session.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_save_objects.params.objects)

[(sqlalchemy.orm.session.Session.flush parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.flush.params.objects)

[of (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.of)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.of)

[of\_type() (sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.of_type)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.of_type)

[(sqlalchemy.orm.RelationshipProperty.Comparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator.of_type)

[offset (sqlalchemy.sql.expression.CompoundSelect.offset parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset.params.offset)

[(sqlalchemy.sql.expression.GenerativeSelect.offset parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset.params.offset)

[(sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.offset)

[offset() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.offset)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.offset)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.offset)

[OID (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.OID)

[oldvalue (sqlalchemy.orm.events.AttributeEvents.set parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.set.params.oldvalue)

[omit\_join (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.omit_join)

[on (sqlalchemy.schema.CreateTable parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.CreateTable.params.on)

[(sqlalchemy.schema.DDL parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDL.params.on)

[(sqlalchemy.schema.DDLElement attribute)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.on)

[on\_conflict\_do\_nothing() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_nothing)

[on\_conflict\_do\_update() (sqlalchemy.dialects.postgresql.Insert method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update)

[on\_connect() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.on_connect)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.on_connect)

[on\_duplicate\_key\_update() (sqlalchemy.dialects.mysql.Insert method)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.Insert.on_duplicate_key_update)

[onclause (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.join.params.onclause)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.onclause)

[(sqlalchemy.sql.expression.Alias.join parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.join.params.onclause)

[ondelete (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.ondelete)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.ondelete)

[one to many](https://docs.sqlalchemy.org/en/13/glossary.html#term-one-to-many)

[one() (sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.one)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.one)

[one\_or\_none() (sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.one_or_none)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.one_or_none)

[onebased (sqlalchemy.ext.indexable.index\_property parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#sqlalchemy.ext.indexable.index_property.params.onebased)

[ONETOMANY (in module sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.ONETOMANY)

[only (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.only)

[only\_return\_tuples() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.only_return_tuples)

[only\_synonyms (sqlalchemy.sql.expression.Select.reduce\_columns parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns.params.only_synonyms)

[onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.onupdate)

[(sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.onupdate)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.onupdate)

[op (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate.params.op)

[(sqlalchemy.orm.attributes.QueryableAttribute.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.operate.params.op)

[(sqlalchemy.orm.ColumnProperty.Comparator.operate parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate.params.op)

[op() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.op)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.op)

[operate() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.operate)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.operate)

[(sqlalchemy.orm.ColumnProperty.Comparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.operate) | [OperationalError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.OperationalError)

[operator (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.operator)

[(sqlalchemy.orm.attributes.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.op.params.operator)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.operator)

[Operators (class in sqlalchemy.sql.operators)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.operators.Operators)

[ops (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.ops)

[optional (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.optional)

[options() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.options)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.options)

[opts (sqlalchemy.events.ConnectionEvents.set\_connection\_execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options.params.opts)

[(sqlalchemy.events.ConnectionEvents.set\_engine\_execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options.params.opts)

[(sqlalchemy.sql.visitors.iterate parameter)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.iterate.params.opts)

[or\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.or_)

[order (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.order)

[order\_by (sqlalchemy.engine.reflection.Inspector.get\_table\_names parameter)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_table_names.params.order_by)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.order_by)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.order_by)

[order\_by() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.order_by)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.order_by)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.order_by)

[order\_by\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.order_by_clause)

[OrderedSetAgg (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.OrderedSetAgg)

[ordering\_attr (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_attr)

[ordering\_func (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.ordering_func)

[ordering\_list() (in module sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.ordering_list)

[OrderingList (class in sqlalchemy.ext.orderinglist)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList)

[orig (sqlalchemy.exc.StatementError attribute)](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.StatementError.orig)

[original\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.original_exception)

[original\_init() (sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.original_init)

[other (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.contains.params.other)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.endswith.params.other)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.ilike.params.other)

[outerjoin() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.outerjoin)

[(in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.outerjoin)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.outerjoin)

[outparam() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.outparam)

[Over (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Over)

[over() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.over)

[(sqlalchemy.sql.expression.FunctionFilter method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter.over)

[(sqlalchemy.sql.expression.WithinGroup method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup.over)

[overlap() (sqlalchemy.dialects.postgresql.ARRAY.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator.overlap)

[overlaps() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.overlaps)

[overrides (sqlalchemy.ext.hybrid.hybrid\_property attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.overrides) | P - | | | | --- | --- | | [packagenames (sqlalchemy.sql.functions.Function parameter)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.Function.params.packagenames)

[(sqlalchemy.sql.functions.FunctionElement attribute)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.packagenames)

[parameters (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.parameters)

[(sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.parameters)

[(sqlalchemy.events.ConnectionEvents.before\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.before_cursor_execute.params.parameters)

[params (sqlalchemy.engine.interfaces.Compiled attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.params)

[(sqlalchemy.engine.interfaces.Compiled.construct\_params parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.construct_params.params.params)

[(sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.params)

[params() (sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.params)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.params)

[(sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params)

[paramstyle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.paramstyle)

[parent (sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.parent)

[(sqlalchemy.events.DDLEvents.before\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach.params.parent)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.parent)

[partition\_by (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.over.params.partition_by)

[passive (sqlalchemy.orm.attributes.get\_history parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.passive)

[(sqlalchemy.orm.session.Session.is\_modified parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.is_modified.params.passive)

[passive\_deletes (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.passive_deletes)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_deletes)

[passive\_updates (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.passive_updates)

[(sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.passive_updates)

[PassiveDefault (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.PassiveDefault)

[password (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.password)

[pending](https://docs.sqlalchemy.org/en/13/glossary.html#term-pending)

[(sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.pending)

[pending\_to\_persistent() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.pending_to_persistent)

[pending\_to\_transient() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.pending_to_transient)

[percent\_rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.percent_rank)

[percentile\_cont (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.percentile_cont)

[percentile\_disc (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.percentile_disc)

[persist\_selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.persist_selectable)

[persisted (sqlalchemy.schema.Computed parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Computed.params.persisted)

[persistent](https://docs.sqlalchemy.org/en/13/glossary.html#term-persistent)

[(sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.persistent)

[persistent\_to\_deleted() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.persistent_to_deleted)

[persistent\_to\_detached() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.persistent_to_detached)

[persistent\_to\_transient() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.persistent_to_transient)

[PGInspector (class in sqlalchemy.dialects.postgresql.base)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector)

[pickle() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.pickle)

[pickler (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.PickleType.params.pickler)

[PickleType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.PickleType)

[plugins (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.plugins)

[polymorphic](https://docs.sqlalchemy.org/en/13/glossary.html#term-polymorphic)

[polymorphic\_identity (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_identity)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.polymorphic_identity)

[polymorphic\_iterator() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_iterator)

[polymorphic\_load (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.polymorphic_load)

[polymorphic\_map (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_map)

[polymorphic\_on (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.polymorphic_on)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.polymorphic_on)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.polymorphic_on)

[polymorphic\_union() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union)

[polymorphically](https://docs.sqlalchemy.org/en/13/glossary.html#term-polymorphically)

[Pool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool)

[pool (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool)

[pool\_logging\_name (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_logging_name)

[pool\_pre\_ping (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_pre_ping)

[pool\_recycle (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_recycle)

[pool\_reset\_on\_return (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_reset_on_return)

[pool\_size (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_size)

[(sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.QueuePool.params.pool_size)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.pool_size)

[pool\_timeout (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_timeout)

[pool\_use\_lifo (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.pool_use_lifo)

[poolclass (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.poolclass)

[PoolEvents (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents)

[PoolListener (class in sqlalchemy.interfaces)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.PoolListener)

[pop() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.pop)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.pop)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.pop)

[popitem() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.popitem)

[(sqlalchemy.orm.collections.MappedCollection method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.MappedCollection.popitem)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.popitem)

[populate\_existing() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.populate_existing)

[port (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.port)

[post\_configure\_attribute() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.post_configure_attribute)

[post\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.post_exec)

[(sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.post_exec)

[post\_instrument\_class() (sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.post_instrument_class)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.post_instrument_class)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.SynonymProperty.post_instrument_class) | [post\_update (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.post_update)

[postfetch\_cols() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.postfetch_cols)

[pre\_exec() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.pre_exec)

[(sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.pre_exec)

[pre\_ping (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.pre_ping)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.pre_ping)

[precedence (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.precedence)

[(sqlalchemy.orm.attributes.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.op.params.precedence)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.precedence)

[precision (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.precision)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.precision)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.precision)

[prefetch\_cols() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.prefetch_cols)

[prefix (sqlalchemy.engine\_from\_config parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine_from_config.params.prefix)

[prefix\_with() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.prefix_with)

[(sqlalchemy.sql.expression.CTE method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CTE.prefix_with)

[(sqlalchemy.sql.expression.HasPrefixes method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes.prefix_with)

[prefixes (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.prefixes)

[prepare() (sqlalchemy.engine.TwoPhaseTransaction method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction.prepare)

[(sqlalchemy.ext.automap.AutomapBase class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare)

[(sqlalchemy.ext.declarative.DeferredReflection class method)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.DeferredReflection.prepare)

[prepare\_instrumentation() (in module sqlalchemy.orm.collections)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.prepare_instrumentation)

[prepare\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.prepare_twophase)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.prepare_twophase)

[preparer (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.preparer)

[preserve\_order (sqlalchemy.orm.session.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_save_objects.params.preserve_order)

[preserve\_parameter\_order (sqlalchemy.sql.expression.update parameter)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.update.params.preserve_parameter_order)

[previous\_transaction (sqlalchemy.orm.events.SessionEvents.after\_soft\_rollback parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_soft_rollback.params.previous_transaction)

[primary key](https://docs.sqlalchemy.org/en/13/glossary.html#term-primary-key)

[primary key constraint](https://docs.sqlalchemy.org/en/13/glossary.html#term-primary-key-constraint)

[primary\_key (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key)

[(sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.primary_key)

[(sqlalchemy.orm.Mapper.identity\_key\_from\_primary\_key parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_primary_key.params.primary_key)

[primary\_key\_from\_instance() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_key_from_instance)

[primary\_mapper() (sqlalchemy.orm.Mapper method)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.primary_mapper)

[primaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin)

[PrimaryKeyConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.PrimaryKeyConstraint)

[process\_bind\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param)

[process\_literal\_param() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param)

[process\_query() (sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.process_query)

[process\_query\_conditionally() (sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.process_query_conditionally)

[process\_result\_value() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value)

[ProgrammingError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.ProgrammingError)

[propagate (sqlalchemy.orm.events.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.params.propagate)

[(sqlalchemy.orm.events.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.params.propagate)

[(sqlalchemy.orm.events.MapperEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.params.propagate)

[propagate\_to\_loaders (sqlalchemy.orm.strategy\_options.Load attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.propagate_to_loaders)

[PropComparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator)

[properties (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.properties)

[property (sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.property)

[(sqlalchemy.orm.query.Query.with\_parent parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_parent.params.property)

[(sqlalchemy.orm.with\_parent parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.with_parent.params.property)

[protocol (sqlalchemy.types.PickleType parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.PickleType.params.protocol)

[proxy\_bulk\_set (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.proxy_bulk_set)

[proxy\_factory (sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.proxy_factory)

[proxy\_set (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.proxy_set)

[prune() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.prune)

Python Enhancement Proposals

[PEP 249](https://docs.sqlalchemy.org/en/13/core/internals.html#index-0)
[\[0\]](https://docs.sqlalchemy.org/en/13/core/internals.html#index-1)

[PEP 487](https://docs.sqlalchemy.org/en/13/changelog/changelog_13.html#index-0)

[python\_type (sqlalchemy.types.ARRAY attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.python_type)

[(sqlalchemy.types.Boolean attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean.python_type)

[(sqlalchemy.types.Date attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Date.python_type) | Q - | | | | --- | --- | | [Query (class in sqlalchemy.orm.query)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query)

[query (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.query)

[(sqlalchemy.orm.events.QueryEvents.before\_compile\_delete parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile_delete.params.query)

[(sqlalchemy.orm.events.QueryEvents.before\_compile\_update parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile_update.params.query)

[query() (sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.query)

[query\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.query_chooser)

[query\_class (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.query_class)

[query\_cls (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.query_cls)

[query\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.query_expression)

[query\_or\_session (sqlalchemy.ext.baked.BakedQuery.to\_query parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query.params.query_or_session)

[query\_property() (sqlalchemy.orm.scoping.scoped\_session method)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session.query_property)

[QueryableAttribute (class in sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute)

[QueryContext (class in sqlalchemy.orm.query)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.query.QueryContext)

[QueryEvents (class in sqlalchemy.orm.events)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents)

[QueuePool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.QueuePool)

[quote (sqlalchemy.schema.CheckConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.quote)

[(sqlalchemy.schema.Column attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.quote)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.quote) | [quote() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote)

[quote\_identifier() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_identifier)

[quote\_schema (sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.params.quote_schema)

[(sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.quote_schema)

[(sqlalchemy.schema.Table attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.quote_schema)

[quote\_schema() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.quote_schema)

[quoted\_name (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.quoted_name)

[quoting (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.quoting)

[(sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.quoting) | R - | | | | --- | --- | | [raiseerr (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/13/core/inspection.html#sqlalchemy.inspect.params.raiseerr)

[raiseload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.raiseload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.raiseload)

[random (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.random)

[range\_ (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.over.params.range_)

[RangeOperators (class in sqlalchemy.dialects.postgresql.ranges)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators)

[RangeOperators.comparator\_factory (class in sqlalchemy.dialects.postgresql.ranges)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory)

[rank (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.rank)

[RAW (class in sqlalchemy.dialects.oracle)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.RAW)

[raw (sqlalchemy.orm.events.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.params.raw)

[(sqlalchemy.orm.events.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.params.raw)

[(sqlalchemy.orm.events.MapperEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.params.raw)

[raw\_connection() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.raw_connection)

[read (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.read)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.read)

[read committed](https://docs.sqlalchemy.org/en/13/glossary.html#term-read-committed)

[read uncommitted](https://docs.sqlalchemy.org/en/13/glossary.html#term-read-uncommitted)

[REAL (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.REAL)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.REAL)

[(class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REAL)

[reconstruct\_instance() (sqlalchemy.orm.interfaces.MapperExtension method)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.MapperExtension.reconstruct_instance)

[reconstructor() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/constructors.html#sqlalchemy.orm.reconstructor)

[record\_info (sqlalchemy.pool.\_ConnectionFairy attribute)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy.record_info)

[(sqlalchemy.pool.\_ConnectionRecord attribute)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionRecord.record_info)

[recover (sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.recover)

[(sqlalchemy.engine.default.DefaultDialect.do\_rollback\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_rollback_twophase.params.recover)

[(sqlalchemy.engine.interfaces.Dialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.do_commit_twophase.params.recover)

[recreate() (sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.recreate)

[recursive (sqlalchemy.sql.expression.CompoundSelect.cte parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.cte.params.recursive)

[(sqlalchemy.sql.expression.GenerativeSelect.cte parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.cte.params.recursive)

[(sqlalchemy.sql.expression.HasCTE.cte parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.HasCTE.cte.params.recursive)

[recycle (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.recycle)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.recycle)

[reduce\_columns (sqlalchemy.orm.query.Query.subquery parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.subquery.params.reduce_columns)

[reduce\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.reduce_columns)

[refcolumns (sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.refcolumns)

[references() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.references)

[(sqlalchemy.schema.ForeignKey method)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.references)

[referred\_cls (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_collection\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_collection_relationship.params.referred_cls)

[(sqlalchemy.ext.automap.name\_for\_scalar\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.name_for_scalar_relationship.params.referred_cls)

[referred\_schema\_fn (sqlalchemy.schema.Table.tometadata parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.tometadata.params.referred_schema_fn)

[referred\_table (sqlalchemy.schema.ForeignKeyConstraint attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.referred_table)

[reflect (sqlalchemy.ext.automap.AutomapBase.prepare parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.AutomapBase.prepare.params.reflect)

[(sqlalchemy.schema.MetaData parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.params.reflect)

[reflect() (sqlalchemy.schema.MetaData method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect)

[reflecttable() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reflecttable)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.reflecttable)

[(sqlalchemy.engine.reflection.Inspector method)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflecttable)

[refresh() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.refresh)

[(sqlalchemy.orm.session.Session method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.refresh)

[refresh\_flush() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.refresh_flush)

[REGCLASS (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.REGCLASS)

[regexp (sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.regexp)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.regexp)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.regexp)

[register\_function() (in module sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.register_function)

[registry](https://docs.sqlalchemy.org/en/13/glossary.html#term-registry)

[relation() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relation)

[relational](https://docs.sqlalchemy.org/en/13/glossary.html#term-relational)

[relational algebra](https://docs.sqlalchemy.org/en/13/glossary.html#term-relational-algebra)

[relationship](https://docs.sqlalchemy.org/en/13/glossary.html#term-relationship)

[relationship() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship)

[RelationshipProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty)

[RelationshipProperty.Comparator (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.Comparator)

[relationships](https://docs.sqlalchemy.org/en/13/glossary.html#term-relationships)

[(sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.relationships)

[release](https://docs.sqlalchemy.org/en/13/glossary.html#term-release)

[release\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.release_savepoint)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.release_savepoint)

[released](https://docs.sqlalchemy.org/en/13/glossary.html#term-released)

[releases](https://docs.sqlalchemy.org/en/13/glossary.html#term-releases)

[remote() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.remote)

[remote\_attr (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.remote_attr)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.remote_attr)

[remote\_side (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.remote_side)

[remove() (in module sqlalchemy.event)](https://docs.sqlalchemy.org/en/13/core/event.html#sqlalchemy.event.remove)

[(sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.remove)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.remove)

[remove\_state() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.remove_state)

[remove\_state\_actions() (sqlalchemy.orm.session.UOWTransaction method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction.remove_state_actions)

[remover() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.remover)

[removes() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.removes)

[removes\_return() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.removes_return)

[render\_literal\_value() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_literal_value)

[render\_nulls (sqlalchemy.orm.session.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_insert_mappings.params.render_nulls)

[render\_table\_with\_column\_in\_update\_from (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.render_table_with_column_in_update_from)

[reorder() (sqlalchemy.ext.orderinglist.OrderingList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.reorder)

[reorder\_on\_append (sqlalchemy.ext.orderinglist.OrderingList parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#sqlalchemy.ext.orderinglist.OrderingList.params.reorder_on_append)

[repeatable read](https://docs.sqlalchemy.org/en/13/glossary.html#term-repeatable-read)

[replace() (sqlalchemy.sql.expression.ColumnCollection method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection.replace)

[(sqlalchemy.sql.visitors.ReplacingCloningVisitor method)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ReplacingCloningVisitor.replace)

[replace\_selectable() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.replace_selectable)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.replace_selectable)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.replace_selectable)

[replacement\_traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse)

[replaces() (sqlalchemy.orm.collections.collection static method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.collection.replaces)

[ReplacingCloningVisitor (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ReplacingCloningVisitor)

[require\_embedded (sqlalchemy.schema.Table.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.Alias.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.corresponding_column.params.require_embedded)

[(sqlalchemy.sql.expression.CompoundSelect.corresponding\_column parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.corresponding_column.params.require_embedded) | [required (sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.required)

[reset() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.reset)

[reset\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.reset_isolation_level)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.reset_isolation_level)

[reset\_joinpoint() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.reset_joinpoint)

[reset\_on\_return (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.reset_on_return)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.reset_on_return)

[resolve\_fks (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.resolve_fks)

[(sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.resolve_fks)

[ResourceClosedError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.ResourceClosedError)

[restore\_load\_context (sqlalchemy.orm.events.InstanceEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.params.restore_load_context)

[(sqlalchemy.orm.events.SessionEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.params.restore_load_context)

[Result (class in sqlalchemy.ext.baked)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result)

[result (sqlalchemy.events.ConnectionEvents.after\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_execute.params.result)

[result() (sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.result)

[result\_processor() (sqlalchemy.dialects.postgresql.HSTORE method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.result_processor)

[(sqlalchemy.types.Boolean method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Boolean.result_processor)

[(sqlalchemy.types.Float method)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Float.result_processor)

[ResultProxy (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy)

[retrieve\_as\_bitwise (sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.retrieve_as_bitwise)

[return\_defaults (sqlalchemy.orm.session.Session.bulk\_insert\_mappings parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_insert_mappings.params.return_defaults)

[(sqlalchemy.orm.session.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_save_objects.params.return_defaults)

[return\_defaults() (sqlalchemy.sql.expression.ValuesBase method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.ValuesBase.return_defaults)

[return\_fn (sqlalchemy.ext.automap.generate\_relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.generate_relationship.params.return_fn)

[return\_type (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.op.params.return_type)

[(sqlalchemy.orm.attributes.QueryableAttribute.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.op.params.return_type)

[(sqlalchemy.orm.PropComparator.op parameter)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.op.params.return_type)

[returned\_defaults (sqlalchemy.engine.ResultProxy attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.returned_defaults)

[RETURNING](https://docs.sqlalchemy.org/en/13/glossary.html#term-RETURNING)

[returning (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning)

[returning() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Delete.returning)

[(sqlalchemy.sql.expression.Insert method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Insert.returning)

[(sqlalchemy.sql.expression.Update method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Update.returning)

[returning\_precedes\_values (sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.returning_precedes_values)

[returns\_rows (sqlalchemy.engine.ResultProxy attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.returns_rows)

[ReturnTypeFromArgs (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.ReturnTypeFromArgs)

[retval (sqlalchemy.events.ConnectionEvents parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.params.retval)

[(sqlalchemy.orm.events.AttributeEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.params.retval)

[(sqlalchemy.orm.events.MapperEvents parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.MapperEvents.params.retval)

[reverse() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.reverse)

[reverse\_operate() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.reverse_operate)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.reverse_operate)

[(sqlalchemy.orm.ColumnProperty.Comparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.ColumnProperty.Comparator.reverse_operate)

[right (sqlalchemy.schema.Table.join parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.join.params.right)

[(sqlalchemy.schema.Table.outerjoin parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.outerjoin.params.right)

[(sqlalchemy.sql.expression.Alias.join parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.join.params.right)

[right\_index (sqlalchemy.sql.functions.FunctionElement.as\_comparison parameter)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.right_index)

[rollback() (sqlalchemy.engine.Transaction method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Transaction.rollback)

[(sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.rollback)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.rollback)

[rollback\_savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_savepoint)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.rollback_savepoint)

[rollback\_twophase() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.rollback_twophase)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.rollback_twophase)

[rollup (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.rollup)

[row (sqlalchemy.orm.Mapper.identity\_key\_from\_row parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.identity_key_from_row.params.row)

[rowcount (sqlalchemy.engine.ResultProxy attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.rowcount)

[RowProxy (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy)

[rows (sqlalchemy.sql.expression.over parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.over.params.rows)

[ROWVERSION (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.ROWVERSION)

[run\_callable() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.run_callable)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.run_callable) | S - | | | | --- | --- | | [SADeprecationWarning](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning)

[sampling (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.sampling)

[SAPendingDeprecationWarning](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning)

[savepoint() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.savepoint)

[(sqlalchemy.interfaces.ConnectionProxy method)](https://docs.sqlalchemy.org/en/13/core/interfaces.html#sqlalchemy.interfaces.ConnectionProxy.savepoint)

[SAWarning](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.SAWarning)

[scalar (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.scalar)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.scalar)

[scalar() (sqlalchemy.engine.Connectable method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connectable.scalar)

[(sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.scalar)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.scalar)

[ScalarSelect (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect)

[scale (sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.scale)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.scale)

[(sqlalchemy.dialects.mysql.FLOAT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.FLOAT.params.scale)

[schema (sqlalchemy.dialects.postgresql.base.PGInspector.get\_enums parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_enums.params.schema)

[(sqlalchemy.dialects.postgresql.base.PGInspector.get\_view\_names parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.base.PGInspector.get_view_names.params.schema)

[(sqlalchemy.engine.default.DefaultDialect.get\_view\_names parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.get_view_names.params.schema)

[schema\_for\_object (sqlalchemy.engine.Connection attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.schema_for_object)

[(sqlalchemy.engine.Engine attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.schema_for_object)

[schema\_translate\_map (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.schema_translate_map)

[(sqlalchemy.engine.interfaces.Compiled parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.params.schema_translate_map)

[(sqlalchemy.sql.compiler.DDLCompiler parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.params.schema_translate_map)

[SchemaEventTarget (class in sqlalchemy.events)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.SchemaEventTarget)

[SchemaItem (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.SchemaItem)

[SchemaType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.SchemaType)

[scoped\_session (class in sqlalchemy.orm.scoping)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session)

[ScopedRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.util.ScopedRegistry)

[scopefunc (sqlalchemy.orm.scoping.scoped\_session parameter)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session.params.scopefunc)

[(sqlalchemy.util.ScopedRegistry parameter)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)
[\[0\]](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.util.ScopedRegistry.params.scopefunc)

[second\_precision (sqlalchemy.dialects.oracle.INTERVAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#sqlalchemy.dialects.oracle.INTERVAL.params.second_precision)

[(sqlalchemy.types.Interval parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Interval.params.second_precision)

[secondary (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondary)

[secondaryjoin (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.secondaryjoin)

[seed (sqlalchemy.sql.expression.tablesample parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.tablesample.params.seed)

[Select (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select)

[select (sqlalchemy.sql.expression.Insert.from\_select parameter)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Insert.from_select.params.select)

[select() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.select)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.select)

[select\_entity\_from() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.select_entity_from)

[select\_from() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.select_from)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Exists.select_from)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.select_from)

[selectable](https://docs.sqlalchemy.org/en/13/glossary.html#term-selectable)

[Selectable (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Selectable)

[selectable (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.selectable)

[(sqlalchemy.orm.query.Query attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.selectable)

[(sqlalchemy.orm.with\_polymorphic parameter)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic.params.selectable)

[SelectBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.SelectBase)

[selectin\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.selectin_polymorphic)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.selectin_polymorphic)

[selectinload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.selectinload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.selectinload)

[selectinload\_all() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.selectinload_all)

[self\_and\_descendants (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.self_and_descendants)

[self\_group() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.self_group)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.self_group)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.self_group)

[Sequence (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence)

[serializable](https://docs.sqlalchemy.org/en/13/glossary.html#term-serializable)

[Serializer() (in module sqlalchemy.ext.serializer)](https://docs.sqlalchemy.org/en/13/core/serializer.html#sqlalchemy.ext.serializer.Serializer)

[server\_default (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.server_default)

[server\_onupdate (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.server_onupdate)

[Session](https://docs.sqlalchemy.org/en/13/glossary.html#term-Session)

[(class in sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session)

[session (sqlalchemy.orm.events.SessionEvents.after\_begin parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_begin.params.session)

[(sqlalchemy.orm.events.SessionEvents.after\_commit parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_commit.params.session)

[(sqlalchemy.orm.events.SessionEvents.after\_flush parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_flush.params.session)

[session\_factory (sqlalchemy.orm.scoping.scoped\_session attribute)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session.session_factory)

[(sqlalchemy.orm.scoping.scoped\_session parameter)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.orm.scoping.scoped_session.params.session_factory)

[session\_user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.session_user)

[SessionEvents (class in sqlalchemy.orm.events)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents)

[SessionExtension (class in sqlalchemy.orm.interfaces)](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#sqlalchemy.orm.interfaces.SessionExtension)

[sessionmaker (class in sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.sessionmaker)

[SessionTransaction (class in sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.SessionTransaction)

[SET (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.SET)

[set() (sqlalchemy.ext.associationproxy.AssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.set)

[(sqlalchemy.orm.collections.MappedCollection method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.MappedCollection.set)

[(sqlalchemy.orm.events.AttributeEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.AttributeEvents.set)

[set\_ (sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.set_)

[set\_attribute() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute)

[set\_committed\_value() (in module sqlalchemy.orm.attributes)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value)

[set\_connection\_execution\_options() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.set_connection_execution_options)

[set\_engine\_execution\_options() (sqlalchemy.events.ConnectionEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.set_engine_execution_options)

[set\_input\_sizes() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.set_input_sizes)

[set\_isolation\_level() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.set_isolation_level)

[(sqlalchemy.engine.interfaces.Dialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.set_isolation_level)

[set\_parent() (sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.set_parent)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.set_parent)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.SynonymProperty.set_parent)

[set\_shard() (sqlalchemy.ext.horizontal\_shard.ShardedQuery method)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery.set_shard)

[setdefault() (sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.setdefault)

[(sqlalchemy.orm.collections.MappedCollection method)](https://docs.sqlalchemy.org/en/13/orm/collections.html#sqlalchemy.orm.collections.MappedCollection.setdefault)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.setdefault)

[setter() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.setter)

[setup() (sqlalchemy.orm.interfaces.MapperProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.interfaces.MapperProperty.setup)

[(sqlalchemy.orm.RelationshipProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.RelationshipProperty.setup)

[(sqlalchemy.orm.SynonymProperty method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.SynonymProperty.setup)

[shard\_chooser (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shard_chooser)

[ShardedQuery (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedQuery)

[ShardedSession (class in sqlalchemy.ext.horizontal\_shard)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession)

[shards (sqlalchemy.ext.horizontal\_shard.ShardedSession parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#sqlalchemy.ext.horizontal_shard.ShardedSession.params.shards)

[shares\_lineage() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.shares_lineage)

[(sqlalchemy.sql.expression.ColumnElement method)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.shares_lineage)

[should\_autocommit\_text() (sqlalchemy.engine.default.DefaultExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext.should_autocommit_text)

[(sqlalchemy.engine.interfaces.ExecutionContext method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.ExecutionContext.should_autocommit_text)

[should\_evaluate\_none (sqlalchemy.types.JSON attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none)

[single (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.single)

[single\_entity (sqlalchemy.orm.query.Bundle attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.single_entity)

[(sqlalchemy.orm.query.Bundle parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Bundle.params.single_entity)

[single\_parent (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.single_parent)

[SingletonThreadPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool)

[skip\_fn (sqlalchemy.schema.sort\_tables parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.sort_tables.params.skip_fn)

[skip\_locked (sqlalchemy.sql.expression.CompoundSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.GenerativeSelect.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update.params.skip_locked)

[(sqlalchemy.sql.expression.Select.with\_for\_update parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_for_update.params.skip_locked) | [slice() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.slice)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.slice)

[SMALLDATETIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME)

[SMALLINT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.SMALLINT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.SMALLINT)

[SmallInteger (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.SmallInteger)

[SMALLMONEY (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLMONEY)

[soft (sqlalchemy.pool.\_ConnectionFairy.invalidate parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionFairy.invalidate.params.soft)

[(sqlalchemy.pool.\_ConnectionRecord.invalidate parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool._ConnectionRecord.invalidate.params.soft)

[soft\_invalidate() (sqlalchemy.events.PoolEvents method)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.PoolEvents.soft_invalidate)

[sort() (sqlalchemy.ext.mutable.MutableList method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList.sort)

[sort\_key\_function (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.sort_key_function)

[(sqlalchemy.types.TypeDecorator attribute)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function)

[(sqlalchemy.types.TypeEngine attribute)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function)

[sort\_tables() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.sort_tables)

[sort\_tables\_and\_constraints() (in module sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.sort_tables_and_constraints)

[sorted\_tables (sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.sorted_tables)

[spoil() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.spoil)

[sql\_compiler (sqlalchemy.engine.interfaces.Compiled attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.sql_compiler)

[(sqlalchemy.sql.compiler.DDLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler.sql_compiler)

[(sqlalchemy.sql.compiler.SQLCompiler attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.sql_compiler)

[sql\_only (sqlalchemy.orm.raiseload parameter)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.raiseload.params.sql_only)

[SQL\_VARIANT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.SQL_VARIANT)

sqlalchemy.dialects.firebird.base

[module](https://docs.sqlalchemy.org/en/13/dialects/firebird.html#module-sqlalchemy.dialects.firebird.base)

sqlalchemy.dialects.firebird.fdb

[module](https://docs.sqlalchemy.org/en/13/dialects/firebird.html#module-sqlalchemy.dialects.firebird.fdb)

sqlalchemy.dialects.firebird.kinterbasdb

[module](https://docs.sqlalchemy.org/en/13/dialects/firebird.html#module-sqlalchemy.dialects.firebird.kinterbasdb)

sqlalchemy.dialects.mssql.adodbapi

[module](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.adodbapi)

sqlalchemy.dialects.mssql.base

[module](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.base)

sqlalchemy.dialects.mssql.mxodbc

[module](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.mxodbc)

sqlalchemy.dialects.mssql.pymssql

[module](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pymssql)

sqlalchemy.dialects.mssql.pyodbc

[module](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pyodbc)

sqlalchemy.dialects.mssql.zxjdbc

[module](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#module-sqlalchemy.dialects.mssql.zxjdbc)

sqlalchemy.dialects.mysql.base

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.base)

sqlalchemy.dialects.mysql.cymysql

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.cymysql)

sqlalchemy.dialects.mysql.gaerdbms

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.gaerdbms)

sqlalchemy.dialects.mysql.mysqlconnector

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqlconnector)

sqlalchemy.dialects.mysql.mysqldb

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.mysqldb)

sqlalchemy.dialects.mysql.oursql

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.oursql)

sqlalchemy.dialects.mysql.pymysql

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pymysql)

sqlalchemy.dialects.mysql.pyodbc

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.pyodbc)

sqlalchemy.dialects.mysql.zxjdbc

[module](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#module-sqlalchemy.dialects.mysql.zxjdbc)

sqlalchemy.dialects.oracle.base

[module](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#module-sqlalchemy.dialects.oracle.base)

sqlalchemy.dialects.oracle.cx\_oracle

[module](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#module-sqlalchemy.dialects.oracle.cx_oracle)

sqlalchemy.dialects.oracle.zxjdbc

[module](https://docs.sqlalchemy.org/en/13/dialects/oracle.html#module-sqlalchemy.dialects.oracle.zxjdbc)

sqlalchemy.dialects.postgresql.base

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.base)

sqlalchemy.dialects.postgresql.pg8000

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pg8000)

sqlalchemy.dialects.postgresql.psycopg2

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2)

sqlalchemy.dialects.postgresql.psycopg2cffi

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.psycopg2cffi)

sqlalchemy.dialects.postgresql.pygresql

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pygresql)

sqlalchemy.dialects.postgresql.pypostgresql

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.pypostgresql)

sqlalchemy.dialects.postgresql.zxjdbc

[module](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#module-sqlalchemy.dialects.postgresql.zxjdbc)

sqlalchemy.dialects.sqlite

[module](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite)

sqlalchemy.dialects.sqlite.base

[module](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.base)

sqlalchemy.dialects.sqlite.pysqlcipher

[module](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlcipher)

sqlalchemy.dialects.sqlite.pysqlite

[module](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#module-sqlalchemy.dialects.sqlite.pysqlite)

sqlalchemy.dialects.sybase.base

[module](https://docs.sqlalchemy.org/en/13/dialects/sybase.html#module-sqlalchemy.dialects.sybase.base)

sqlalchemy.dialects.sybase.mxodbc

[module](https://docs.sqlalchemy.org/en/13/dialects/sybase.html#module-sqlalchemy.dialects.sybase.mxodbc)

sqlalchemy.dialects.sybase.pyodbc

[module](https://docs.sqlalchemy.org/en/13/dialects/sybase.html#module-sqlalchemy.dialects.sybase.pyodbc)

sqlalchemy.dialects.sybase.pysybase

[module](https://docs.sqlalchemy.org/en/13/dialects/sybase.html#module-sqlalchemy.dialects.sybase.pysybase)

sqlalchemy.engine

[module](https://docs.sqlalchemy.org/en/13/core/connections.html#module-sqlalchemy.engine)

sqlalchemy.exc

[module](https://docs.sqlalchemy.org/en/13/core/exceptions.html#module-sqlalchemy.exc)

sqlalchemy.ext.associationproxy

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#module-sqlalchemy.ext.associationproxy)

sqlalchemy.ext.automap

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#module-sqlalchemy.ext.automap)

sqlalchemy.ext.baked

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#module-sqlalchemy.ext.baked)

sqlalchemy.ext.compiler

[module](https://docs.sqlalchemy.org/en/13/core/compiler.html#module-sqlalchemy.ext.compiler)

sqlalchemy.ext.declarative

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#module-sqlalchemy.ext.declarative)

sqlalchemy.ext.horizontal\_shard

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/horizontal_shard.html#module-sqlalchemy.ext.horizontal_shard)

sqlalchemy.ext.hybrid

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#module-sqlalchemy.ext.hybrid)

sqlalchemy.ext.indexable

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/indexable.html#module-sqlalchemy.ext.indexable)

sqlalchemy.ext.instrumentation

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#module-sqlalchemy.ext.instrumentation)

sqlalchemy.ext.mutable

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#module-sqlalchemy.ext.mutable)

sqlalchemy.ext.orderinglist

[module](https://docs.sqlalchemy.org/en/13/orm/extensions/orderinglist.html#module-sqlalchemy.ext.orderinglist)

sqlalchemy.ext.serializer

[module](https://docs.sqlalchemy.org/en/13/core/serializer.html#module-sqlalchemy.ext.serializer)

sqlalchemy.inspection

[module](https://docs.sqlalchemy.org/en/13/core/inspection.html#module-sqlalchemy.inspection)

sqlalchemy.interfaces

[module](https://docs.sqlalchemy.org/en/13/core/interfaces.html#module-sqlalchemy.interfaces)

sqlalchemy.orm.exc

[module](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#module-sqlalchemy.orm.exc)

sqlalchemy.orm.instrumentation

[module](https://docs.sqlalchemy.org/en/13/orm/events.html#module-sqlalchemy.orm.instrumentation)

sqlalchemy.orm.interfaces

[module](https://docs.sqlalchemy.org/en/13/orm/deprecated.html#module-sqlalchemy.orm.interfaces)

sqlalchemy.orm.session

[module](https://docs.sqlalchemy.org/en/13/orm/session.html#module-sqlalchemy.orm.session)

sqlalchemy.pool

[module](https://docs.sqlalchemy.org/en/13/core/pooling.html#module-sqlalchemy.pool)

sqlalchemy.schema

[module](https://docs.sqlalchemy.org/en/13/core/metadata.html#module-sqlalchemy.schema)

sqlalchemy.sql.expression

[module](https://docs.sqlalchemy.org/en/13/core/expression_api.html#module-sqlalchemy.sql.expression)

sqlalchemy.sql.functions

[module](https://docs.sqlalchemy.org/en/13/core/functions.html#module-sqlalchemy.sql.functions)

sqlalchemy.sql.visitors

[module](https://docs.sqlalchemy.org/en/13/core/visitors.html#module-sqlalchemy.sql.visitors)

sqlalchemy.types

[module](https://docs.sqlalchemy.org/en/13/core/type_basics.html#module-sqlalchemy.types)

[sqlalchemy\_exception (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.sqlalchemy_exception)

[SQLAlchemyError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError)

[SQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler)

[sqltext (sqlalchemy.schema.CheckConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.CheckConstraint.params.sqltext)

[(sqlalchemy.schema.Computed parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Computed.params.sqltext)

[StaleDataError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.StaleDataError)

[start (sqlalchemy.schema.Sequence parameter)](https://docs.sqlalchemy.org/en/13/core/defaults.html#sqlalchemy.schema.Sequence.params.start)

[startswith() (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance method)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.startswith)

[(sqlalchemy.orm.attributes.QueryableAttribute method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.startswith)

[(sqlalchemy.orm.PropComparator method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.startswith)

[state (sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.state)

[(sqlalchemy.schema.DDLElement.execute\_if parameter)](https://docs.sqlalchemy.org/en/13/core/ddl.html#sqlalchemy.schema.DDLElement.execute_if.params.state)

[state\_dict (sqlalchemy.orm.events.InstanceEvents.pickle parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.pickle.params.state_dict)

[(sqlalchemy.orm.events.InstanceEvents.unpickle parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.unpickle.params.state_dict)

[state\_getter() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.state_getter)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.state_getter)

[statement (sqlalchemy.engine.ExceptionContext attribute)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ExceptionContext.statement)

[(sqlalchemy.engine.interfaces.Compiled parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Compiled.params.statement)

[(sqlalchemy.events.ConnectionEvents.after\_cursor\_execute parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.ConnectionEvents.after_cursor_execute.params.statement)

[statement\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.statement_compiler)

[StatementError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.StatementError)

[StaticPool (class in sqlalchemy.pool)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.StaticPool)

[storage\_format (sqlalchemy.dialects.sqlite.DATE parameter)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATE.params.storage_format)

[(sqlalchemy.dialects.sqlite.DATETIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.DATETIME.params.storage_format)

[(sqlalchemy.dialects.sqlite.TIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME.params.storage_format)

[strategy (sqlalchemy.create\_engine parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.create_engine.params.strategy)

[stream\_results (sqlalchemy.engine.Connection.execution\_options parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.execution_options.params.stream_results)

[strict (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.strict)

[strictly\_left\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.strictly_left_of)

[strictly\_right\_of() (sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator\_factory method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ranges.RangeOperators.comparator_factory.strictly_right_of)

[String (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.String)

[StrSQLCompiler (class in sqlalchemy.sql.compiler)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler)

[subject (sqlalchemy.inspect parameter)](https://docs.sqlalchemy.org/en/13/core/inspection.html#sqlalchemy.inspect.params.subject)

[subquery](https://docs.sqlalchemy.org/en/13/glossary.html#term-subquery)

[subquery() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.subquery)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.subquery)

[subqueryload() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.subqueryload)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.subqueryload)

[subqueryload\_all() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_relationships.html#sqlalchemy.orm.subqueryload_all)

[subtransactions (sqlalchemy.orm.session.Session.begin parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.begin.params.subtransactions)

[suffix\_with() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.suffix_with)

[(sqlalchemy.sql.expression.CTE method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CTE.suffix_with)

[(sqlalchemy.sql.expression.HasSuffixes method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes.suffix_with)

[sum (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.sum)

[sum() (sqlalchemy.orm.attributes.History method)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.History.sum)

[supports\_execution (sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.supports_execution)

[supports\_sane\_multi\_rowcount() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.supports_sane_multi_rowcount)

[supports\_sane\_rowcount() (sqlalchemy.engine.ResultProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.ResultProxy.supports_sane_rowcount)

[supports\_sane\_rowcount\_returning (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.supports_sane_rowcount_returning)

[symmetric (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.between.params.symmetric)

[symmetric\_difference\_update() (sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.symmetric_difference_update)

[sync\_backref (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.sync_backref)

[synchronize\_session (sqlalchemy.orm.query.Query.delete parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.delete.params.synchronize_session)

[(sqlalchemy.orm.query.Query.update parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.update.params.synchronize_session)

[synonym() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.synonym)

[synonym\_for() (in module sqlalchemy.ext.declarative)](https://docs.sqlalchemy.org/en/13/orm/extensions/declarative/api.html#sqlalchemy.ext.declarative.synonym_for)

[SynonymProperty (class in sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.SynonymProperty)

[synonyms (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.synonyms)

[sysdate (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.sysdate)

[system (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.system) | T - | | | | --- | --- | | [Table (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table)

[table (sqlalchemy.dialects.mysql.insert parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.insert.params.table)

[(sqlalchemy.dialects.postgresql.insert parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert.params.table)

[(sqlalchemy.engine.reflection.Inspector.reflecttable parameter)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.reflecttable.params.table)

[table metadata](https://docs.sqlalchemy.org/en/13/glossary.html#term-table-metadata)

[table() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.table)

[table\_map (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.table_map)

[table\_name (sqlalchemy.engine.reflection.Inspector.get\_check\_constraints parameter)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_check_constraints.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_columns parameter)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_columns.params.table_name)

[(sqlalchemy.engine.reflection.Inspector.get\_foreign\_keys parameter)](https://docs.sqlalchemy.org/en/13/core/reflection.html#sqlalchemy.engine.reflection.Inspector.get_foreign_keys.params.table_name)

[table\_names() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.table_names)

[TableClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.TableClause)

[tablename (sqlalchemy.ext.automap.classname\_for\_table parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/automap.html#sqlalchemy.ext.automap.classname_for_table.params.tablename)

[tables (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.tables)

[(sqlalchemy.schema.MetaData attribute)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.tables)

[(sqlalchemy.schema.MetaData.create\_all parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.create_all.params.tables)

[TableSample (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.TableSample)

[tablesample() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.tablesample)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.tablesample)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.tablesample)

[target (sqlalchemy.events.DDLEvents.after\_create parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_create.params.target)

[(sqlalchemy.events.DDLEvents.after\_drop parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_drop.params.target)

[(sqlalchemy.events.DDLEvents.after\_parent\_attach parameter)](https://docs.sqlalchemy.org/en/13/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach.params.target)

[target\_class (sqlalchemy.ext.associationproxy.AssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.target_class)

[(sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ObjectAssociationProxyInstance.target_class)

[target\_collection (sqlalchemy.ext.associationproxy.association\_proxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.association_proxy.params.target_collection)

[(sqlalchemy.ext.associationproxy.AssociationProxy parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy.params.target_collection)

[target\_fullname (sqlalchemy.schema.ForeignKey attribute)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.target_fullname)

[TEXT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TEXT)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.TEXT)

[Text (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Text)

[text (sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.column.params.text)

[(sqlalchemy.sql.expression.literal\_column parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.literal_column.params.text)

[(sqlalchemy.sql.expression.text parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.text.params.text)

[text() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.text)

[text\_type (sqlalchemy.dialects.postgresql.HSTORE parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.params.text_type)

[TextAsFrom (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.TextAsFrom)

[TextClause (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.TextClause)

thread safety

[Connection](https://docs.sqlalchemy.org/en/13/core/connections.html#index-0)

[Transaction](https://docs.sqlalchemy.org/en/13/core/connections.html#index-1)

[ThreadLocalMetaData (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.ThreadLocalMetaData)

[ThreadLocalRegistry (class in sqlalchemy.util)](https://docs.sqlalchemy.org/en/13/orm/contextual.html#sqlalchemy.util.ThreadLocalRegistry)

[TIME (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TIME)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME)

[(class in sqlalchemy.dialects.sqlite)](https://docs.sqlalchemy.org/en/13/dialects/sqlite.html#sqlalchemy.dialects.sqlite.TIME) | [Time (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Time)

[timeout (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.QueuePool.params.timeout)

[TimeoutError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.TimeoutError)

[TIMESTAMP (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TIMESTAMP)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TIMESTAMP)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.TIMESTAMP)

[timetuple (sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance attribute)](https://docs.sqlalchemy.org/en/13/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.ColumnAssociationProxyInstance.timetuple)

[(sqlalchemy.orm.attributes.QueryableAttribute attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.attributes.QueryableAttribute.timetuple)

[(sqlalchemy.orm.PropComparator attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.PropComparator.timetuple)

[timezone (sqlalchemy.dialects.mssql.SMALLDATETIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.SMALLDATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.DATETIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DATETIME.params.timezone)

[(sqlalchemy.dialects.mysql.TIME parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME.params.timezone)

[TINYBLOB (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYBLOB)

[TINYINT (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TINYINT)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYINT)

[TINYTEXT (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYTEXT)

[to\_query() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.to_query)

[tometadata() (sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.tometadata)

[Transaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Transaction)

[transaction (sqlalchemy.orm.events.SessionEvents.after\_begin parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_begin.params.transaction)

[(sqlalchemy.orm.events.SessionEvents.after\_transaction\_create parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_transaction_create.params.transaction)

[(sqlalchemy.orm.events.SessionEvents.after\_transaction\_end parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_transaction_end.params.transaction)

[transaction() (sqlalchemy.engine.Connection method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.transaction)

[(sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.transaction)

[transient](https://docs.sqlalchemy.org/en/13/glossary.html#term-transient)

[(sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.transient)

[transient\_to\_pending() (sqlalchemy.orm.events.SessionEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.transient_to_pending)

[translate\_connect\_args() (sqlalchemy.engine.url.URL method)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.translate_connect_args)

[traverse() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.traverse)

[(sqlalchemy.sql.visitors.ClauseVisitor method)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ClauseVisitor.traverse)

[(sqlalchemy.sql.visitors.CloningVisitor method)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.CloningVisitor.traverse)

[traverse\_depthfirst() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.traverse_depthfirst)

[traverse\_using() (in module sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.traverse_using)

[true() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.true)

[True\_ (class in sqlalchemy.sql.elements)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.True_)

[try\_cast() (in module sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.try_cast)

[TSRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSRANGE)

[TSTZRANGE (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSTZRANGE)

[TSVECTOR (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.TSVECTOR)

[Tuple (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.Tuple)

[tuple\_() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.tuple_)

[twophase (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.twophase)

[TwoPhaseTransaction (class in sqlalchemy.engine)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction)

[type (sqlalchemy.dialects.postgresql.hstore attribute)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.hstore.type)

[(sqlalchemy.sql.expression.column parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.column.params.type)

[(sqlalchemy.sql.expression.ColumnElement attribute)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement.type)

[type\_ (sqlalchemy.orm.Mapper.cascade\_iterator parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.cascade_iterator.params.type_)

[(sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.type_)

[(sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.type_)

[type\_coerce() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.type_coerce)

[type\_compiler (sqlalchemy.engine.default.DefaultDialect attribute)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_compiler)

[type\_descriptor() (sqlalchemy.engine.default.DefaultDialect method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.type_descriptor)

[(sqlalchemy.engine.interfaces.Dialect class method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.type_descriptor)

[type\_engine() (sqlalchemy.types.TypeDecorator method)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine)

[TypeCoerce (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.TypeCoerce)

[typecolname (sqlalchemy.orm.polymorphic\_union parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.polymorphic_union.params.typecolname)

[TypeDecorator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator)

[TypeDecorator.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator)

[TypeEngine (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine)

[TypeEngine.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator)

[typemap (sqlalchemy.sql.expression.text parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.text.params.typemap) | U - | | | | --- | --- | | [UnaryExpression (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.UnaryExpression)

[UnboundExecutionError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError)

[undefer() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.undefer)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.undefer)

[undefer\_group() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.undefer_group)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.undefer_group)

[unformat\_identifiers() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.unformat_identifiers)

[Unicode (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Unicode)

[unicode (sqlalchemy.dialects.mysql.ENUM parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM.params.unicode)

[(sqlalchemy.dialects.mysql.LONGTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.LONGTEXT.params.unicode)

[(sqlalchemy.dialects.mysql.MEDIUMTEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.MEDIUMTEXT.params.unicode)

[unicode\_error (sqlalchemy.dialects.mssql.CHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.CHAR.params.unicode_error)

[(sqlalchemy.dialects.mssql.TEXT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.TEXT.params.unicode_error)

[(sqlalchemy.dialects.mssql.VARCHAR parameter)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.VARCHAR.params.unicode_error)

[UnicodeText (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.UnicodeText)

[uninstall\_descriptor() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_descriptor)

[uninstall\_member() (sqlalchemy.ext.instrumentation.InstrumentationManager method)](https://docs.sqlalchemy.org/en/13/orm/extensions/instrumentation.html#sqlalchemy.ext.instrumentation.InstrumentationManager.uninstall_member)

[union() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.union)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.union)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.union)

[union\_all() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.union_all)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.union_all)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.union_all)

[unique (sqlalchemy.schema.Column parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.params.unique)

[(sqlalchemy.schema.Index parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.Index.params.unique)

[(sqlalchemy.sql.expression.bindparam parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.bindparam.params.unique)

[unique constraint](https://docs.sqlalchemy.org/en/13/glossary.html#term-unique-constraint)

[unique key index](https://docs.sqlalchemy.org/en/13/glossary.html#term-unique-key-index)

[unique\_connection() (sqlalchemy.pool.Pool method)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.unique_connection)

[(sqlalchemy.pool.QueuePool method)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.QueuePool.unique_connection)

[unique\_params() (sqlalchemy.schema.Column method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.unique_params)

[(sqlalchemy.schema.Table method)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.unique_params)

[(sqlalchemy.sql.expression.Alias method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Alias.unique_params)

[UniqueConstraint (class in sqlalchemy.schema)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.UniqueConstraint)

[UNIQUEIDENTIFIER (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.UNIQUEIDENTIFIER)

[unit of work](https://docs.sqlalchemy.org/en/13/glossary.html#term-unit-of-work)

[unloaded (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.unloaded)

[unloaded\_expirable (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.unloaded_expirable)

[UnmappedClassError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedClassError)

[UnmappedColumnError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedColumnError)

[UnmappedError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedError)

[UnmappedInstanceError](https://docs.sqlalchemy.org/en/13/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError)

[unmodified (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.unmodified)

[unmodified\_intersection() (sqlalchemy.orm.state.InstanceState method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.unmodified_intersection) | [unpickle() (sqlalchemy.orm.events.InstanceEvents method)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.InstanceEvents.unpickle)

[UnreflectableTableError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.UnreflectableTableError)

[unregister() (sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.unregister)

[unsigned (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.unsigned)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.unsigned)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.unsigned)

[UnsupportedCompilationError](https://docs.sqlalchemy.org/en/13/core/exceptions.html#sqlalchemy.exc.UnsupportedCompilationError)

[UOWTransaction (class in sqlalchemy.orm.session)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction)

[Update (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Update)

[update() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.update)

[(sqlalchemy.ext.mutable.MutableDict method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict.update)

[(sqlalchemy.ext.mutable.MutableSet method)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableSet.update)

[update\_args (sqlalchemy.orm.query.Query.update parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.update.params.update_args)

[update\_changed\_only (sqlalchemy.orm.session.Session.bulk\_save\_objects parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.bulk_save_objects.params.update_changed_only)

[update\_context (sqlalchemy.orm.events.QueryEvents.before\_compile\_update parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.QueryEvents.before_compile_update.params.update_context)

[(sqlalchemy.orm.events.SessionEvents.after\_bulk\_update parameter)](https://docs.sqlalchemy.org/en/13/orm/events.html#sqlalchemy.orm.events.SessionEvents.after_bulk_update.params.update_context)

[update\_execution\_options() (sqlalchemy.engine.Engine method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Engine.update_execution_options)

[update\_expression() (sqlalchemy.ext.hybrid.hybrid\_property method)](https://docs.sqlalchemy.org/en/13/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property.update_expression)

[update\_from\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_from_clause)

[(sqlalchemy.sql.compiler.StrSQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler.update_from_clause)

[update\_limit\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_limit_clause)

[update\_tables\_clause() (sqlalchemy.sql.compiler.SQLCompiler method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler.update_tables_clause)

[UpdateBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.UpdateBase)

[upper\_bound (sqlalchemy.sql.expression.between parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.between.params.upper_bound)

[URL (class in sqlalchemy.engine.url)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL)

[url (sqlalchemy.engine.CreateEnginePlugin parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.CreateEnginePlugin.params.url)

[(sqlalchemy.engine.default.DefaultDialect.create\_connect\_args parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.create_connect_args.params.url)

[(sqlalchemy.engine.interfaces.Dialect.create\_connect\_args parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.interfaces.Dialect.create_connect_args.params.url)

[use\_alter (sqlalchemy.schema.ForeignKey parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKey.params.use_alter)

[(sqlalchemy.schema.ForeignKeyConstraint parameter)](https://docs.sqlalchemy.org/en/13/core/constraints.html#sqlalchemy.schema.ForeignKeyConstraint.params.use_alter)

[use\_labels (sqlalchemy.sql.expression.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.select.params.use_labels)

[use\_lifo (sqlalchemy.pool.QueuePool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.QueuePool.params.use_lifo)

[use\_proxies (sqlalchemy.schema.Column.compare parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Column.compare.params.use_proxies)

[(sqlalchemy.sql.elements.False\_.compare parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.False_.compare.params.use_proxies)

[(sqlalchemy.sql.elements.Null.compare parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.elements.Null.compare.params.use_proxies)

[use\_threadlocal (sqlalchemy.pool.Pool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.Pool.params.use_threadlocal)

[(sqlalchemy.pool.SingletonThreadPool parameter)](https://docs.sqlalchemy.org/en/13/core/pooling.html#sqlalchemy.pool.SingletonThreadPool.params.use_threadlocal)

[useexisting (sqlalchemy.schema.Table parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.Table.params.useexisting)

[uselist (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.uselist)

[user (class in sqlalchemy.sql.functions)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.user)

[UserDefinedType (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.UserDefinedType)

[UserDefinedType.Comparator (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/custom_types.html#sqlalchemy.types.UserDefinedType.Comparator)

[username (sqlalchemy.engine.url.URL parameter)](https://docs.sqlalchemy.org/en/13/core/engines.html#sqlalchemy.engine.url.URL.params.username)

[uses\_objects (sqlalchemy.orm.SynonymProperty attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.SynonymProperty.uses_objects)

[using (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.using)

[UUID (class in sqlalchemy.dialects.postgresql)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.UUID) | V - | | | | --- | --- | | [validate\_sql\_phrase() (sqlalchemy.sql.compiler.IdentifierPreparer method)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer.validate_sql_phrase)

[validate\_strings (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.validate_strings)

[validates() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/mapped_attributes.html#sqlalchemy.orm.validates)

[validators (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.validators)

[vals() (sqlalchemy.dialects.postgresql.HSTORE.Comparator method)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE.Comparator.vals)

[value (sqlalchemy.ext.mutable.Mutable.coerce parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.Mutable.coerce.params.value)

[(sqlalchemy.ext.mutable.MutableBase.coerce parameter)](https://docs.sqlalchemy.org/en/13/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableBase.coerce.params.value)

[(sqlalchemy.orm.attributes.set\_attribute parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.value)

[value() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.value)

[values (sqlalchemy.dialects.mysql.insert parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.insert.params.values)

[(sqlalchemy.dialects.mysql.SET parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.SET.params.values)

[(sqlalchemy.dialects.postgresql.insert parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.insert.params.values) | [values() (sqlalchemy.engine.RowProxy method)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.RowProxy.values)

[(sqlalchemy.orm.instrumentation.ClassManager method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.instrumentation.ClassManager.values)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.values)

[values\_callable (sqlalchemy.types.Enum parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.Enum.params.values_callable)

[ValuesBase (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.ValuesBase)

[VARBINARY (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.VARBINARY)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.VARBINARY)

[VARCHAR (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.VARCHAR)

[(class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR)

[(class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.VARCHAR)

[Variant (class in sqlalchemy.types)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Variant)

[version id column](https://docs.sqlalchemy.org/en/13/glossary.html#term-version-id-column)

[version\_id\_col (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.version_id_col)

[version\_id\_generator (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.version_id_generator)

[viewonly (sqlalchemy.orm.relationship parameter)](https://docs.sqlalchemy.org/en/13/orm/relationship_api.html#sqlalchemy.orm.relationship.params.viewonly)

[views (sqlalchemy.schema.MetaData.reflect parameter)](https://docs.sqlalchemy.org/en/13/core/metadata.html#sqlalchemy.schema.MetaData.reflect.params.views)

[Visitable (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.Visitable)

[VisitableType (class in sqlalchemy.sql.visitors)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.VisitableType)

[visitor\_iterator (sqlalchemy.sql.visitors.ClauseVisitor attribute)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.ClauseVisitor.visitor_iterator)

[visitors (sqlalchemy.sql.visitors.traverse parameter)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.visitors)

[(sqlalchemy.sql.visitors.traverse\_using parameter)](https://docs.sqlalchemy.org/en/13/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.visitors) | W - | | | | --- | --- | | [was\_already\_deleted() (sqlalchemy.orm.session.UOWTransaction method)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.session.UOWTransaction.was_already_deleted)

[was\_deleted (sqlalchemy.orm.state.InstanceState attribute)](https://docs.sqlalchemy.org/en/13/orm/internals.html#sqlalchemy.orm.state.InstanceState.was_deleted)

[was\_deleted() (in module sqlalchemy.orm.util)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.util.was_deleted)

[weak\_identity\_map (sqlalchemy.orm.session.Session parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.params.weak_identity_map)

[whens (sqlalchemy.sql.expression.case parameter)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.case.params.whens)

[where (sqlalchemy.dialects.postgresql.ExcludeConstraint parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ExcludeConstraint.params.where)

[(sqlalchemy.dialects.postgresql.Insert.on\_conflict\_do\_update parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.Insert.on_conflict_do_update.params.where)

[WHERE clause](https://docs.sqlalchemy.org/en/13/glossary.html#term-WHERE-clause)

[where() (sqlalchemy.sql.expression.Delete method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.Delete.where)

[(sqlalchemy.sql.expression.Exists method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Exists.where)

[(sqlalchemy.sql.expression.ScalarSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect.where)

[whereclause (sqlalchemy.orm.query.Query attribute)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.whereclause)

[(sqlalchemy.sql.expression.delete parameter)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.delete.params.whereclause)

[(sqlalchemy.sql.expression.Join.select parameter)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Join.select.params.whereclause)

[with\_criteria() (sqlalchemy.ext.baked.BakedQuery method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.BakedQuery.with_criteria)

[with\_entities() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_entities)

[with\_expression() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/loading_columns.html#sqlalchemy.orm.with_expression)

[(sqlalchemy.orm.strategy\_options.Load method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.strategy_options.Load.with_expression)

[with\_for\_update (sqlalchemy.orm.session.Session.refresh parameter)](https://docs.sqlalchemy.org/en/13/orm/session_api.html#sqlalchemy.orm.session.Session.refresh.params.with_for_update)

[with\_for\_update() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_for_update)

[(sqlalchemy.sql.expression.CompoundSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect.with_for_update)

[(sqlalchemy.sql.expression.GenerativeSelect method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect.with_for_update) | [with\_hint() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_hint)

[(sqlalchemy.sql.expression.UpdateBase method)](https://docs.sqlalchemy.org/en/13/core/dml.html#sqlalchemy.sql.expression.UpdateBase.with_hint)

[with\_labels (sqlalchemy.orm.query.Query.subquery parameter)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.subquery.params.with_labels)

[with\_labels() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_labels)

[with\_lockmode() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_lockmode)

[with\_only\_columns() (sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_only_columns)

[with\_parent() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.with_parent)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_parent)

[with\_polymorphic (sqlalchemy.orm.mapper parameter)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.mapper.params.with_polymorphic)

[with\_polymorphic() (in module sqlalchemy.orm)](https://docs.sqlalchemy.org/en/13/orm/inheritance_loading.html#sqlalchemy.orm.with_polymorphic)

[(sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_polymorphic)

[with\_polymorphic\_mappers (sqlalchemy.orm.Mapper attribute)](https://docs.sqlalchemy.org/en/13/orm/mapping_api.html#sqlalchemy.orm.Mapper.with_polymorphic_mappers)

[with\_post\_criteria() (sqlalchemy.ext.baked.Result method)](https://docs.sqlalchemy.org/en/13/orm/extensions/baked.html#sqlalchemy.ext.baked.Result.with_post_criteria)

[with\_session() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_session)

[with\_statement\_hint() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_statement_hint)

[(sqlalchemy.sql.expression.Select method)](https://docs.sqlalchemy.org/en/13/core/selectable.html#sqlalchemy.sql.expression.Select.with_statement_hint)

[with\_transformation() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.with_transformation)

[with\_variant() (sqlalchemy.types.TypeEngine method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant)

[(sqlalchemy.types.Variant method)](https://docs.sqlalchemy.org/en/13/core/type_api.html#sqlalchemy.types.Variant.with_variant)

[within\_group() (in module sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.within_group)

[(sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group)

[within\_group\_type() (sqlalchemy.sql.functions.FunctionElement method)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type)

[(sqlalchemy.sql.functions.OrderedSetAgg method)](https://docs.sqlalchemy.org/en/13/core/functions.html#sqlalchemy.sql.functions.OrderedSetAgg.within_group_type)

[WithinGroup (class in sqlalchemy.sql.expression)](https://docs.sqlalchemy.org/en/13/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup) | X - | | | | --- | --- | | [xid (sqlalchemy.engine.Connection.begin\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/connections.html#sqlalchemy.engine.Connection.begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_begin\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_begin_twophase.params.xid)

[(sqlalchemy.engine.default.DefaultDialect.do\_commit\_twophase parameter)](https://docs.sqlalchemy.org/en/13/core/internals.html#sqlalchemy.engine.default.DefaultDialect.do_commit_twophase.params.xid) | [XML (class in sqlalchemy.dialects.mssql)](https://docs.sqlalchemy.org/en/13/dialects/mssql.html#sqlalchemy.dialects.mssql.XML) | Y - | | | | --- | --- | | [YEAR (class in sqlalchemy.dialects.mysql)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.YEAR)

[yield\_per() (sqlalchemy.orm.query.Query method)](https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.yield_per) | | Z - | | | | --- | --- | | [zero\_indexes (sqlalchemy.dialects.postgresql.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.params.zero_indexes)

[(sqlalchemy.types.ARRAY attribute)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.zero_indexes)

[(sqlalchemy.types.ARRAY parameter)](https://docs.sqlalchemy.org/en/13/core/type_basics.html#sqlalchemy.types.ARRAY.params.zero_indexes)

[zerofill (sqlalchemy.dialects.mysql.BIGINT parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.BIGINT.params.zerofill)

[(sqlalchemy.dialects.mysql.DECIMAL parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DECIMAL.params.zerofill)

[(sqlalchemy.dialects.mysql.DOUBLE parameter)](https://docs.sqlalchemy.org/en/13/dialects/mysql.html#sqlalchemy.dialects.mysql.DOUBLE.params.zerofill) | | © [Copyright](https://docs.sqlalchemy.org/en/13/copyright.html) 2007-2021, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:13:56 AM EDT --- # Overview — SQLAlchemy 2.1 Documentation Release: 2.1.0b1 in development | Release Date: **not released yet** [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html) ============================================================================= ### [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html) in development [Home](https://docs.sqlalchemy.org/en/21/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/21/sqlalchemy_21.zip) Search terms: ### [SQLAlchemy 2.1 Documentation](https://docs.sqlalchemy.org/en/21/index.html "SQLAlchemy 2.1 Documentation") * **Overview**[¶](https://docs.sqlalchemy.org/en/21/intro.html#) * [Documentation Overview](https://docs.sqlalchemy.org/en/21/intro.html#documentation-overview) * [Code Examples](https://docs.sqlalchemy.org/en/21/intro.html#code-examples) * [Installation Guide](https://docs.sqlalchemy.org/en/21/intro.html#installation-guide) * [Supported Platforms](https://docs.sqlalchemy.org/en/21/intro.html#supported-platforms) * [Supported Installation Methods](https://docs.sqlalchemy.org/en/21/intro.html#supported-installation-methods) * [Install via pip](https://docs.sqlalchemy.org/en/21/intro.html#install-via-pip) * [Installing with AsyncIO Support](https://docs.sqlalchemy.org/en/21/intro.html#installing-with-asyncio-support) * [Installing manually from the source distribution](https://docs.sqlalchemy.org/en/21/intro.html#installing-manually-from-the-source-distribution) * [Building the Cython Extensions](https://docs.sqlalchemy.org/en/21/intro.html#building-the-cython-extensions) * [Installing a Database API](https://docs.sqlalchemy.org/en/21/intro.html#installing-a-database-api) * [Checking the Installed SQLAlchemy Version](https://docs.sqlalchemy.org/en/21/intro.html#checking-the-installed-sqlalchemy-version) * [Next Steps](https://docs.sqlalchemy.org/en/21/intro.html#next-steps) * [2.0 to 2.1 Migration](https://docs.sqlalchemy.org/en/21/intro.html#to-2-1-migration) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/21/orm/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/21/core/index.html) * [Dialects](https://docs.sqlalchemy.org/en/21/dialects/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/21/faq/index.html) * [Error Messages](https://docs.sqlalchemy.org/en/21/errors.html) * [Changes and Migration](https://docs.sqlalchemy.org/en/21/changelog/index.html) #### Project Versions * [2.1.0b1](https://docs.sqlalchemy.org/en/21/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/21/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/21/sqlalchemy_21.zip) * **Previous:** [Table of Contents](https://docs.sqlalchemy.org/en/21/contents.html "previous chapter") * **Next:** [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/21/index.html) * **On this page:** * [Overview](https://docs.sqlalchemy.org/en/21/intro.html#overview) * [Documentation Overview](https://docs.sqlalchemy.org/en/21/intro.html#documentation-overview) * [Code Examples](https://docs.sqlalchemy.org/en/21/intro.html#code-examples) * [Installation Guide](https://docs.sqlalchemy.org/en/21/intro.html#installation-guide) * [Supported Platforms](https://docs.sqlalchemy.org/en/21/intro.html#supported-platforms) * [Supported Installation Methods](https://docs.sqlalchemy.org/en/21/intro.html#supported-installation-methods) * [Install via pip](https://docs.sqlalchemy.org/en/21/intro.html#install-via-pip) * [Installing with AsyncIO Support](https://docs.sqlalchemy.org/en/21/intro.html#installing-with-asyncio-support) * [Installing manually from the source distribution](https://docs.sqlalchemy.org/en/21/intro.html#installing-manually-from-the-source-distribution) * [Building the Cython Extensions](https://docs.sqlalchemy.org/en/21/intro.html#building-the-cython-extensions) * [Installing a Database API](https://docs.sqlalchemy.org/en/21/intro.html#installing-a-database-api) * [Checking the Installed SQLAlchemy Version](https://docs.sqlalchemy.org/en/21/intro.html#checking-the-installed-sqlalchemy-version) * [Next Steps](https://docs.sqlalchemy.org/en/21/intro.html#next-steps) * [2.0 to 2.1 Migration](https://docs.sqlalchemy.org/en/21/intro.html#to-2-1-migration) Overview[¶](https://docs.sqlalchemy.org/en/21/intro.html#overview "Link to this heading") ========================================================================================== The SQLAlchemy SQL Toolkit and Object Relational Mapper is a comprehensive set of tools for working with databases and Python. It has several distinct areas of functionality which can be used individually or combined together. Its major components are illustrated below, with component dependencies organized into layers: ![_images/sqla_arch_small.png](https://docs.sqlalchemy.org/en/21/_images/sqla_arch_small.png) Above, the two most significant front-facing portions of SQLAlchemy are the **Object Relational Mapper (ORM)** and the **Core**. Core contains the breadth of SQLAlchemy’s SQL and database integration and description services, the most prominent part of this being the **SQL Expression Language**. The SQL Expression Language is a toolkit on its own, independent of the ORM package, which provides a system of constructing SQL expressions represented by composable objects, which can then be “executed” against a target database within the scope of a specific transaction, returning a result set. Inserts, updates and deletes (i.e. [DML](https://docs.sqlalchemy.org/en/21/glossary.html#term-DML) ) are achieved by passing SQL expression objects representing these statements along with dictionaries that represent parameters to be used with each statement. The ORM builds upon Core to provide a means of working with a domain object model mapped to a database schema. When using the ORM, SQL statements are constructed in mostly the same way as when using Core, however the task of DML, which here refers to the persistence of business objects in a database, is automated using a pattern called [unit of work](https://docs.sqlalchemy.org/en/21/glossary.html#term-unit-of-work) , which translates changes in state against mutable objects into INSERT, UPDATE and DELETE constructs which are then invoked in terms of those objects. SELECT statements are also augmented by ORM-specific automations and object-centric querying capabilities. Whereas working with Core and the SQL Expression language presents a schema-centric view of the database, along with a programming paradigm that is oriented around immutability, the ORM builds on top of this a domain-centric view of the database with a programming paradigm that is more explicitly object-oriented and reliant upon mutability. Since a relational database is itself a mutable service, the difference is that Core/SQL Expression language is command oriented whereas the ORM is state oriented. Documentation Overview[¶](https://docs.sqlalchemy.org/en/21/intro.html#documentation-overview "Link to this heading") ---------------------------------------------------------------------------------------------------------------------- The documentation is separated into four sections: * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html#unified-tutorial) - this all-new tutorial for the 1.4/2.0/2.1 series of SQLAlchemy introduces the entire library holistically, starting from a description of Core and working more and more towards ORM-specific concepts. New users, as well as users coming from the 1.x series of SQLAlchemy, should start here. * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/21/orm/index.html) - In this section, reference documentation for the ORM is presented. * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/21/core/index.html) - Here, reference documentation for everything else within Core is presented. SQLAlchemy engine, connection, and pooling services are also described here. * [Dialects](https://docs.sqlalchemy.org/en/21/dialects/index.html) - Provides reference documentation for all [dialect](https://docs.sqlalchemy.org/en/21/glossary.html#term-dialect) implementations, including [DBAPI](https://docs.sqlalchemy.org/en/21/glossary.html#term-DBAPI) specifics. Code Examples[¶](https://docs.sqlalchemy.org/en/21/intro.html#code-examples "Link to this heading") ---------------------------------------------------------------------------------------------------- Working code examples, mostly regarding the ORM, are included in the SQLAlchemy distribution. A description of all the included example applications is at [Core and ORM Examples](https://docs.sqlalchemy.org/en/21/orm/examples.html) . There is also a wide variety of examples involving both core SQLAlchemy constructs as well as the ORM on the wiki. See [Theatrum Chemicum](https://www.sqlalchemy.org/trac/wiki/UsageRecipes) . Installation Guide[¶](https://docs.sqlalchemy.org/en/21/intro.html#installation-guide "Link to this heading") -------------------------------------------------------------------------------------------------------------- ### Supported Platforms[¶](https://docs.sqlalchemy.org/en/21/intro.html#supported-platforms "Link to this heading") SQLAlchemy 2.1 supports the following platforms: * cPython 3.10 and higher * Python-3 compatible versions of [PyPy](http://pypy.org/) Changed in version 2.1: SQLAlchemy now targets Python 3.10 and above. ### Supported Installation Methods[¶](https://docs.sqlalchemy.org/en/21/intro.html#supported-installation-methods "Link to this heading") SQLAlchemy installation is via standard Python methodologies that are based on [setuptools](https://pypi.org/project/setuptools/) , either by referring to `setup.py` directly or by using [pip](https://pypi.org/project/pip/) or other setuptools-compatible approaches. ### Install via pip[¶](https://docs.sqlalchemy.org/en/21/intro.html#install-via-pip "Link to this heading") When `pip` is available, the distribution can be downloaded from PyPI and installed in one step: pip install sqlalchemy This command will download the latest **released** version of SQLAlchemy from the [Python Cheese Shop](https://pypi.org/project/SQLAlchemy) and install it to your system. For most common platforms, a Python Wheel file will be downloaded which provides native Cython / C extensions prebuilt. In order to install the latest **prerelease** version, such as `2.0.0b1`, pip requires that the `--pre` flag be used: pip install --pre sqlalchemy Where above, if the most recent version is a prerelease, it will be installed instead of the latest released version. ### Installing with AsyncIO Support[¶](https://docs.sqlalchemy.org/en/21/intro.html#installing-with-asyncio-support "Link to this heading") SQLAlchemy’s `asyncio` support depends upon the [greenlet](https://pypi.org/project/greenlet/) project. This dependency is not included by default. To install with asyncio support, run this command: pip install sqlalchemy\[asyncio\] This installation will include the greenlet dependency in the installation. See the section [Asyncio Platform Installation Notes](https://docs.sqlalchemy.org/en/21/orm/extensions/asyncio.html#asyncio-install) for additional details on ensuring asyncio support is present. Changed in version 2.1: SQLAlchemy no longer installs the “greenlet” dependency by default; use the `sqlalchemy[asyncio]` pip target to install. ### Installing manually from the source distribution[¶](https://docs.sqlalchemy.org/en/21/intro.html#installing-manually-from-the-source-distribution "Link to this heading") When not installing from pip, the source distribution may be installed using the `setup.py` script: python setup.py install The source install is platform agnostic and will install on any platform regardless of whether or not Cython / C build tools are installed. As the next section [Building the Cython Extensions](https://docs.sqlalchemy.org/en/21/intro.html#c-extensions) details, `setup.py` will attempt to build using Cython / C if possible but will fall back to a pure Python installation otherwise. ### Building the Cython Extensions[¶](https://docs.sqlalchemy.org/en/21/intro.html#building-the-cython-extensions "Link to this heading") SQLAlchemy includes [Cython](https://cython.org/) extensions which provide an extra speed boost within various areas, with a current emphasis on the speed of Core result sets. Changed in version 2.0: The SQLAlchemy C extensions have been rewritten using Cython. `setup.py` will automatically build the extensions if an appropriate platform is detected, assuming the Cython package is installed. A complete manual build looks like: \# cd into SQLAlchemy source distribution cd path/to/sqlalchemy # install cython pip install cython # optionally build Cython extensions ahead of install python setup.py build\_ext # run the install python setup.py install Source builds may also be performed using [**PEP 517**](https://peps.python.org/pep-0517/) techniques, such as using [build](https://pypi.org/project/build/) : \# cd into SQLAlchemy source distribution cd path/to/sqlalchemy # install build pip install build # build source / wheel dists python -m build If the build of the Cython extensions fails due to Cython not being installed, a missing compiler or other issue, the setup process will output a warning message and re-run the build without the Cython extensions upon completion, reporting final status. To run the build/install without even attempting to compile the Cython extensions, the `DISABLE_SQLALCHEMY_CEXT` environment variable may be specified. The use case for this is either for special testing circumstances, or in the rare case of compatibility/build issues not overcome by the usual “rebuild” mechanism: export DISABLE\_SQLALCHEMY\_CEXT=1; python setup.py install ### Installing a Database API[¶](https://docs.sqlalchemy.org/en/21/intro.html#installing-a-database-api "Link to this heading") SQLAlchemy is designed to operate with a [DBAPI](https://docs.sqlalchemy.org/en/21/glossary.html#term-DBAPI) implementation built for a particular database, and includes support for the most popular databases. The individual database sections in [Dialects](https://docs.sqlalchemy.org/en/21/dialects/index.html) enumerate the available DBAPIs for each database, including external links. ### Checking the Installed SQLAlchemy Version[¶](https://docs.sqlalchemy.org/en/21/intro.html#checking-the-installed-sqlalchemy-version "Link to this heading") This documentation covers SQLAlchemy version 2.1. If you’re working on a system that already has SQLAlchemy installed, check the version from your Python prompt like this: \>>> import sqlalchemy \>>> sqlalchemy.\_\_version\_\_ 2.1.0 ### Next Steps[¶](https://docs.sqlalchemy.org/en/21/intro.html#next-steps "Link to this heading") With SQLAlchemy installed, new and old users alike can [Proceed to the SQLAlchemy Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html#unified-tutorial) . 2.0 to 2.1 Migration[¶](https://docs.sqlalchemy.org/en/21/intro.html#to-2-1-migration "Link to this heading") -------------------------------------------------------------------------------------------------------------- Users coming SQLAlchemy version 2.0 will want to read: * [What’s New in SQLAlchemy 2.1?](https://docs.sqlalchemy.org/en/21/changelog/migration_21.html) - New features and behaviors in version 2.1 Users transitioning from 1.x versions of SQLAlchemy, such as version 1.4, will want to transition to version 2.0 overall before making any additional changes needed for the much smaller transition from 2.0 to 2.1. Key documentation for the 1.x to 2.x transition: * [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/21/changelog/migration_20.html) - Complete background on migrating from 1.3 or 1.4 to 2.0 * [What’s New in SQLAlchemy 2.0?](https://docs.sqlalchemy.org/en/21/changelog/whatsnew_20.html) - New 2.0 features and behaviors beyond the 1.x migration An index of all changelogs and migration documentation is at: * [Changelog catalog](https://docs.sqlalchemy.org/en/21/changelog/index.html) - Detailed changelogs for all SQLAlchemy Versions Previous: [Table of Contents](https://docs.sqlalchemy.org/en/21/contents.html "previous chapter") Next: [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/21/tutorial/index.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/21/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:01:18 PM EST --- # SQL Statements and Expressions API — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "SQLAlchemy Core") * **SQL Statements and Expressions API**[¶](https://docs.sqlalchemy.org/en/20/core/expression_api.html#) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/20/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/20/core/operators.html) * [SELECT and Related Constructs](https://docs.sqlalchemy.org/en/20/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/20/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/20/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/20/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/20/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/20/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/20/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/20/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/20/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/20/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/20/core/api_basics.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "previous chapter") * **Next:** [Column Elements and Expressions](https://docs.sqlalchemy.org/en/20/core/sqlelement.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "SQLAlchemy Core") * **On this page:** * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/20/core/expression_api.html#module-sqlalchemy.sql.expression) SQL Statements and Expressions API[¶](https://docs.sqlalchemy.org/en/20/core/expression_api.html#module-sqlalchemy.sql.expression "Link to this heading") ========================================================================================================================================================== This section presents the API reference for the SQL Expression Language. For an introduction, start with [Working with Data](https://docs.sqlalchemy.org/en/20/tutorial/data.html#tutorial-working-with-data) in the [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html#unified-tutorial) . * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/20/core/sqlelement.html) * [Column Element Foundational Constructors](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#column-element-foundational-constructors) * [`and_()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.and_) * [`bindparam()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bindparam) * [`bitwise_not()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.bitwise_not) * [`case()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.case) * [`cast()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.cast) * [`column()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.column) * [`custom_op`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.custom_op) * [`distinct()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.distinct) * [`extract()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.extract) * [`false()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.false) * [`func`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.func) * [`lambda_stmt()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt) * [`literal()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.literal) * [`literal_column()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.literal_column) * [`not_()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.not_) * [`null()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.null) * [`or_()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.or_) * [`outparam()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.outparam) * [`text()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text) * [`true()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.true) * [`try_cast()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.try_cast) * [`tuple_()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.tuple_) * [`type_coerce()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.type_coerce) * [`quoted_name`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.quoted_name) * [Column Element Modifier Constructors](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#column-element-modifier-constructors) * [`all_()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.all_) * [`any_()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.any_) * [`asc()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.asc) * [`between()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.between) * [`collate()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.collate) * [`desc()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.desc) * [`funcfilter()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.funcfilter) * [`label()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.label) * [`nulls_first()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nulls_first) * [`nullsfirst()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nullsfirst) * [`nulls_last()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nulls_last) * [`nullslast()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.nullslast) * [`over()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.over) * [`within_group()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.within_group) * [Column Element Class Documentation](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#column-element-class-documentation) * [`BinaryExpression`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression) * [`BindParameter`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter) * [`Case`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Case) * [`Cast`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Cast) * [`ClauseList`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ClauseList) * [`ColumnClause`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnClause) * [`ColumnCollection`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnCollection) * [`ColumnElement`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement) * [`ColumnExpressionArgument`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnExpressionArgument) * [`ColumnOperators`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators) * [`Extract`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Extract) * [`False_`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.False_) * [`FunctionFilter`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter) * [`Label`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Label) * [`Null`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Null) * [`Operators`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Operators) * [`Over`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Over) * [`SQLColumnExpression`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.SQLColumnExpression) * [`TextClause`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TextClause) * [`TryCast`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TryCast) * [`Tuple`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.Tuple) * [`WithinGroup`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup) * [`WrapsColumnExpression`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.elements.WrapsColumnExpression) * [`True_`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.True_) * [`TypeCoerce`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.TypeCoerce) * [`UnaryExpression`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.UnaryExpression) * [Column Element Typing Utilities](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#column-element-typing-utilities) * [`NotNullable()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.NotNullable) * [`Nullable()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.Nullable) * [Operator Reference](https://docs.sqlalchemy.org/en/20/core/operators.html) * [Comparison Operators](https://docs.sqlalchemy.org/en/20/core/operators.html#comparison-operators) * [IN Comparisons](https://docs.sqlalchemy.org/en/20/core/operators.html#in-comparisons) * [IN against a list of values](https://docs.sqlalchemy.org/en/20/core/operators.html#in-against-a-list-of-values) * [Empty IN Expressions](https://docs.sqlalchemy.org/en/20/core/operators.html#empty-in-expressions) * [NOT IN](https://docs.sqlalchemy.org/en/20/core/operators.html#not-in) * [Tuple IN Expressions](https://docs.sqlalchemy.org/en/20/core/operators.html#tuple-in-expressions) * [Subquery IN](https://docs.sqlalchemy.org/en/20/core/operators.html#subquery-in) * [Identity Comparisons](https://docs.sqlalchemy.org/en/20/core/operators.html#identity-comparisons) * [String Comparisons](https://docs.sqlalchemy.org/en/20/core/operators.html#string-comparisons) * [String Containment](https://docs.sqlalchemy.org/en/20/core/operators.html#string-containment) * [String matching](https://docs.sqlalchemy.org/en/20/core/operators.html#string-matching) * [String Alteration](https://docs.sqlalchemy.org/en/20/core/operators.html#string-alteration) * [Arithmetic Operators](https://docs.sqlalchemy.org/en/20/core/operators.html#arithmetic-operators) * [Bitwise Operators](https://docs.sqlalchemy.org/en/20/core/operators.html#bitwise-operators) * [Using Conjunctions and Negations](https://docs.sqlalchemy.org/en/20/core/operators.html#using-conjunctions-and-negations) * [Conjunction Operators](https://docs.sqlalchemy.org/en/20/core/operators.html#conjunction-operators) * [Parentheses and Grouping](https://docs.sqlalchemy.org/en/20/core/operators.html#parentheses-and-grouping) * [SELECT and Related Constructs](https://docs.sqlalchemy.org/en/20/core/selectable.html) * [Selectable Foundational Constructors](https://docs.sqlalchemy.org/en/20/core/selectable.html#selectable-foundational-constructors) * [`except_()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.except_) * [`except_all()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.except_all) * [`exists()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.exists) * [`intersect()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.intersect) * [`intersect_all()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.intersect_all) * [`select()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.select) * [`table()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.table) * [`union()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.union) * [`union_all()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.union_all) * [`values()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.values) * [Selectable Modifier Constructors](https://docs.sqlalchemy.org/en/20/core/selectable.html#selectable-modifier-constructors) * [`alias()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.alias) * [`cte()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.cte) * [`join()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.join) * [`lateral()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.lateral) * [`outerjoin()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.outerjoin) * [`tablesample()`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.tablesample) * [Selectable Class Documentation](https://docs.sqlalchemy.org/en/20/core/selectable.html#selectable-class-documentation) * [`Alias`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Alias) * [`AliasedReturnsRows`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.AliasedReturnsRows) * [`CompoundSelect`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CompoundSelect) * [`CTE`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.CTE) * [`Executable`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Executable) * [`Exists`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Exists) * [`FromClause`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.FromClause) * [`GenerativeSelect`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.GenerativeSelect) * [`HasCTE`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasCTE) * [`HasPrefixes`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes) * [`HasSuffixes`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes) * [`Join`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Join) * [`Lateral`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Lateral) * [`ReturnsRows`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ReturnsRows) * [`ScalarSelect`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarSelect) * [`Select`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Select) * [`Selectable`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Selectable) * [`SelectBase`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectBase) * [`Subquery`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Subquery) * [`TableClause`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableClause) * [`TableSample`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableSample) * [`TableValuedAlias`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias) * [`TextualSelect`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.TextualSelect) * [`Values`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.Values) * [`ScalarValues`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.ScalarValues) * [Label Style Constants](https://docs.sqlalchemy.org/en/20/core/selectable.html#label-style-constants) * [`SelectLabelStyle`](https://docs.sqlalchemy.org/en/20/core/selectable.html#sqlalchemy.sql.expression.SelectLabelStyle) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/20/core/dml.html) * [DML Foundational Constructors](https://docs.sqlalchemy.org/en/20/core/dml.html#dml-foundational-constructors) * [`delete()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.delete) * [`insert()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.insert) * [`update()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.update) * [DML Class Documentation Constructors](https://docs.sqlalchemy.org/en/20/core/dml.html#dml-class-documentation-constructors) * [`Delete`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Delete) * [`Insert`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert) * [`Update`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Update) * [`UpdateBase`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.UpdateBase) * [`ValuesBase`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.ValuesBase) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/20/core/functions.html) * [Function API](https://docs.sqlalchemy.org/en/20/core/functions.html#function-api) * [`AnsiFunction`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.AnsiFunction) * [`Function`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.Function) * [`FunctionElement`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.FunctionElement) * [`GenericFunction`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.GenericFunction) * [`register_function()`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.register_function) * [Selected “Known” Functions](https://docs.sqlalchemy.org/en/20/core/functions.html#selected-known-functions) * [`aggregate_strings`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.aggregate_strings) * [`array_agg`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.array_agg) * [`char_length`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.char_length) * [`coalesce`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.coalesce) * [`concat`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.concat) * [`count`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.count) * [`cube`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.cube) * [`cume_dist`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.cume_dist) * [`current_date`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_date) * [`current_time`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_time) * [`current_timestamp`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_timestamp) * [`current_user`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.current_user) * [`dense_rank`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.dense_rank) * [`grouping_sets`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.grouping_sets) * [`localtime`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.localtime) * [`localtimestamp`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.localtimestamp) * [`max`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.max) * [`min`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.min) * [`mode`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.mode) * [`next_value`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.next_value) * [`now`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.now) * [`percent_rank`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.percent_rank) * [`percentile_cont`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.percentile_cont) * [`percentile_disc`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.percentile_disc) * [`random`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.random) * [`rank`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.rank) * [`rollup`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.rollup) * [`session_user`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.session_user) * [`sum`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.sum) * [`sysdate`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.sysdate) * [`user`](https://docs.sqlalchemy.org/en/20/core/functions.html#sqlalchemy.sql.functions.user) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/20/core/compiler.html) * [Synopsis](https://docs.sqlalchemy.org/en/20/core/compiler.html#synopsis) * [Dialect-specific compilation rules](https://docs.sqlalchemy.org/en/20/core/compiler.html#dialect-specific-compilation-rules) * [Compiling sub-elements of a custom expression construct](https://docs.sqlalchemy.org/en/20/core/compiler.html#compiling-sub-elements-of-a-custom-expression-construct) * [Cross Compiling between SQL and DDL compilers](https://docs.sqlalchemy.org/en/20/core/compiler.html#cross-compiling-between-sql-and-ddl-compilers) * [Changing the default compilation of existing constructs](https://docs.sqlalchemy.org/en/20/core/compiler.html#changing-the-default-compilation-of-existing-constructs) * [Changing Compilation of Types](https://docs.sqlalchemy.org/en/20/core/compiler.html#changing-compilation-of-types) * [Subclassing Guidelines](https://docs.sqlalchemy.org/en/20/core/compiler.html#subclassing-guidelines) * [Enabling Caching Support for Custom Constructs](https://docs.sqlalchemy.org/en/20/core/compiler.html#enabling-caching-support-for-custom-constructs) * [Further Examples](https://docs.sqlalchemy.org/en/20/core/compiler.html#further-examples) * [“UTC timestamp” function](https://docs.sqlalchemy.org/en/20/core/compiler.html#utc-timestamp-function) * [“GREATEST” function](https://docs.sqlalchemy.org/en/20/core/compiler.html#greatest-function) * [“false” expression](https://docs.sqlalchemy.org/en/20/core/compiler.html#false-expression) * [`compiles()`](https://docs.sqlalchemy.org/en/20/core/compiler.html#sqlalchemy.ext.compiler.compiles) * [`deregister()`](https://docs.sqlalchemy.org/en/20/core/compiler.html#sqlalchemy.ext.compiler.deregister) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/20/core/serializer.html) * [`Deserializer`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Deserializer) * [`Deserializer.get_engine()`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine) * [`Deserializer.persistent_load()`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load) * [`Serializer`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Serializer) * [`Serializer.persistent_id()`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id) * [`dumps()`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.dumps) * [`loads()`](https://docs.sqlalchemy.org/en/20/core/serializer.html#sqlalchemy.ext.serializer.loads) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/20/core/foundation.html) * [`CacheKey`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey) * [`CacheKey.bindparams`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey.bindparams) * [`CacheKey.key`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey.key) * [`CacheKey.to_offline_string()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string) * [`ClauseElement`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) * [`ClauseElement.compare()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare) * [`ClauseElement.compile()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile) * [`ClauseElement.get_children()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children) * [`ClauseElement.inherit_cache`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.inherit_cache) * [`ClauseElement.params()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.params) * [`ClauseElement.self_group()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group) * [`ClauseElement.unique_params()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params) * [`DialectKWArgs`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) * [`DialectKWArgs.argument_for()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for) * [`DialectKWArgs.dialect_kwargs`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs) * [`DialectKWArgs.dialect_options`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options) * [`DialectKWArgs.kwargs`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.kwargs) * [`HasCacheKey`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey) * [`HasCacheKey.inherit_cache`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache) * [`LambdaElement`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.LambdaElement) * [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement) * [`StatementLambdaElement.add_criteria()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria) * [`StatementLambdaElement.is_delete`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_delete) * [`StatementLambdaElement.is_dml`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_dml) * [`StatementLambdaElement.is_insert`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_insert) * [`StatementLambdaElement.is_select`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_select) * [`StatementLambdaElement.is_text`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_text) * [`StatementLambdaElement.is_update`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.is_update) * [`StatementLambdaElement.spoil()`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/20/core/visitors.html) * [`ExternalTraversal`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) * [`ExternalTraversal.chain()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain) * [`ExternalTraversal.iterate()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate) * [`ExternalTraversal.traverse()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse) * [`ExternalTraversal.visitor_iterator`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator) * [`InternalTraversal`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) * [`InternalTraversal.dp_annotations_key`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key) * [`InternalTraversal.dp_anon_name`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name) * [`InternalTraversal.dp_boolean`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean) * [`InternalTraversal.dp_clauseelement`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement) * [`InternalTraversal.dp_clauseelement_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list) * [`InternalTraversal.dp_clauseelement_tuple`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple) * [`InternalTraversal.dp_clauseelement_tuples`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples) * [`InternalTraversal.dp_dialect_options`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options) * [`InternalTraversal.dp_dml_multi_values`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values) * [`InternalTraversal.dp_dml_ordered_values`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values) * [`InternalTraversal.dp_dml_values`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values) * [`InternalTraversal.dp_fromclause_canonical_column_collection`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection) * [`InternalTraversal.dp_fromclause_ordered_set`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set) * [`InternalTraversal.dp_has_cache_key`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key) * [`InternalTraversal.dp_has_cache_key_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list) * [`InternalTraversal.dp_has_cache_key_tuples`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_tuples) * [`InternalTraversal.dp_ignore`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_ignore) * [`InternalTraversal.dp_inspectable`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable) * [`InternalTraversal.dp_inspectable_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable_list) * [`InternalTraversal.dp_multi`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_multi) * [`InternalTraversal.dp_multi_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_multi_list) * [`InternalTraversal.dp_named_ddl_element`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element) * [`InternalTraversal.dp_operator`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator) * [`InternalTraversal.dp_plain_dict`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict) * [`InternalTraversal.dp_plain_obj`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj) * [`InternalTraversal.dp_prefix_sequence`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence) * [`InternalTraversal.dp_propagate_attrs`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs) * [`InternalTraversal.dp_statement_hint_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list) * [`InternalTraversal.dp_string`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string) * [`InternalTraversal.dp_string_clauseelement_dict`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict) * [`InternalTraversal.dp_string_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list) * [`InternalTraversal.dp_string_multi_dict`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict) * [`InternalTraversal.dp_table_hint_list`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list) * [`InternalTraversal.dp_type`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type) * [`InternalTraversal.dp_unknown_structure`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure) * [`Visitable`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.Visitable) * [`anon_map`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.anon_map) * [`cloned_traverse()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse) * [`iterate()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.iterate) * [`replacement_traverse()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse) * [`traverse()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse) * [`traverse_using()`](https://docs.sqlalchemy.org/en/20/core/visitors.html#sqlalchemy.sql.visitors.traverse_using) Previous: [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "previous chapter") Next: [Column Elements and Expressions](https://docs.sqlalchemy.org/en/20/core/sqlelement.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Working with Transactions and the DBAPI — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "SQLAlchemy Unified Tutorial") * [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/20/tutorial/engine.html) * **Working with Transactions and the DBAPI**[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#) * [Getting a Connection](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#getting-a-connection) * [Committing Changes](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#committing-changes) * [Basics of Statement Execution](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#basics-of-statement-execution) * [Fetching Rows](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#fetching-rows) * [Sending Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#sending-parameters) * [Sending Multiple Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#sending-multiple-parameters) * [Executing with an ORM Session](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#executing-with-an-orm-session) * [Working with Database Metadata](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html) * [Working with Data](https://docs.sqlalchemy.org/en/20/tutorial/data.html) * [Data Manipulation with the ORM](https://docs.sqlalchemy.org/en/20/tutorial/orm_data_manipulation.html) * [Working with ORM Related Objects](https://docs.sqlalchemy.org/en/20/tutorial/orm_related_objects.html) * [Further Reading](https://docs.sqlalchemy.org/en/20/tutorial/further_reading.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/20/tutorial/engine.html "previous chapter") * **Next:** [Working with Database Metadata](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy Unified Tutorial](https://docs.sqlalchemy.org/en/20/tutorial/index.html "SQLAlchemy Unified Tutorial") * **On this page:** * [Working with Transactions and the DBAPI](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#working-with-transactions-and-the-dbapi) * [Getting a Connection](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#getting-a-connection) * [Committing Changes](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#committing-changes) * [Basics of Statement Execution](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#basics-of-statement-execution) * [Fetching Rows](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#fetching-rows) * [Sending Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#sending-parameters) * [Sending Multiple Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#sending-multiple-parameters) * [Executing with an ORM Session](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#executing-with-an-orm-session) Working with Transactions and the DBAPI[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#working-with-transactions-and-the-dbapi "Link to this heading") ============================================================================================================================================================================== With the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") object ready to go, we can dive into the basic operation of an [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") and its primary endpoints, the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") and [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") . We’ll also introduce the ORM’s [facade](https://docs.sqlalchemy.org/en/20/glossary.html#term-facade) for these objects, known as the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . **Note to ORM readers** When using the ORM, the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") is managed by the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") in modern SQLAlchemy emphasizes a transactional and SQL execution pattern that is largely identical to that of the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") discussed below, so while this subsection is Core-centric, all of the concepts here are relevant to ORM use as well and is recommended for all ORM learners. The execution pattern used by the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") will be compared to the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") at the end of this section. As we have yet to introduce the SQLAlchemy Expression Language that is the primary feature of SQLAlchemy, we’ll use a simple construct within this package called the [`text()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") construct, to write SQL statements as **textual SQL**. Rest assured that textual SQL is the exception rather than the rule in day-to-day SQLAlchemy use, but it’s always available. Getting a Connection[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#getting-a-connection "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------- The purpose of the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") is to connect to the database by providing a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object. When working with the Core directly, the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object is how all interaction with the database is done. Because the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") creates an open resource against the database, we want to limit our use of this object to a specific context. The best way to do that is with a Python context manager, also known as [the with statement](https://docs.python.org/3/reference/compound_stmts.html#with) . Below we use a textual SQL statement to show “Hello World”. Textual SQL is created with a construct called [`text()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") which we’ll discuss in more detail later: \>>> from sqlalchemy import text \>>> with engine.connect() as conn: ... result = conn.execute(text("select 'hello world'")) ... print(result.all()) BEGIN (implicit) select 'hello world' \[...\] () \[('hello world',)\] ROLLBACK In the example above, the context manager creates a database connection and executes the operation in a transaction. The default behavior of the Python DBAPI is that a transaction is always in progress; when the connection is [released](https://docs.sqlalchemy.org/en/20/glossary.html#term-released) , a ROLLBACK is emitted to end the transaction. The transaction is **not committed automatically**; if we want to commit data we need to call [`Connection.commit()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit "sqlalchemy.engine.Connection.commit") as we’ll see in the next section. Tip “autocommit” mode is available for special cases. The section [Setting Transaction Isolation Levels including DBAPI Autocommit](https://docs.sqlalchemy.org/en/20/core/connections.html#dbapi-autocommit) discusses this. The result of our SELECT was returned in an object called [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") that will be discussed later. For the moment we’ll add that it’s best to use this object within the “connect” block, and to not use it outside of the scope of our connection. Committing Changes[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#committing-changes "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------ We just learned that the DBAPI connection doesn’t commit automatically. What if we want to commit some data? We can change our example above to create a table, insert some data and then commit the transaction using the [`Connection.commit()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit "sqlalchemy.engine.Connection.commit") method, **inside** the block where we have the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object: \# "commit as you go" \>>> with engine.connect() as conn: ... conn.execute(text("CREATE TABLE some\_table (x int, y int)")) ... conn.execute( ... text("INSERT INTO some\_table (x, y) VALUES (:x, :y)"), ... \[{"x": 1, "y": 1}, {"x": 2, "y": 4}\], ... ) ... conn.commit() BEGIN (implicit) CREATE TABLE some\_table (x int, y int) \[...\] () INSERT INTO some\_table (x, y) VALUES (?, ?) \[...\] \[(1, 1), (2, 4)\] COMMIT Above, we execute two SQL statements, a “CREATE TABLE” statement [\[1\]](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#id2) and an “INSERT” statement that’s parameterized (we discuss the parameterization syntax later in [Sending Multiple Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#tutorial-multiple-parameters) ). To commit the work we’ve done in our block, we call the [`Connection.commit()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit "sqlalchemy.engine.Connection.commit") method which commits the transaction. After this, we can continue to run more SQL statements and call [`Connection.commit()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.commit "sqlalchemy.engine.Connection.commit") again for those statements. SQLAlchemy refers to this style as **commit as you go**. There’s also another style to commit data. We can declare our “connect” block to be a transaction block up front. To do this, we use the [`Engine.begin()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.begin "sqlalchemy.engine.Engine.begin") method to get the connection, rather than the [`Engine.connect()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine.connect "sqlalchemy.engine.Engine.connect") method. This method will manage the scope of the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") and also enclose everything inside of a transaction with either a COMMIT at the end if the block was successful, or a ROLLBACK if an exception was raised. This style is known as **begin once**: \# "begin once" \>>> with engine.begin() as conn: ... conn.execute( ... text("INSERT INTO some\_table (x, y) VALUES (:x, :y)"), ... \[{"x": 6, "y": 8}, {"x": 9, "y": 10}\], ... ) BEGIN (implicit) INSERT INTO some\_table (x, y) VALUES (?, ?) \[...\] \[(6, 8), (9, 10)\] COMMIT You should mostly prefer the “begin once” style because it’s shorter and shows the intention of the entire block up front. However, in this tutorial we’ll use “commit as you go” style as it’s more flexible for demonstration purposes. Basics of Statement Execution[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#basics-of-statement-execution "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------- We have seen a few examples that run SQL statements against a database, making use of a method called [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") , in conjunction with an object called [`text()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") , and returning an object called [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") . In this section we’ll illustrate more closely the mechanics and interactions of these components. Most of the content in this section applies equally well to modern ORM use when using the [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method, which works very similarly to that of [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") , including that ORM result rows are delivered using the same [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") interface used by Core. ### Fetching Rows[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#fetching-rows "Link to this heading") We’ll first illustrate the [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object more closely by making use of the rows we’ve inserted previously, running a textual SELECT statement on the table we’ve created: \>>> with engine.connect() as conn: ... result = conn.execute(text("SELECT x, y FROM some\_table")) ... for row in result: ... print(f"x: {row.x} y: {row.y}") BEGIN (implicit) SELECT x, y FROM some\_table \[...\] () x: 1 y: 1 x: 2 y: 4 x: 6 y: 8 x: 9 y: 10 ROLLBACK Above, the “SELECT” string we executed selected all rows from our table. The object returned is called [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") and represents an iterable object of result rows. [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") has lots of methods for fetching and transforming rows, such as the [`Result.all()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.all "sqlalchemy.engine.Result.all") method illustrated previously, which returns a list of all [`Row`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row "sqlalchemy.engine.Row") objects. It also implements the Python iterator interface so that we can iterate over the collection of [`Row`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row "sqlalchemy.engine.Row") objects directly. The [`Row`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row "sqlalchemy.engine.Row") objects themselves are intended to act like Python [named tuples](https://docs.python.org/3/library/collections.html#collections.namedtuple) . Below we illustrate a variety of ways to access rows. * **Tuple Assignment** - This is the most Python-idiomatic style, which is to assign variables to each row positionally as they are received: result \= conn.execute(text("select x, y from some\_table")) for x, y in result: ... * **Integer Index** - Tuples are Python sequences, so regular integer access is available too: result \= conn.execute(text("select x, y from some\_table")) for row in result: x \= row\[0\] * **Attribute Name** - As these are Python named tuples, the tuples have dynamic attribute names matching the names of each column. These names are normally the names that the SQL statement assigns to the columns in each row. While they are usually fairly predictable and can also be controlled by labels, in less defined cases they may be subject to database-specific behaviors: result \= conn.execute(text("select x, y from some\_table")) for row in result: y \= row.y \# illustrate use with Python f-strings print(f"Row: {row.x} {y}") * **Mapping Access** - To receive rows as Python **mapping** objects, which is essentially a read-only version of Python’s interface to the common `dict` object, the [`Result`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") may be **transformed** into a [`MappingResult`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.MappingResult "sqlalchemy.engine.MappingResult") object using the [`Result.mappings()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Result.mappings "sqlalchemy.engine.Result.mappings") modifier; this is a result object that yields dictionary-like [`RowMapping`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.RowMapping "sqlalchemy.engine.RowMapping") objects rather than [`Row`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Row "sqlalchemy.engine.Row") objects: result \= conn.execute(text("select x, y from some\_table")) for dict\_row in result.mappings(): x \= dict\_row\["x"\] y \= dict\_row\["y"\] ### Sending Parameters[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#sending-parameters "Link to this heading") SQL statements are usually accompanied by data that is to be passed with the statement itself, as we saw in the INSERT example previously. The [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") method therefore also accepts parameters, which are known as [bound parameters](https://docs.sqlalchemy.org/en/20/glossary.html#term-bound-parameters) . A rudimentary example might be if we wanted to limit our SELECT statement only to rows that meet a certain criteria, such as rows where the “y” value were greater than a certain value that is passed in to a function. In order to achieve this such that the SQL statement can remain fixed and that the driver can properly sanitize the value, we add a WHERE criteria to our statement that names a new parameter called “y”; the [`text()`](https://docs.sqlalchemy.org/en/20/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") construct accepts these using a colon format “`:y`”. The actual value for “`:y`” is then passed as the second argument to [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") in the form of a dictionary: \>>> with engine.connect() as conn: ... result = conn.execute(text("SELECT x, y FROM some\_table WHERE y > :y"), {"y": 2}) ... for row in result: ... print(f"x: {row.x} y: {row.y}") BEGIN (implicit) SELECT x, y FROM some\_table WHERE y \> ? \[...\] (2,) x: 2 y: 4 x: 6 y: 8 x: 9 y: 10 ROLLBACK In the logged SQL output, we can see that the bound parameter `:y` was converted into a question mark when it was sent to the SQLite database. This is because the SQLite database driver uses a format called “qmark parameter style”, which is one of six different formats allowed by the DBAPI specification. SQLAlchemy abstracts these formats into just one, which is the “named” format using a colon. ### Sending Multiple Parameters[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#sending-multiple-parameters "Link to this heading") In the example at [Committing Changes](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#tutorial-committing-data) , we executed an INSERT statement where it appeared that we were able to INSERT multiple rows into the database at once. For [DML](https://docs.sqlalchemy.org/en/20/glossary.html#term-DML) statements such as “INSERT”, “UPDATE” and “DELETE”, we can send **multiple parameter sets** to the [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") method by passing a list of dictionaries instead of a single dictionary, which indicates that the single SQL statement should be invoked multiple times, once for each parameter set. This style of execution is known as [executemany](https://docs.sqlalchemy.org/en/20/glossary.html#term-executemany) : \>>> with engine.connect() as conn: ... conn.execute( ... text("INSERT INTO some\_table (x, y) VALUES (:x, :y)"), ... \[{"x": 11, "y": 12}, {"x": 13, "y": 14}\], ... ) ... conn.commit() BEGIN (implicit) INSERT INTO some\_table (x, y) VALUES (?, ?) \[...\] \[(11, 12), (13, 14)\] COMMIT The above operation is equivalent to running the given INSERT statement once for each parameter set, except that the operation will be optimized for better performance across many rows. A key behavioral difference between “execute” and “executemany” is that the latter doesn’t support returning of result rows, even if the statement includes the RETURNING clause. The one exception to this is when using a Core [`insert()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.insert "sqlalchemy.sql.expression.insert") construct, introduced later in this tutorial at [Using INSERT Statements](https://docs.sqlalchemy.org/en/20/tutorial/data_insert.html#tutorial-core-insert) , which also indicates RETURNING using the [`Insert.returning()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.returning "sqlalchemy.sql.expression.Insert.returning") method. In that case, SQLAlchemy makes use of special logic to reorganize the INSERT statement so that it can be invoked for many rows while still supporting RETURNING. See also [executemany](https://docs.sqlalchemy.org/en/20/glossary.html#term-executemany) - in the [Glossary](https://docs.sqlalchemy.org/en/20/glossary.html) , describes the DBAPI-level [cursor.executemany()](https://peps.python.org/pep-0249/#executemany) method that’s used for most “executemany” executions. [“Insert Many Values” Behavior for INSERT statements](https://docs.sqlalchemy.org/en/20/core/connections.html#engine-insertmanyvalues) - in [Working with Engines and Connections](https://docs.sqlalchemy.org/en/20/core/connections.html) , describes the specialized logic used by [`Insert.returning()`](https://docs.sqlalchemy.org/en/20/core/dml.html#sqlalchemy.sql.expression.Insert.returning "sqlalchemy.sql.expression.Insert.returning") to deliver result sets with “executemany” executions. Executing with an ORM Session[¶](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#executing-with-an-orm-session "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------- As mentioned previously, most of the patterns and examples above apply to use with the ORM as well, so here we will introduce this usage so that as the tutorial proceeds, we will be able to illustrate each pattern in terms of Core and ORM use together. The fundamental transactional / database interactive object when using the ORM is called the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . In modern SQLAlchemy, this object is used in a manner very similar to that of the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , and in fact as the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is used, it refers to a [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") internally which it uses to emit SQL. When the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is used with non-ORM constructs, it passes through the SQL statements we give it and does not generally do things much differently from how the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") does directly, so we can illustrate it here in terms of the simple textual SQL operations we’ve already learned. The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") has a few different creational patterns, but here we will illustrate the most basic one that tracks exactly with how the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") is used which is to construct it within a context manager: \>>> from sqlalchemy.orm import Session \>>> stmt \= text("SELECT x, y FROM some\_table WHERE y > :y ORDER BY x, y") \>>> with Session(engine) as session: ... result = session.execute(stmt, {"y": 6}) ... for row in result: ... print(f"x: {row.x} y: {row.y}") BEGIN (implicit) SELECT x, y FROM some\_table WHERE y \> ? ORDER BY x, y \[...\] (6,) x: 6 y: 8 x: 9 y: 10 x: 11 y: 12 x: 13 y: 14 ROLLBACK The example above can be compared to the example in the preceding section in [Sending Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#tutorial-sending-parameters) - we directly replace the call to `with engine.connect() as conn` with `with Session(engine) as session`, and then make use of the [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method just like we do with the [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") method. Also, like the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") features “commit as you go” behavior using the [`Session.commit()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") method, illustrated below using a textual UPDATE statement to alter some of our data: \>>> with Session(engine) as session: ... result = session.execute( ... text("UPDATE some\_table SET y=:y WHERE x=:x"), ... \[{"x": 9, "y": 11}, {"x": 13, "y": 15}\], ... ) ... session.commit() BEGIN (implicit) UPDATE some\_table SET y\=? WHERE x\=? \[...\] \[(11, 9), (15, 13)\] COMMIT Above, we invoked an UPDATE statement using the bound-parameter, “executemany” style of execution introduced at [Sending Multiple Parameters](https://docs.sqlalchemy.org/en/20/tutorial/dbapi_transactions.html#tutorial-multiple-parameters) , ending the block with a “commit as you go” commit. Tip The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") doesn’t actually hold onto the [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object after it ends the transaction. It gets a new [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") from the [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") the next time it needs to execute SQL against the database. The [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") obviously has a lot more tricks up its sleeve than that, however understanding that it has a [`Session.execute()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method that’s used the same way as [`Connection.execute()`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") will get us started with the examples that follow later. See also [Basics of Using a Session](https://docs.sqlalchemy.org/en/20/orm/session_basics.html#id1) - presents basic creational and usage patterns with the [`Session`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object. Previous: [Establishing Connectivity - the Engine](https://docs.sqlalchemy.org/en/20/tutorial/engine.html "previous chapter") Next: [Working with Database Metadata](https://docs.sqlalchemy.org/en/20/tutorial/metadata.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Core API Basics — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/20/core/expression_api.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/20/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/20/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/20/core/engines_connections.html) * **Core API Basics**[¶](https://docs.sqlalchemy.org/en/20/core/api_basics.html#) * [Events](https://docs.sqlalchemy.org/en/20/core/event.html) * [Runtime Inspection API](https://docs.sqlalchemy.org/en/20/core/inspection.html) * [Core Exceptions](https://docs.sqlalchemy.org/en/20/core/exceptions.html) * [Core Internals](https://docs.sqlalchemy.org/en/20/core/internals.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Core Events](https://docs.sqlalchemy.org/en/20/core/events.html "previous chapter") * **Next:** [Events](https://docs.sqlalchemy.org/en/20/core/event.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "SQLAlchemy Core") * **On this page:** * [Core API Basics](https://docs.sqlalchemy.org/en/20/core/api_basics.html#core-api-basics) Core API Basics[¶](https://docs.sqlalchemy.org/en/20/core/api_basics.html#core-api-basics "Link to this heading") ================================================================================================================== * [Events](https://docs.sqlalchemy.org/en/20/core/event.html) * [Event Registration](https://docs.sqlalchemy.org/en/20/core/event.html#event-registration) * [Named Argument Styles](https://docs.sqlalchemy.org/en/20/core/event.html#named-argument-styles) * [Targets](https://docs.sqlalchemy.org/en/20/core/event.html#targets) * [Modifiers](https://docs.sqlalchemy.org/en/20/core/event.html#modifiers) * [Events and Multiprocessing](https://docs.sqlalchemy.org/en/20/core/event.html#events-and-multiprocessing) * [Event Reference](https://docs.sqlalchemy.org/en/20/core/event.html#event-reference) * [API Reference](https://docs.sqlalchemy.org/en/20/core/event.html#api-reference) * [Runtime Inspection API](https://docs.sqlalchemy.org/en/20/core/inspection.html) * [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect) * [Available Inspection Targets](https://docs.sqlalchemy.org/en/20/core/inspection.html#available-inspection-targets) * [Core Exceptions](https://docs.sqlalchemy.org/en/20/core/exceptions.html) * [`AmbiguousForeignKeysError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.AmbiguousForeignKeysError) * [`ArgumentError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ArgumentError) * [`AwaitRequired`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.AwaitRequired) * [`Base20DeprecationWarning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.Base20DeprecationWarning) * [`CircularDependencyError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.CircularDependencyError) * [`CompileError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.CompileError) * [`ConstraintColumnNotFoundError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ConstraintColumnNotFoundError) * [`DBAPIError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DBAPIError) * [`DataError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DataError) * [`DatabaseError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DatabaseError) * [`DisconnectionError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DisconnectionError) * [`DontWrapMixin`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DontWrapMixin) * [`DuplicateColumnError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.DuplicateColumnError) * [`HasDescriptionCode`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.HasDescriptionCode) * [`IdentifierError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IdentifierError) * [`IllegalStateChangeError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IllegalStateChangeError) * [`IntegrityError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.IntegrityError) * [`InterfaceError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InterfaceError) * [`InternalError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InternalError) * [`InvalidRequestError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidRequestError) * [`InvalidatePoolError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.InvalidatePoolError) * [`LegacyAPIWarning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.LegacyAPIWarning) * [`MissingGreenlet`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.MissingGreenlet) * [`MovedIn20Warning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.MovedIn20Warning) * [`MultipleResultsFound`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.MultipleResultsFound) * [`NoForeignKeysError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoForeignKeysError) * [`NoInspectionAvailable`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable) * [`NoReferenceError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoReferenceError) * [`NoReferencedColumnError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoReferencedColumnError) * [`NoReferencedTableError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoReferencedTableError) * [`NoResultFound`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoResultFound) * [`NoSuchColumnError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoSuchColumnError) * [`NoSuchModuleError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoSuchModuleError) * [`NoSuchTableError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoSuchTableError) * [`NotSupportedError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NotSupportedError) * [`ObjectNotExecutableError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ObjectNotExecutableError) * [`OperationalError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.OperationalError) * [`PendingRollbackError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.PendingRollbackError) * [`ProgrammingError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ProgrammingError) * [`ResourceClosedError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.ResourceClosedError) * [`SADeprecationWarning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SADeprecationWarning) * [`SAPendingDeprecationWarning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SAPendingDeprecationWarning) * [`SATestSuiteWarning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SATestSuiteWarning) * [`SAWarning`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SAWarning) * [`SQLAlchemyError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.SQLAlchemyError) * [`StatementError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.StatementError) * [`TimeoutError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.TimeoutError) * [`UnboundExecutionError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError) * [`UnreflectableTableError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnreflectableTableError) * [`UnsupportedCompilationError`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.UnsupportedCompilationError) * [Core Internals](https://docs.sqlalchemy.org/en/20/core/internals.html) * [`BindTyping`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.BindTyping) * [`Compiled`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Compiled) * [`DBAPIConnection`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIConnection) * [`DBAPICursor`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPICursor) * [`DBAPIType`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.interfaces.DBAPIType) * [`DDLCompiler`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.DDLCompiler) * [`DefaultDialect`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultDialect) * [`Dialect`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.Dialect) * [`DefaultExecutionContext`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.default.DefaultExecutionContext) * [`ExecutionContext`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.ExecutionContext) * [`ExpandedState`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.ExpandedState) * [`GenericTypeCompiler`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.GenericTypeCompiler) * [`Identified`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.log.Identified) * [`IdentifierPreparer`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.IdentifierPreparer) * [`SQLCompiler`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.SQLCompiler) * [`StrSQLCompiler`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.sql.compiler.StrSQLCompiler) * [`AdaptedConnection`](https://docs.sqlalchemy.org/en/20/core/internals.html#sqlalchemy.engine.AdaptedConnection) Previous: [Core Events](https://docs.sqlalchemy.org/en/20/core/events.html "previous chapter") Next: [Events](https://docs.sqlalchemy.org/en/20/core/event.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Runtime Inspection API — SQLAlchemy 2.0 Documentation Release: 2.0.45 current release | Release Date: December 9, 2025 [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) ============================================================================= ### [SQLAlchemy 2.0 Documentation](https://docs.sqlalchemy.org/en/20/index.html) current release [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/20/core/expression_api.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/20/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/20/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/20/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/20/core/api_basics.html) * [Events](https://docs.sqlalchemy.org/en/20/core/event.html) * **Runtime Inspection API**[¶](https://docs.sqlalchemy.org/en/20/core/inspection.html#) * [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect) * [Available Inspection Targets](https://docs.sqlalchemy.org/en/20/core/inspection.html#available-inspection-targets) * [Core Exceptions](https://docs.sqlalchemy.org/en/20/core/exceptions.html) * [Core Internals](https://docs.sqlalchemy.org/en/20/core/internals.html) #### Project Versions * [2.0.45](https://docs.sqlalchemy.org/en/20/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/20/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/20/sqlalchemy_20.zip) * **Previous:** [Events](https://docs.sqlalchemy.org/en/20/core/event.html "previous chapter") * **Next:** [Core Exceptions](https://docs.sqlalchemy.org/en/20/core/exceptions.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/20/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/20/core/index.html "SQLAlchemy Core") * [Core API Basics](https://docs.sqlalchemy.org/en/20/core/api_basics.html "Core API Basics") * **On this page:** * [Runtime Inspection API](https://docs.sqlalchemy.org/en/20/core/inspection.html#module-sqlalchemy.inspection) * [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect) * [Available Inspection Targets](https://docs.sqlalchemy.org/en/20/core/inspection.html#available-inspection-targets) Runtime Inspection API[¶](https://docs.sqlalchemy.org/en/20/core/inspection.html#module-sqlalchemy.inspection "Link to this heading") ====================================================================================================================================== The inspection module provides the [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") function, which delivers runtime information about a wide variety of SQLAlchemy objects, both within the Core as well as the ORM. The [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") function is the entry point to SQLAlchemy’s public API for viewing the configuration and construction of in-memory objects. Depending on the type of object passed to [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") , the return value will either be a related object which provides a known interface, or in many cases it will return the object itself. The rationale for [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") is twofold. One is that it replaces the need to be aware of a large variety of “information getting” functions in SQLAlchemy, such as [`Inspector.from_engine()`](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector.from_engine "sqlalchemy.engine.reflection.Inspector.from_engine") (deprecated in 1.4), [`instance_state()`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.instance_state "sqlalchemy.orm.attributes.instance_state") , [`class_mapper()`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.class_mapper "sqlalchemy.orm.class_mapper") , and others. The other is that the return value of [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") is guaranteed to obey a documented API, thus allowing third party tools which build on top of SQLAlchemy configurations to be constructed in a forwards-compatible way. | Object Name | Description | | --- | --- | | [inspect](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect)
(subject\[, raiseerr\]) | Produce an inspection object for the given target. | _function_ sqlalchemy.inspect(_subject: Any_, _raiseerr: bool \= True_) → Any[¶](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "Link to this definition") Produce an inspection object for the given target. The returned value in some cases may be the same object as the one given, such as if a [`Mapper`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") object is passed. In other cases, it will be an instance of the registered inspection type for the given object, such as if an [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") is passed, an [`Inspector`](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector "sqlalchemy.engine.reflection.Inspector") object is returned. Parameters: * **subject**[¶](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect.params.subject) – the subject to be inspected. * **raiseerr**[¶](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect.params.raiseerr) – When `True`, if the given subject does not correspond to a known SQLAlchemy inspected type, [`sqlalchemy.exc.NoInspectionAvailable`](https://docs.sqlalchemy.org/en/20/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable "sqlalchemy.exc.NoInspectionAvailable") is raised. If `False`, `None` is returned. Available Inspection Targets[¶](https://docs.sqlalchemy.org/en/20/core/inspection.html#available-inspection-targets "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------------------- Below is a listing of many of the most common inspection targets. * `Connectable` (i.e. [`Engine`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") , [`Connection`](https://docs.sqlalchemy.org/en/20/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") ) - returns an [`Inspector`](https://docs.sqlalchemy.org/en/20/core/reflection.html#sqlalchemy.engine.reflection.Inspector "sqlalchemy.engine.reflection.Inspector") object. * [`ClauseElement`](https://docs.sqlalchemy.org/en/20/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") - all SQL expression components, including [`Table`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") , [`Column`](https://docs.sqlalchemy.org/en/20/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") , serve as their own inspection objects, meaning any of these objects passed to [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") return themselves. * `object` - an object given will be checked by the ORM for a mapping - if so, an [`InstanceState`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState") is returned representing the mapped state of the object. The [`InstanceState`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState") also provides access to per attribute state via the [`AttributeState`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.AttributeState "sqlalchemy.orm.AttributeState") interface as well as the per-flush “history” of any attribute via the [`History`](https://docs.sqlalchemy.org/en/20/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History") object. See also [Inspection of Mapped Instances](https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html#orm-mapper-inspection-instancestate) * `type` (i.e. a class) - a class given will be checked by the ORM for a mapping - if so, a [`Mapper`](https://docs.sqlalchemy.org/en/20/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") for that class is returned. See also [Inspection of Mapper objects](https://docs.sqlalchemy.org/en/20/orm/mapping_styles.html#orm-mapper-inspection-mapper) * mapped attribute - passing a mapped attribute to [`inspect()`](https://docs.sqlalchemy.org/en/20/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") , such as `inspect(MyClass.some_attribute)`, returns a [`QueryableAttribute`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.QueryableAttribute "sqlalchemy.orm.QueryableAttribute") object, which is the [descriptor](https://docs.sqlalchemy.org/en/20/glossary.html#term-descriptor) associated with a mapped class. This descriptor refers to a [`MapperProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.MapperProperty "sqlalchemy.orm.MapperProperty") , which is usually an instance of [`ColumnProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.ColumnProperty "sqlalchemy.orm.ColumnProperty") or [`RelationshipProperty`](https://docs.sqlalchemy.org/en/20/orm/internals.html#sqlalchemy.orm.RelationshipProperty "sqlalchemy.orm.RelationshipProperty") , via its `QueryableAttribute.property` attribute. * [`AliasedClass`](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.util.AliasedClass "sqlalchemy.orm.util.AliasedClass") - returns an [`AliasedInsp`](https://docs.sqlalchemy.org/en/20/orm/queryguide/api.html#sqlalchemy.orm.util.AliasedInsp "sqlalchemy.orm.util.AliasedInsp") object. Previous: [Events](https://docs.sqlalchemy.org/en/20/core/event.html "previous chapter") Next: [Core Exceptions](https://docs.sqlalchemy.org/en/20/core/exceptions.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/20/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Fri 19 Dec 2025 05:05:38 PM EST --- # Tracking queries, object and Session Changes with Events — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/14/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/14/orm/quickstart.html) * [Object Relational Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/orm/tutorial.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/14/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/14/orm/relationships.html) * [Querying Data, Loading Objects](https://docs.sqlalchemy.org/en/14/orm/loading_objects.html) * [Using the Session](https://docs.sqlalchemy.org/en/14/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/14/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/14/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/14/orm/contextual.html) * **Tracking queries, object and Session Changes with Events**[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#) * [Execute Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#execute-events) * [Basic Query Interception](https://docs.sqlalchemy.org/en/14/orm/session_events.html#basic-query-interception) * [Adding global WHERE / ON criteria](https://docs.sqlalchemy.org/en/14/orm/session_events.html#adding-global-where-on-criteria) * [Re-Executing Statements](https://docs.sqlalchemy.org/en/14/orm/session_events.html#re-executing-statements) * [Persistence Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistence-events) * [`before_flush()`](https://docs.sqlalchemy.org/en/14/orm/session_events.html#before-flush) * [`after_flush()`](https://docs.sqlalchemy.org/en/14/orm/session_events.html#after-flush) * [`after_flush_postexec()`](https://docs.sqlalchemy.org/en/14/orm/session_events.html#after-flush-postexec) * [Mapper-level Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#mapper-level-events) * [Object Lifecycle Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#object-lifecycle-events) * [Transient](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transient) * [Transient to Pending](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transient-to-pending) * [Pending to Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#pending-to-persistent) * [Pending to Transient](https://docs.sqlalchemy.org/en/14/orm/session_events.html#pending-to-transient) * [Loaded as Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#loaded-as-persistent) * [Persistent to Transient](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-transient) * [Persistent to Deleted](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-deleted) * [Deleted to Detached](https://docs.sqlalchemy.org/en/14/orm/session_events.html#deleted-to-detached) * [Persistent to Detached](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-detached) * [Detached to Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#detached-to-persistent) * [Deleted to Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#deleted-to-persistent) * [Transaction Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transaction-events) * [Attribute Change Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#attribute-change-events) * [Session API](https://docs.sqlalchemy.org/en/14/orm/session_api.html) * [Events and Internals](https://docs.sqlalchemy.org/en/14/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/14/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/14/orm/examples.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/14/orm/contextual.html "previous chapter") * **Next:** [Session API](https://docs.sqlalchemy.org/en/14/orm/session_api.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/14/orm/index.html "SQLAlchemy ORM") * [Using the Session](https://docs.sqlalchemy.org/en/14/orm/session.html "Using the Session") * **On this page:** * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#tracking-queries-object-and-session-changes-with-events) * [Execute Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#execute-events) * [Basic Query Interception](https://docs.sqlalchemy.org/en/14/orm/session_events.html#basic-query-interception) * [Adding global WHERE / ON criteria](https://docs.sqlalchemy.org/en/14/orm/session_events.html#adding-global-where-on-criteria) * [Re-Executing Statements](https://docs.sqlalchemy.org/en/14/orm/session_events.html#re-executing-statements) * [Persistence Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistence-events) * [`before_flush()`](https://docs.sqlalchemy.org/en/14/orm/session_events.html#before-flush) * [`after_flush()`](https://docs.sqlalchemy.org/en/14/orm/session_events.html#after-flush) * [`after_flush_postexec()`](https://docs.sqlalchemy.org/en/14/orm/session_events.html#after-flush-postexec) * [Mapper-level Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#mapper-level-events) * [Object Lifecycle Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#object-lifecycle-events) * [Transient](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transient) * [Transient to Pending](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transient-to-pending) * [Pending to Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#pending-to-persistent) * [Pending to Transient](https://docs.sqlalchemy.org/en/14/orm/session_events.html#pending-to-transient) * [Loaded as Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#loaded-as-persistent) * [Persistent to Transient](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-transient) * [Persistent to Deleted](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-deleted) * [Deleted to Detached](https://docs.sqlalchemy.org/en/14/orm/session_events.html#deleted-to-detached) * [Persistent to Detached](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-detached) * [Detached to Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#detached-to-persistent) * [Deleted to Persistent](https://docs.sqlalchemy.org/en/14/orm/session_events.html#deleted-to-persistent) * [Transaction Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transaction-events) * [Attribute Change Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#attribute-change-events) Tracking queries, object and Session Changes with Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#tracking-queries-object-and-session-changes-with-events "Link to this heading") ====================================================================================================================================================================================================== SQLAlchemy features an extensive [Event Listening](https://docs.sqlalchemy.org/en/14/core/event.html) system used throughout the Core and ORM. Within the ORM, there are a wide variety of event listener hooks, which are documented at an API level at [ORM Events](https://docs.sqlalchemy.org/en/14/orm/events.html) . This collection of events has grown over the years to include lots of very useful new events as well as some older events that aren’t as relevant as they once were. This section will attempt to introduce the major event hooks and when they might be used. Execute Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#execute-events "Link to this heading") ------------------------------------------------------------------------------------------------------------------- Added in version 1.4: The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") now features a single comprehensive hook designed to intercept all SELECT statements made on behalf of the ORM as well as bulk UPDATE and DELETE statements. This hook supersedes the previous [`QueryEvents.before_compile()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile "sqlalchemy.orm.QueryEvents.before_compile") event as well [`QueryEvents.before_compile_update()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_update "sqlalchemy.orm.QueryEvents.before_compile_update") and [`QueryEvents.before_compile_delete()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile_delete "sqlalchemy.orm.QueryEvents.before_compile_delete") . [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") features a comprehensive system by which all queries invoked via the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method, which includes all SELECT statements emitted by [`Query`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") as well as all SELECT statements emitted on behalf of column and relationship loaders, may be intercepted and modified. The system makes use of the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event hook as well as the [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") object to represent the event state. ### Basic Query Interception[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#basic-query-interception "Link to this heading") [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") is firstly useful for any kind of interception of a query, which includes those emitted by [`Query`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") with [1.x style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1.x-style) as well as when an ORM-enabled [2.0 style](https://docs.sqlalchemy.org/en/14/glossary.html#term-2.0-style) [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") , [`update()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.update "sqlalchemy.sql.expression.update") or [`delete()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.delete "sqlalchemy.sql.expression.delete") construct is delivered to [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") . The [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") construct provides accessors to allow modifications to statements, parameters, and options: Session \= sessionmaker(engine, future\=True) @event.listens\_for(Session, "do\_orm\_execute") def \_do\_orm\_execute(orm\_execute\_state): if orm\_execute\_state.is\_select: \# add populate\_existing for all SELECT statements orm\_execute\_state.update\_execution\_options(populate\_existing\=True) \# check if the SELECT is against a certain entity and add an \# ORDER BY if so col\_descriptions \= orm\_execute\_state.statement.column\_descriptions if col\_descriptions\[0\]\["entity"\] is MyEntity: orm\_execute\_state.statement \= statement.order\_by(MyEntity.name) The above example illustrates some simple modifications to SELECT statements. At this level, the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event hook intends to replace the previous use of the [`QueryEvents.before_compile()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile "sqlalchemy.orm.QueryEvents.before_compile") event, which was not fired off consistently for various kinds of loaders; additionally, the [`QueryEvents.before_compile()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.QueryEvents.before_compile "sqlalchemy.orm.QueryEvents.before_compile") only applies to [1.x style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1.x-style) use with [`Query`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") and not with [2.0 style](https://docs.sqlalchemy.org/en/14/glossary.html#term-2.0-style) use of [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") . ### Adding global WHERE / ON criteria[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#adding-global-where-on-criteria "Link to this heading") One of the most requested query-extension features is the ability to add WHERE criteria to all occurrences of an entity in all queries. This is achievable by making use of the [`with_loader_criteria()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria "sqlalchemy.orm.with_loader_criteria") query option, which may be used on its own, or is ideally suited to be used within the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event: from sqlalchemy.orm import with\_loader\_criteria Session \= sessionmaker(engine, future\=True) @event.listens\_for(Session, "do\_orm\_execute") def \_do\_orm\_execute(orm\_execute\_state): if ( orm\_execute\_state.is\_select and not orm\_execute\_state.is\_column\_load and not orm\_execute\_state.is\_relationship\_load ): orm\_execute\_state.statement \= orm\_execute\_state.statement.options( with\_loader\_criteria(MyEntity.public \== True) ) Above, an option is added to all SELECT statements that will limit all queries against `MyEntity` to filter on `public == True`. The criteria will be applied to **all** loads of that class within the scope of the immediate query. The [`with_loader_criteria()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria "sqlalchemy.orm.with_loader_criteria") option by default will automatically propagate to relationship loaders as well, which will apply to subsequent relationship loads, which includes lazy loads, selectinloads, etc. For a series of classes that all feature some common column structure, if the classes are composed using a [declarative mixin](https://docs.sqlalchemy.org/en/14/orm/extensions/declarative/mixins.html#declarative-mixins) , the mixin class itself may be used in conjunction with the [`with_loader_criteria()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria "sqlalchemy.orm.with_loader_criteria") option by making use of a Python lambda. The Python lambda will be invoked at query compilation time against the specific entities which match the criteria. Given a series of classes based on a mixin called `HasTimestamp`: import datetime class HasTimestamp(object): timestamp \= Column(DateTime, default\=datetime.datetime.now) class SomeEntity(HasTimestamp, Base): \_\_tablename\_\_ \= "some\_entity" id \= Column(Integer, primary\_key\=True) class SomeOtherEntity(HasTimestamp, Base): \_\_tablename\_\_ \= "some\_entity" id \= Column(Integer, primary\_key\=True) The above classes `SomeEntity` and `SomeOtherEntity` will each have a column `timestamp` that defaults to the current date and time. An event may be used to intercept all objects that extend from `HasTimestamp` and filter their `timestamp` column on a date that is no older than one month ago: @event.listens\_for(Session, "do\_orm\_execute") def \_do\_orm\_execute(orm\_execute\_state): if ( orm\_execute\_state.is\_select and not orm\_execute\_state.is\_column\_load and not orm\_execute\_state.is\_relationship\_load ): one\_month\_ago \= datetime.datetime.today() \- datetime.timedelta(months\=1) orm\_execute\_state.statement \= orm\_execute\_state.statement.options( with\_loader\_criteria( HasTimestamp, lambda cls: cls.timestamp \>= one\_month\_ago, include\_aliases\=True, ) ) Warning The use of a lambda inside of the call to [`with_loader_criteria()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria "sqlalchemy.orm.with_loader_criteria") is only invoked **once per unique class**. Custom functions should not be invoked within this lambda. See [Using Lambdas to add significant speed gains to statement production](https://docs.sqlalchemy.org/en/14/core/connections.html#engine-lambda-caching) for an overview of the “lambda SQL” feature, which is for advanced use only. See also [ORM Query Events](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-session-orm-events) - includes working examples of the above [`with_loader_criteria()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.with_loader_criteria "sqlalchemy.orm.with_loader_criteria") recipes. ### Re-Executing Statements[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#re-executing-statements "Link to this heading") Deep Alchemy the statement re-execution feature involves a slightly intricate recursive sequence, and is intended to solve the fairly hard problem of being able to re-route the execution of a SQL statement into various non-SQL contexts. The twin examples of “dogpile caching” and “horizontal sharding”, linked below, should be used as a guide for when this rather advanced feature is appropriate to be used. The [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") is capable of controlling the execution of the given statement; this includes the ability to either not invoke the statement at all, allowing a pre-constructed result set retrieved from a cache to be returned instead, as well as the ability to invoke the same statement repeatedly with different state, such as invoking it against multiple database connections and then merging the results together in memory. Both of these advanced patterns are demonstrated in SQLAlchemy’s example suite as detailed below. When inside the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event hook, the [`ORMExecuteState.invoke_statement()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement "sqlalchemy.orm.ORMExecuteState.invoke_statement") method may be used to invoke the statement using a new nested invocation of [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") , which will then preempt the subsequent handling of the current execution in progress and instead return the [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") returned by the inner execution. The event handlers thus far invoked for the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") hook within this process will be skipped within this nested call as well. The [`ORMExecuteState.invoke_statement()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement "sqlalchemy.orm.ORMExecuteState.invoke_statement") method returns a [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object; this object then features the ability for it to be “frozen” into a cacheable format and “unfrozen” into a new [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object, as well as for its data to be merged with that of other [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") objects. E.g., using [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") to implement a cache: from sqlalchemy.orm import loading cache \= {} @event.listens\_for(Session, "do\_orm\_execute") def \_do\_orm\_execute(orm\_execute\_state): if "my\_cache\_key" in orm\_execute\_state.execution\_options: cache\_key \= orm\_execute\_state.execution\_options\["my\_cache\_key"\] if cache\_key in cache: frozen\_result \= cache\[cache\_key\] else: frozen\_result \= orm\_execute\_state.invoke\_statement().freeze() cache\[cache\_key\] \= frozen\_result return loading.merge\_frozen\_result( orm\_execute\_state.session, orm\_execute\_state.statement, frozen\_result, load\=False, ) With the above hook in place, an example of using the cache would look like: stmt \= ( select(User).where(User.name \== "sandy").execution\_options(my\_cache\_key\="key\_sandy") ) result \= session.execute(stmt) Above, a custom execution option is passed to [`Select.execution_options()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.execution_options "sqlalchemy.sql.expression.Select.execution_options") in order to establish a “cache key” that will then be intercepted by the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") hook. This cache key is then matched to a [`FrozenResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FrozenResult "sqlalchemy.engine.FrozenResult") object that may be present in the cache, and if present, the object is re-used. The recipe makes use of the [`Result.freeze()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.freeze "sqlalchemy.engine.Result.freeze") method to “freeze” a [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object, which above will contain ORM results, such that it can be stored in a cache and used multiple times. In order to return a live result from the “frozen” result, the `merge_frozen_result()` function is used to merge the “frozen” data from the result object into the current session. The above example is implemented as a complete example in [Dogpile Caching](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-caching) . The [`ORMExecuteState.invoke_statement()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement "sqlalchemy.orm.ORMExecuteState.invoke_statement") method may also be called multiple times, passing along different information to the [`ORMExecuteState.invoke_statement.bind_arguments`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.bind_arguments "sqlalchemy.orm.ORMExecuteState.invoke_statement") parameter such that the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") will make use of different [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") objects each time. This will return a different [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object each time; these results can be merged together using the [`Result.merge()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result.merge "sqlalchemy.engine.Result.merge") method. This is the technique employed by the [Horizontal Sharding](https://docs.sqlalchemy.org/en/14/orm/extensions/horizontal_shard.html) extension; see the source code to familiarize. See also [Dogpile Caching](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-caching) [Horizontal Sharding](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-sharding) Persistence Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistence-events "Link to this heading") --------------------------------------------------------------------------------------------------------------------------- Probably the most widely used series of events are the “persistence” events, which correspond to the [flush process](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-flushing) . The flush is where all the decisions are made about pending changes to objects and are then emitted out to the database in the form of INSERT, UPDATE, and DELETE statements. ### `before_flush()`[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#before-flush "Link to this heading") The [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") hook is by far the most generally useful event to use when an application wants to ensure that additional persistence changes to the database are made when a flush proceeds. Use [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") in order to operate upon objects to validate their state as well as to compose additional objects and references before they are persisted. Within this event, it is **safe to manipulate the Session’s state**, that is, new objects can be attached to it, objects can be deleted, and individual attributes on objects can be changed freely, and these changes will be pulled into the flush process when the event hook completes. The typical [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") hook will be tasked with scanning the collections [`Session.new`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new "sqlalchemy.orm.Session.new") , [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") and [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted "sqlalchemy.orm.Session.deleted") in order to look for objects where something will be happening. For illustrations of [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") , see examples such as [Versioning with a History Table](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-versioned-history) and [Versioning using Temporal Rows](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-versioned-rows) . ### `after_flush()`[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#after-flush "Link to this heading") The [`SessionEvents.after_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush "sqlalchemy.orm.SessionEvents.after_flush") hook is called after the SQL has been emitted for a flush process, but **before** the state of the objects that were flushed has been altered. That is, you can still inspect the [`Session.new`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new "sqlalchemy.orm.Session.new") , [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") and [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted "sqlalchemy.orm.Session.deleted") collections to see what was just flushed, and you can also use history tracking features like the ones provided by [`AttributeState`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState "sqlalchemy.orm.AttributeState") to see what changes were just persisted. In the [`SessionEvents.after_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush "sqlalchemy.orm.SessionEvents.after_flush") event, additional SQL can be emitted to the database based on what’s observed to have changed. ### `after_flush_postexec()`[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#after-flush-postexec "Link to this heading") [`SessionEvents.after_flush_postexec()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec "sqlalchemy.orm.SessionEvents.after_flush_postexec") is called soon after [`SessionEvents.after_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush "sqlalchemy.orm.SessionEvents.after_flush") , but is invoked **after** the state of the objects has been modified to account for the flush that just took place. The [`Session.new`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new "sqlalchemy.orm.Session.new") , [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") and [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted "sqlalchemy.orm.Session.deleted") collections are normally completely empty here. Use [`SessionEvents.after_flush_postexec()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec "sqlalchemy.orm.SessionEvents.after_flush_postexec") to inspect the identity map for finalized objects and possibly emit additional SQL. In this hook, there is the ability to make new changes on objects, which means the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") will again go into a “dirty” state; the mechanics of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") here will cause it to flush **again** if new changes are detected in this hook if the flush were invoked in the context of [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") ; otherwise, the pending changes will be bundled as part of the next normal flush. When the hook detects new changes within a [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") , a counter ensures that an endless loop in this regard is stopped after 100 iterations, in the case that an [`SessionEvents.after_flush_postexec()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_flush_postexec "sqlalchemy.orm.SessionEvents.after_flush_postexec") hook continually adds new state to be flushed each time it is called. ### Mapper-level Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#mapper-level-events "Link to this heading") In addition to the flush-level hooks, there is also a suite of hooks that are more fine-grained, in that they are called on a per-object basis and are broken out based on INSERT, UPDATE or DELETE. These are the mapper persistence hooks, and they too are very popular, however these events need to be approached more cautiously, as they proceed within the context of the flush process that is already ongoing; many operations are not safe to proceed here. The events are: * [`MapperEvents.before_insert()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_insert "sqlalchemy.orm.MapperEvents.before_insert") * [`MapperEvents.after_insert()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_insert "sqlalchemy.orm.MapperEvents.after_insert") * [`MapperEvents.before_update()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_update "sqlalchemy.orm.MapperEvents.before_update") * [`MapperEvents.after_update()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_update "sqlalchemy.orm.MapperEvents.after_update") * [`MapperEvents.before_delete()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.before_delete "sqlalchemy.orm.MapperEvents.before_delete") * [`MapperEvents.after_delete()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.MapperEvents.after_delete "sqlalchemy.orm.MapperEvents.after_delete") Each event is passed the [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") , the mapped object itself, and the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") which is being used to emit an INSERT, UPDATE or DELETE statement. The appeal of these events is clear, in that if an application wants to tie some activity to when a specific type of object is persisted with an INSERT, the hook is very specific; unlike the [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") event, there’s no need to search through collections like [`Session.new`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new "sqlalchemy.orm.Session.new") in order to find targets. However, the flush plan which represents the full list of every single INSERT, UPDATE, DELETE statement to be emitted has _already been decided_ when these events are called, and no changes may be made at this stage. Therefore the only changes that are even possible to the given objects are upon attributes **local** to the object’s row. Any other change to the object or other objects will impact the state of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , which will fail to function properly. Operations that are not supported within these mapper-level persistence events include: * [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") * [`Session.delete()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete "sqlalchemy.orm.Session.delete") * Mapped collection append, add, remove, delete, discard, etc. * Mapped relationship attribute set/del events, i.e. `someobject.related = someotherobject` The reason the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") is passed is that it is encouraged that **simple SQL operations take place here**, directly on the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , such as incrementing counters or inserting extra rows within log tables. When dealing with the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , it is expected that Core-level SQL operations will be used; e.g. those described in [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) . There are also many per-object operations that don’t need to be handled within a flush event at all. The most common alternative is to simply establish additional state along with an object inside its `__init__()` method, such as creating additional objects that are to be associated with the new object. Using validators as described in [Simple Validators](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#simple-validators) is another approach; these functions can intercept changes to attributes and establish additional state changes on the target object in response to the attribute change. With both of these approaches, the object is in the correct state before it ever gets to the flush step. Object Lifecycle Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#object-lifecycle-events "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------- Another use case for events is to track the lifecycle of objects. This refers to the states first introduced at [Quickie Intro to Object States](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html#session-object-states) . Added in version 1.1: added a system of events that intercept all possible state transitions of an object within the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . All the states above can be tracked fully with events. Each event represents a distinct state transition, meaning, the starting state and the destination state are both part of what are tracked. With the exception of the initial transient event, all the events are in terms of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object or class, meaning they can be associated either with a specific [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object: from sqlalchemy import event from sqlalchemy.orm import Session session \= Session() @event.listens\_for(session, "transient\_to\_pending") def object\_is\_pending(session, obj): print("new pending: %s" % obj) Or with the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") class itself, as well as with a specific [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") , which is likely the most useful form: from sqlalchemy import event from sqlalchemy.orm import sessionmaker maker \= sessionmaker() @event.listens\_for(maker, "transient\_to\_pending") def object\_is\_pending(session, obj): print("new pending: %s" % obj) The listeners can of course be stacked on top of one function, as is likely to be common. For example, to track all objects that are entering the persistent state: @event.listens\_for(maker, "pending\_to\_persistent") @event.listens\_for(maker, "deleted\_to\_persistent") @event.listens\_for(maker, "detached\_to\_persistent") @event.listens\_for(maker, "loaded\_as\_persistent") def detect\_all\_persistent(session, instance): print("object is now persistent: %s" % instance) ### Transient[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transient "Link to this heading") All mapped objects when first constructed start out as [transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient) . In this state, the object exists alone and doesn’t have an association with any [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . For this initial state, there’s no specific “transition” event since there is no [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , however if one wanted to intercept when any transient object is created, the [`InstanceEvents.init()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.init "sqlalchemy.orm.InstanceEvents.init") method is probably the best event. This event is applied to a specific class or superclass. For example, to intercept all new objects for a particular declarative base: from sqlalchemy.ext.declarative import declarative\_base from sqlalchemy import event Base \= declarative\_base() @event.listens\_for(Base, "init", propagate\=True) def intercept\_init(instance, args, kwargs): print("new transient: %s" % instance) ### Transient to Pending[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transient-to-pending "Link to this heading") The transient object becomes [pending](https://docs.sqlalchemy.org/en/14/glossary.html#term-pending) when it is first associated with a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") via the [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") or [`Session.add_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all "sqlalchemy.orm.Session.add_all") method. An object may also become part of a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") as a result of a [“cascade”](https://docs.sqlalchemy.org/en/14/orm/cascades.html#unitofwork-cascades) from a referencing object that was explicitly added. The transient to pending transition is detectable using the [`SessionEvents.transient_to_pending()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.transient_to_pending "sqlalchemy.orm.SessionEvents.transient_to_pending") event: @event.listens\_for(sessionmaker, "transient\_to\_pending") def intercept\_transient\_to\_pending(session, object\_): print("transient to pending: %s" % object\_) ### Pending to Persistent[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#pending-to-persistent "Link to this heading") The [pending](https://docs.sqlalchemy.org/en/14/glossary.html#term-pending) object becomes [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) when a flush proceeds and an INSERT statement takes place for the instance. The object now has an identity key. Track pending to persistent with the [`SessionEvents.pending_to_persistent()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_persistent "sqlalchemy.orm.SessionEvents.pending_to_persistent") event: @event.listens\_for(sessionmaker, "pending\_to\_persistent") def intercept\_pending\_to\_persistent(session, object\_): print("pending to persistent: %s" % object\_) ### Pending to Transient[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#pending-to-transient "Link to this heading") The [pending](https://docs.sqlalchemy.org/en/14/glossary.html#term-pending) object can revert back to [transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient) if the [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") method is called before the pending object has been flushed, or if the [`Session.expunge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge "sqlalchemy.orm.Session.expunge") method is called for the object before it is flushed. Track pending to transient with the [`SessionEvents.pending_to_transient()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.pending_to_transient "sqlalchemy.orm.SessionEvents.pending_to_transient") event: @event.listens\_for(sessionmaker, "pending\_to\_transient") def intercept\_pending\_to\_transient(session, object\_): print("transient to pending: %s" % object\_) ### Loaded as Persistent[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#loaded-as-persistent "Link to this heading") Objects can appear in the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") directly in the [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) state when they are loaded from the database. Tracking this state transition is synonymous with tracking objects as they are loaded, and is synonymous with using the [`InstanceEvents.load()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.InstanceEvents.load "sqlalchemy.orm.InstanceEvents.load") instance-level event. However, the [`SessionEvents.loaded_as_persistent()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.loaded_as_persistent "sqlalchemy.orm.SessionEvents.loaded_as_persistent") event is provided as a session-centric hook for intercepting objects as they enter the persistent state via this particular avenue: @event.listens\_for(sessionmaker, "loaded\_as\_persistent") def intercept\_loaded\_as\_persistent(session, object\_): print("object loaded into persistent state: %s" % object\_) ### Persistent to Transient[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-transient "Link to this heading") The persistent object can revert to the transient state if the [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") method is called for a transaction where the object was first added as pending. In the case of the ROLLBACK, the INSERT statement that made this object persistent is rolled back, and the object is evicted from the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to again become transient. Track objects that were reverted to transient from persistent using the [`SessionEvents.persistent_to_transient()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_transient "sqlalchemy.orm.SessionEvents.persistent_to_transient") event hook: @event.listens\_for(sessionmaker, "persistent\_to\_transient") def intercept\_persistent\_to\_transient(session, object\_): print("persistent to transient: %s" % object\_) ### Persistent to Deleted[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-deleted "Link to this heading") The persistent object enters the [deleted](https://docs.sqlalchemy.org/en/14/glossary.html#term-deleted) state when an object marked for deletion is deleted from the database within the flush process. Note that this is **not the same** as when the [`Session.delete()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete "sqlalchemy.orm.Session.delete") method is called for a target object. The [`Session.delete()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete "sqlalchemy.orm.Session.delete") method only **marks** the object for deletion; the actual DELETE statement is not emitted until the flush proceeds. It is subsequent to the flush that the “deleted” state is present for the target object. Within the “deleted” state, the object is only marginally associated with the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . It is not present in the identity map nor is it present in the [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted "sqlalchemy.orm.Session.deleted") collection that refers to when it was pending for deletion. From the “deleted” state, the object can go either to the detached state when the transaction is committed, or back to the persistent state if the transaction is instead rolled back. Track the persistent to deleted transition with [`SessionEvents.persistent_to_deleted()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_deleted "sqlalchemy.orm.SessionEvents.persistent_to_deleted") : @event.listens\_for(sessionmaker, "persistent\_to\_deleted") def intercept\_persistent\_to\_deleted(session, object\_): print("object was DELETEd, is now in deleted state: %s" % object\_) ### Deleted to Detached[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#deleted-to-detached "Link to this heading") The deleted object becomes [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) when the session’s transaction is committed. After the [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") method is called, the database transaction is final and the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") now fully discards the deleted object and removes all associations to it. Track the deleted to detached transition using [`SessionEvents.deleted_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_detached "sqlalchemy.orm.SessionEvents.deleted_to_detached") : @event.listens\_for(sessionmaker, "deleted\_to\_detached") def intercept\_deleted\_to\_detached(session, object\_): print("deleted to detached: %s" % object\_) Note While the object is in the deleted state, the [`InstanceState.deleted`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.deleted "sqlalchemy.orm.InstanceState.deleted") attribute, accessible using `inspect(object).deleted`, returns True. However when the object is detached, [`InstanceState.deleted`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.deleted "sqlalchemy.orm.InstanceState.deleted") will again return False. To detect that an object was deleted, regardless of whether or not it is detached, use the [`InstanceState.was_deleted`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.was_deleted "sqlalchemy.orm.InstanceState.was_deleted") accessor. ### Persistent to Detached[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#persistent-to-detached "Link to this heading") The persistent object becomes [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) when the object is de-associated with the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , via the [`Session.expunge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge "sqlalchemy.orm.Session.expunge") , [`Session.expunge_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge_all "sqlalchemy.orm.Session.expunge_all") , or [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") methods. Note An object may also become **implicitly detached** if its owning [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is dereferenced by the application and discarded due to garbage collection. In this case, **no event is emitted**. Track objects as they move from persistent to detached using the [`SessionEvents.persistent_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.persistent_to_detached "sqlalchemy.orm.SessionEvents.persistent_to_detached") event: @event.listens\_for(sessionmaker, "persistent\_to\_detached") def intercept\_persistent\_to\_detached(session, object\_): print("object became detached: %s" % object\_) ### Detached to Persistent[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#detached-to-persistent "Link to this heading") The detached object becomes persistent when it is re-associated with a session using the [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") or equivalent method. Track objects moving back to persistent from detached using the [`SessionEvents.detached_to_persistent()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.detached_to_persistent "sqlalchemy.orm.SessionEvents.detached_to_persistent") event: @event.listens\_for(sessionmaker, "detached\_to\_persistent") def intercept\_detached\_to\_persistent(session, object\_): print("object became persistent again: %s" % object\_) ### Deleted to Persistent[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#deleted-to-persistent "Link to this heading") The [deleted](https://docs.sqlalchemy.org/en/14/glossary.html#term-deleted) object can be reverted to the [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) state when the transaction in which it was DELETEd was rolled back using the [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") method. Track deleted objects moving back to the persistent state using the [`SessionEvents.deleted_to_persistent()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.deleted_to_persistent "sqlalchemy.orm.SessionEvents.deleted_to_persistent") event: @event.listens\_for(sessionmaker, "deleted\_to\_persistent") def intercept\_deleted\_to\_persistent(session, object\_): print("deleted to persistent: %s" % object\_) Transaction Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#transaction-events "Link to this heading") --------------------------------------------------------------------------------------------------------------------------- Transaction events allow an application to be notified when transaction boundaries occur at the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") level as well as when the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") changes the transactional state on [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") objects. * [`SessionEvents.after_transaction_create()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_create "sqlalchemy.orm.SessionEvents.after_transaction_create") , [`SessionEvents.after_transaction_end()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_transaction_end "sqlalchemy.orm.SessionEvents.after_transaction_end") - these events track the logical transaction scopes of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") in a way that is not specific to individual database connections. These events are intended to help with integration of transaction-tracking systems such as `zope.sqlalchemy`. Use these events when the application needs to align some external scope with the transactional scope of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . These hooks mirror the “nested” transactional behavior of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , in that they track logical “subtransactions” as well as “nested” (e.g. SAVEPOINT) transactions. * [`SessionEvents.before_commit()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_commit "sqlalchemy.orm.SessionEvents.before_commit") , [`SessionEvents.after_commit()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_commit "sqlalchemy.orm.SessionEvents.after_commit") , [`SessionEvents.after_begin()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin "sqlalchemy.orm.SessionEvents.after_begin") , [`SessionEvents.after_rollback()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_rollback "sqlalchemy.orm.SessionEvents.after_rollback") , [`SessionEvents.after_soft_rollback()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_soft_rollback "sqlalchemy.orm.SessionEvents.after_soft_rollback") - These events allow tracking of transaction events from the perspective of database connections. [`SessionEvents.after_begin()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.after_begin "sqlalchemy.orm.SessionEvents.after_begin") in particular is a per-connection event; a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") that maintains more than one connection will emit this event for each connection individually as those connections become used within the current transaction. The rollback and commit events then refer to when the DBAPI connections themselves have received rollback or commit instructions directly. Attribute Change Events[¶](https://docs.sqlalchemy.org/en/14/orm/session_events.html#attribute-change-events "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------- The attribute change events allow interception of when specific attributes on an object are modified. These events include [`AttributeEvents.set()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.set "sqlalchemy.orm.AttributeEvents.set") , [`AttributeEvents.append()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.append "sqlalchemy.orm.AttributeEvents.append") , and [`AttributeEvents.remove()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.AttributeEvents.remove "sqlalchemy.orm.AttributeEvents.remove") . These events are extremely useful, particularly for per-object validation operations; however, it is often much more convenient to use a “validator” hook, which uses these hooks behind the scenes; see [Simple Validators](https://docs.sqlalchemy.org/en/14/orm/mapped_attributes.html#simple-validators) for background on this. The attribute events are also behind the mechanics of backreferences. An example illustrating use of attribute events is in [Attribute Instrumentation](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-instrumentation) . Previous: [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/14/orm/contextual.html "previous chapter") Next: [Session API](https://docs.sqlalchemy.org/en/14/orm/session_api.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Session API — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/14/orm/index.html "SQLAlchemy ORM") * [ORM Quick Start](https://docs.sqlalchemy.org/en/14/orm/quickstart.html) * [Object Relational Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/orm/tutorial.html) * [ORM Mapped Class Configuration](https://docs.sqlalchemy.org/en/14/orm/mapper_config.html) * [Relationship Configuration](https://docs.sqlalchemy.org/en/14/orm/relationships.html) * [Querying Data, Loading Objects](https://docs.sqlalchemy.org/en/14/orm/loading_objects.html) * [Using the Session](https://docs.sqlalchemy.org/en/14/orm/session.html) * [Session Basics](https://docs.sqlalchemy.org/en/14/orm/session_basics.html) * [State Management](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html) * [Cascades](https://docs.sqlalchemy.org/en/14/orm/cascades.html) * [Transactions and Connection Management](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html) * [Additional Persistence Techniques](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html) * [Contextual/Thread-local Sessions](https://docs.sqlalchemy.org/en/14/orm/contextual.html) * [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html) * **Session API**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#) * [Session and sessionmaker()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-and-sessionmaker) * [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) * [`sessionmaker.__call__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__call__) * [`sessionmaker.__init__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__init__) * [`sessionmaker.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.begin) * [`sessionmaker.close_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.close_all) * [`sessionmaker.configure()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.configure) * [`sessionmaker.identity_key()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.identity_key) * [`sessionmaker.object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.object_session) * [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) * [`ORMExecuteState.session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session) * [`ORMExecuteState.statement`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.statement) * [`ORMExecuteState.parameters`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.parameters) * [`ORMExecuteState.bind_arguments`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments) * [`ORMExecuteState.local_execution_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options) * [`ORMExecuteState.execution_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.execution_options) * [`ORMExecuteState.all_mappers`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers) * [`ORMExecuteState.bind_mapper`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper) * [`ORMExecuteState.invoke_statement()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement) * [`ORMExecuteState.is_column_load`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load) * [`ORMExecuteState.is_delete`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete) * [`ORMExecuteState.is_insert`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert) * [`ORMExecuteState.is_orm_statement`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement) * [`ORMExecuteState.is_relationship_load`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load) * [`ORMExecuteState.is_select`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select) * [`ORMExecuteState.is_update`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update) * [`ORMExecuteState.lazy_loaded_from`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from) * [`ORMExecuteState.load_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options) * [`ORMExecuteState.loader_strategy_path`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path) * [`ORMExecuteState.update_delete_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options) * [`ORMExecuteState.user_defined_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options) * [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) * [`Session.__init__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.__init__) * [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add) * [`Session.add_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all) * [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin) * [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested) * [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper) * [`Session.bind_table()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table) * [`Session.bulk_insert_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings) * [`Session.bulk_save_objects()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects) * [`Session.bulk_update_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings) * [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close) * [`Session.close_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close_all) * [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit) * [`Session.connection()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection) * [`Session.delete()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete) * [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted) * [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty) * [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading) * [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute) * [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire) * [`Session.expire_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all) * [`Session.expunge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge) * [`Session.expunge_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge_all) * [`Session.flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush) * [`Session.get()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get) * [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind) * [`Session.get_nested_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_nested_transaction) * [`Session.get_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_transaction) * [`Session.identity_key()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_key) * [`Session.identity_map`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_map) * [`Session.in_nested_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_nested_transaction) * [`Session.in_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_transaction) * [`Session.info`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.info) * [`Session.invalidate()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.invalidate) * [`Session.is_active`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active) * [`Session.is_modified()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified) * [`Session.merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge) * [`Session.new`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new) * [`Session.no_autoflush`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.no_autoflush) * [`Session.object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.object_session) * [`Session.prepare()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.prepare) * [`Session.query()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query) * [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh) * [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback) * [`Session.scalar()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalar) * [`Session.scalars()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalars) * [`Session.transaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction) * [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction) * [`SessionTransaction.nested`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested) * [`SessionTransaction.parent`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.parent) * [Session Utilities](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-utilities) * [`close_all_sessions()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.close_all_sessions) * [`make_transient()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient) * [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached) * [`object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session) * [`was_deleted()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.was_deleted) * [Attribute and State Management Utilities](https://docs.sqlalchemy.org/en/14/orm/session_api.html#attribute-and-state-management-utilities) * [`object_state()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state) * [`del_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute) * [`get_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute) * [`get_history()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history) * [`init_collection()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection) * [`flag_modified()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified) * [`flag_dirty()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty) * [`instance_state()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.instance_state) * [`is_instrumented()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented) * [`set_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute) * [`set_committed_value()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value) * [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) * [`History.empty()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.empty) * [`History.has_changes()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes) * [`History.non_added()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added) * [`History.non_deleted()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted) * [`History.sum()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.sum) * [Events and Internals](https://docs.sqlalchemy.org/en/14/orm/extending.html) * [ORM Extensions](https://docs.sqlalchemy.org/en/14/orm/extensions/index.html) * [ORM Examples](https://docs.sqlalchemy.org/en/14/orm/examples.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html "previous chapter") * **Next:** [Events and Internals](https://docs.sqlalchemy.org/en/14/orm/extending.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy ORM](https://docs.sqlalchemy.org/en/14/orm/index.html "SQLAlchemy ORM") * [Using the Session](https://docs.sqlalchemy.org/en/14/orm/session.html "Using the Session") * **On this page:** * [Session API](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-api) * [Session and sessionmaker()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-and-sessionmaker) * [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) * [`sessionmaker.__call__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__call__) * [`sessionmaker.__init__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__init__) * [`sessionmaker.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.begin) * [`sessionmaker.close_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.close_all) * [`sessionmaker.configure()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.configure) * [`sessionmaker.identity_key()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.identity_key) * [`sessionmaker.object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.object_session) * [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) * [`ORMExecuteState.session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session) * [`ORMExecuteState.statement`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.statement) * [`ORMExecuteState.parameters`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.parameters) * [`ORMExecuteState.bind_arguments`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments) * [`ORMExecuteState.local_execution_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options) * [`ORMExecuteState.execution_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.execution_options) * [`ORMExecuteState.all_mappers`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers) * [`ORMExecuteState.bind_mapper`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper) * [`ORMExecuteState.invoke_statement()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement) * [`ORMExecuteState.is_column_load`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load) * [`ORMExecuteState.is_delete`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete) * [`ORMExecuteState.is_insert`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert) * [`ORMExecuteState.is_orm_statement`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement) * [`ORMExecuteState.is_relationship_load`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load) * [`ORMExecuteState.is_select`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select) * [`ORMExecuteState.is_update`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update) * [`ORMExecuteState.lazy_loaded_from`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from) * [`ORMExecuteState.load_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options) * [`ORMExecuteState.loader_strategy_path`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path) * [`ORMExecuteState.update_delete_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options) * [`ORMExecuteState.user_defined_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options) * [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) * [`Session.__init__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.__init__) * [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add) * [`Session.add_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all) * [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin) * [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested) * [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper) * [`Session.bind_table()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table) * [`Session.bulk_insert_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings) * [`Session.bulk_save_objects()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects) * [`Session.bulk_update_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings) * [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close) * [`Session.close_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close_all) * [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit) * [`Session.connection()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection) * [`Session.delete()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete) * [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted) * [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty) * [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading) * [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute) * [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire) * [`Session.expire_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all) * [`Session.expunge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge) * [`Session.expunge_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge_all) * [`Session.flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush) * [`Session.get()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get) * [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind) * [`Session.get_nested_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_nested_transaction) * [`Session.get_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_transaction) * [`Session.identity_key()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_key) * [`Session.identity_map`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_map) * [`Session.in_nested_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_nested_transaction) * [`Session.in_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_transaction) * [`Session.info`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.info) * [`Session.invalidate()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.invalidate) * [`Session.is_active`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active) * [`Session.is_modified()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified) * [`Session.merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge) * [`Session.new`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new) * [`Session.no_autoflush`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.no_autoflush) * [`Session.object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.object_session) * [`Session.prepare()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.prepare) * [`Session.query()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query) * [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh) * [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback) * [`Session.scalar()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalar) * [`Session.scalars()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalars) * [`Session.transaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction) * [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction) * [`SessionTransaction.nested`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested) * [`SessionTransaction.parent`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.parent) * [Session Utilities](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-utilities) * [`close_all_sessions()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.close_all_sessions) * [`make_transient()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient) * [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached) * [`object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session) * [`was_deleted()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.was_deleted) * [Attribute and State Management Utilities](https://docs.sqlalchemy.org/en/14/orm/session_api.html#attribute-and-state-management-utilities) * [`object_state()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state) * [`del_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute) * [`get_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute) * [`get_history()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history) * [`init_collection()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection) * [`flag_modified()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified) * [`flag_dirty()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty) * [`instance_state()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.instance_state) * [`is_instrumented()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented) * [`set_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute) * [`set_committed_value()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value) * [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) * [`History.empty()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.empty) * [`History.has_changes()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes) * [`History.non_added()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added) * [`History.non_deleted()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted) * [`History.sum()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.sum) Session API[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-api "Link to this heading") ========================================================================================================== Session and sessionmaker()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-and-sessionmaker "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------------- | Object Name | Description | | --- | --- | | [ORMExecuteState](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) | Represents a call to the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute")
method, as passed to the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute")
event hook. | | [Session](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) | Manages persistence operations for ORM-mapped objects. | | [sessionmaker](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) | A configurable [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session")
factory. | | [SessionTransaction](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction) | A [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session")
\-level transaction. | _class_ sqlalchemy.orm.sessionmaker(_bind=None_, _class\_=_, _autoflush=True_, _autocommit=False_, _expire\_on\_commit=True_, _info=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "Link to this definition") A configurable [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") factory. The [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") factory generates new [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects when called, creating them given the configurational arguments established here. e.g.: from sqlalchemy import create\_engine from sqlalchemy.orm import sessionmaker \# an Engine, which the Session will use for connection \# resources engine \= create\_engine('postgresql://scott:tiger@localhost/') Session \= sessionmaker(engine) with Session() as session: session.add(some\_object) session.add(some\_other\_object) session.commit() Context manager use is optional; otherwise, the returned [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object may be closed explicitly via the [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") method. Using a `try:/finally:` block is optional, however will ensure that the close takes place even if there are database errors: session \= Session() try: session.add(some\_object) session.add(some\_other\_object) session.commit() finally: session.close() [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") acts as a factory for [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects in the same way as an [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") acts as a factory for [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") objects. In this way it also includes a [`sessionmaker.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.begin "sqlalchemy.orm.sessionmaker.begin") method, that provides a context manager which both begins and commits a transaction, as well as closes out the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") when complete, rolling back the transaction if any errors occur: Session \= sessionmaker(engine) with Session.begin() as session: session.add(some\_object) session.add(some\_other\_object) \# commits transaction, closes session Added in version 1.4. When calling upon [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") to construct a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , keyword arguments may also be passed to the method; these arguments will override that of the globally configured parameters. Below we use a [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") bound to a certain [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") to produce a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") that is instead bound to a specific [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") procured from that engine: Session \= sessionmaker(engine) \# bind an individual session to a connection with engine.connect() as connection: with Session(bind\=connection) as session: \# work with session The class also includes a method [`sessionmaker.configure()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.configure "sqlalchemy.orm.sessionmaker.configure") , which can be used to specify additional keyword arguments to the factory, which will take effect for subsequent [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects generated. This is usually used to associate one or more [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") objects with an existing [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") factory before it is first used: \# application starts, sessionmaker does not have \# an engine bound yet Session \= sessionmaker() \# ... later, when an engine URL is read from a configuration \# file or other events allow the engine to be created engine \= create\_engine('sqlite:///foo.db') Session.configure(bind\=engine) sess \= Session() \# work with session See also [Opening and Closing a Session](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-getting) - introductory text on creating sessions using [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") . **Members** [\_\_call\_\_()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__call__) , [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__init__) , [begin()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.begin) , [close\_all()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.close_all) , [configure()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.configure) , [identity\_key()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.identity_key) , [object\_session()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.object_session) **Class signature** class [`sqlalchemy.orm.sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") (`sqlalchemy.orm.session._SessionClassMethods`) _method_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) \_\_call\_\_(_\*\*local\_kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__call__ "Link to this definition") Produce a new [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object using the configuration established in this [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") . In Python, the `__call__` method is invoked on an object when it is “called” in the same way as a function: Session \= sessionmaker() session \= Session() \# invokes sessionmaker.\_\_call\_\_() _method_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) \_\_init\_\_(_bind=None_, _class\_=_, _autoflush=True_, _autocommit=False_, _expire\_on\_commit=True_, _info=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.__init__ "Link to this definition") Construct a new [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") . All arguments here except for `class_` correspond to arguments accepted by [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") directly. See the [`Session.__init__()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.__init__ "sqlalchemy.orm.Session.__init__") docstring for more details on parameters. Parameters: * **bind**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.bind) – a [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or other `Connectable` with which newly created [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects will be associated. * **class\_**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.class_) – class to use in order to create new [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects. Defaults to [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . * **autoflush**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.autoflush) – The autoflush setting to use with newly created [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects. * **autocommit**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.autocommit) – The autocommit setting to use with newly created [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects. * **expire\_on\_commit=True**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.expire_on_commit) – the [`Session.expire_on_commit`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.expire_on_commit "sqlalchemy.orm.Session") setting to use with newly created [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects. * **info**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.info) – optional dictionary of information that will be available via [`Session.info`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.info "sqlalchemy.orm.Session.info") . Note this dictionary is _updated_, not replaced, when the `info` parameter is specified to the specific [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") construction operation. * **\*\*kw**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.params.**kw) – all other keyword arguments are passed to the constructor of newly created [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects. _method_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) begin()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.begin "Link to this definition") Produce a context manager that both provides a new [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") as well as a transaction that commits. e.g.: Session \= sessionmaker(some\_engine) with Session.begin() as session: session.add(some\_object) \# commits transaction, closes session Added in version 1.4. _classmethod_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) close\_all()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.close_all "Link to this definition") _inherited from the_ `sqlalchemy.orm.session._SessionClassMethods.close_all` _method of_ `sqlalchemy.orm.session._SessionClassMethods` Close _all_ sessions in memory. Deprecated since version 1.3: The [`Session.close_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close_all "sqlalchemy.orm.Session.close_all") method is deprecated and will be removed in a future release. Please refer to `close_all_sessions()`. _method_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) configure(_\*\*new\_kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.configure "Link to this definition") (Re)configure the arguments for this sessionmaker. e.g.: Session \= sessionmaker() Session.configure(bind\=create\_engine('sqlite://')) _classmethod_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) identity\_key(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.identity_key "Link to this definition") _inherited from the_ `sqlalchemy.orm.session._SessionClassMethods.identity_key` _method of_ `sqlalchemy.orm.session._SessionClassMethods` Return an identity key. This is an alias of [`identity_key()`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.util.identity_key "sqlalchemy.orm.util.identity_key") . _classmethod_ [`sqlalchemy.orm.sessionmaker.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker) object\_session(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker.object_session "Link to this definition") _inherited from the_ `sqlalchemy.orm.session._SessionClassMethods.object_session` _method of_ `sqlalchemy.orm.session._SessionClassMethods` Return the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to which an object belongs. This is an alias of [`object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session "sqlalchemy.orm.object_session") . _class_ sqlalchemy.orm.ORMExecuteState(_session_, _statement_, _parameters_, _execution\_options_, _bind\_arguments_, _compile\_state\_cls_, _events\_todo_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "Link to this definition") Represents a call to the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method, as passed to the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event hook. Added in version 1.4. See also [Execute Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html#session-execute-events) - top level documentation on how to use [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") **Members** [session](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session) , [statement](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.statement) , [parameters](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.parameters) , [bind\_arguments](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments) , [local\_execution\_options](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options) , [execution\_options](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.execution_options) , [all\_mappers](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers) , [bind\_mapper](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper) , [invoke\_statement()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement) , [is\_column\_load](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load) , [is\_delete](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete) , [is\_insert](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert) , [is\_orm\_statement](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement) , [is\_relationship\_load](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load) , [is\_select](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select) , [is\_update](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update) , [lazy\_loaded\_from](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from) , [load\_options](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options) , [loader\_strategy\_path](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path) , [update\_delete\_options](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options) , [user\_defined\_options](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options) **Class signature** class [`sqlalchemy.orm.ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") (`sqlalchemy.util.langhelpers.MemoizedSlots`) _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) session[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.session "Link to this definition") The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") in use. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) statement[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.statement "Link to this definition") The SQL statement being invoked. For an ORM selection as would be retrieved from [`Query`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") , this is an instance of [`select`](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.select "sqlalchemy.future.select") that was generated from the ORM query. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) parameters[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.parameters "Link to this definition") Dictionary of parameters that was passed to [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") . _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) bind\_arguments[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments "Link to this definition") The dictionary passed as the [`Session.execute.bind_arguments`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.bind_arguments "sqlalchemy.orm.Session.execute") dictionary. This dictionary may be used by extensions to [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to pass arguments that will assist in determining amongst a set of database connections which one should be used to invoke this statement. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) local\_execution\_options[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.local_execution_options "Link to this definition") Dictionary view of the execution options passed to the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method. This does not include options that may be associated with the statement being invoked. See also [`ORMExecuteState.execution_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.execution_options "sqlalchemy.orm.ORMExecuteState.execution_options") _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) execution\_options[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.execution_options "Link to this definition") The complete dictionary of current execution options. This is a merge of the statement level options with the locally passed execution options. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) all\_mappers[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers "Link to this definition") Return a sequence of all [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") objects that are involved at the top level of this statement. By “top level” we mean those [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") objects that would be represented in the result set rows for a [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") query, or for a [`update()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.update "sqlalchemy.sql.expression.update") or [`delete()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.delete "sqlalchemy.sql.expression.delete") query, the mapper that is the main subject of the UPDATE or DELETE. Added in version 1.4.0b2. See also [`ORMExecuteState.bind_mapper`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper "sqlalchemy.orm.ORMExecuteState.bind_mapper") _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) bind\_mapper[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper "Link to this definition") Return the [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") that is the primary “bind” mapper. For an [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") object invoking an ORM statement, that is, the [`ORMExecuteState.is_orm_statement`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement "sqlalchemy.orm.ORMExecuteState.is_orm_statement") attribute is `True`, this attribute will return the [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") that is considered to be the “primary” mapper of the statement. The term “bind mapper” refers to the fact that a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object may be “bound” to multiple [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") objects keyed to mapped classes, and the “bind mapper” determines which of those [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") objects would be selected. For a statement that is invoked against a single mapped class, [`ORMExecuteState.bind_mapper`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_mapper "sqlalchemy.orm.ORMExecuteState.bind_mapper") is intended to be a reliable way of getting this mapper. Added in version 1.4.0b2. See also [`ORMExecuteState.all_mappers`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.all_mappers "sqlalchemy.orm.ORMExecuteState.all_mappers") _method_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) invoke\_statement(_statement\=None_, _params\=None_, _execution\_options\=None_, _bind\_arguments\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement "Link to this definition") Execute the statement represented by this [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") , without re-invoking events that have already proceeded. This method essentially performs a re-entrant execution of the current statement for which the [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") event is being currently invoked. The use case for this is for event handlers that want to override how the ultimate [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object is returned, such as for schemes that retrieve results from an offline cache or which concatenate results from multiple executions. When the [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object is returned by the actual handler function within [`SessionEvents.do_orm_execute()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.do_orm_execute "sqlalchemy.orm.SessionEvents.do_orm_execute") and is propagated to the calling [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method, the remainder of the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method is preempted and the [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object is returned to the caller of [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") immediately. Parameters: * **statement**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.statement) – optional statement to be invoked, in place of the statement currently represented by [`ORMExecuteState.statement`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.statement "sqlalchemy.orm.ORMExecuteState.statement") . * **params**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.params) – optional dictionary of parameters which will be merged into the existing [`ORMExecuteState.parameters`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.parameters "sqlalchemy.orm.ORMExecuteState.parameters") of this [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") . * **execution\_options**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.execution_options) – optional dictionary of execution options will be merged into the existing [`ORMExecuteState.execution_options`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.execution_options "sqlalchemy.orm.ORMExecuteState.execution_options") of this [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") . * **bind\_arguments**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement.params.bind_arguments) – optional dictionary of bind\_arguments which will be merged amongst the current [`ORMExecuteState.bind_arguments`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.bind_arguments "sqlalchemy.orm.ORMExecuteState.bind_arguments") of this [`ORMExecuteState`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState "sqlalchemy.orm.ORMExecuteState") . Returns: a [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object with ORM-level results. See also [Re-Executing Statements](https://docs.sqlalchemy.org/en/14/orm/session_events.html#do-orm-execute-re-executing) - background and examples on the appropriate usage of [`ORMExecuteState.invoke_statement()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.invoke_statement "sqlalchemy.orm.ORMExecuteState.invoke_statement") . _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_column\_load[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load "Link to this definition") Return True if the operation is refreshing column-oriented attributes on an existing ORM object. This occurs during operations such as [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh "sqlalchemy.orm.Session.refresh") , as well as when an attribute deferred by [`defer()`](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#sqlalchemy.orm.defer "sqlalchemy.orm.defer") is being loaded, or an attribute that was expired either directly by [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") or via a commit operation is being loaded. Handlers will very likely not want to add any options to queries when such an operation is occurring as the query should be a straight primary key fetch which should not have any additional WHERE criteria, and loader options travelling with the instance will have already been added to the query. Added in version 1.4.0b2. See also [`ORMExecuteState.is_relationship_load`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load "sqlalchemy.orm.ORMExecuteState.is_relationship_load") _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_delete[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_delete "Link to this definition") return True if this is a DELETE operation. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_insert[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_insert "Link to this definition") return True if this is an INSERT operation. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_orm\_statement[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_orm_statement "Link to this definition") return True if the operation is an ORM statement. This indicates that the select(), update(), or delete() being invoked contains ORM entities as subjects. For a statement that does not have ORM entities and instead refers only to [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") metadata, it is invoked as a Core SQL statement and no ORM-level automation takes place. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_relationship\_load[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_relationship_load "Link to this definition") Return True if this load is loading objects on behalf of a relationship. This means, the loader in effect is either a LazyLoader, SelectInLoader, SubqueryLoader, or similar, and the entire SELECT statement being emitted is on behalf of a relationship load. Handlers will very likely not want to add any options to queries when such an operation is occurring, as loader options are already capable of being propagated to relationship loaders and should be already present. See also [`ORMExecuteState.is_column_load`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_column_load "sqlalchemy.orm.ORMExecuteState.is_column_load") _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_select[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_select "Link to this definition") return True if this is a SELECT operation. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) is\_update[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.is_update "Link to this definition") return True if this is an UPDATE operation. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) lazy\_loaded\_from[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.lazy_loaded_from "Link to this definition") An [`InstanceState`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState") that is using this statement execution for a lazy load operation. The primary rationale for this attribute is to support the horizontal sharding extension, where it is available within specific query execution time hooks created by this extension. To that end, the attribute is only intended to be meaningful at **query execution time**, and importantly not any time prior to that, including query compilation time. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) load\_options[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.load_options "Link to this definition") Return the load\_options that will be used for this execution. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) loader\_strategy\_path[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.loader_strategy_path "Link to this definition") Return the `PathRegistry` for the current load path. This object represents the “path” in a query along relationships when a particular object or collection is being loaded. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) update\_delete\_options[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.update_delete_options "Link to this definition") Return the update\_delete\_options that will be used for this execution. _attribute_ [`sqlalchemy.orm.ORMExecuteState.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState) user\_defined\_options[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.ORMExecuteState.user_defined_options "Link to this definition") The sequence of `UserDefinedOptions` that have been associated with the statement being invoked. _class_ sqlalchemy.orm.Session(_bind\=None_, _autoflush\=True_, _future\=False_, _expire\_on\_commit\=True_, _autocommit\=False_, _twophase\=False_, _binds\=None_, _enable\_baked\_queries\=True_, _info\=None_, _query\_cls\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "Link to this definition") Manages persistence operations for ORM-mapped objects. The Session’s usage paradigm is described at [Using the Session](https://docs.sqlalchemy.org/en/14/orm/session.html) . **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.__init__) , [add()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add) , [add\_all()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all) , [begin()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin) , [begin\_nested()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested) , [bind\_mapper()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper) , [bind\_table()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table) , [bulk\_insert\_mappings()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings) , [bulk\_save\_objects()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects) , [bulk\_update\_mappings()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings) , [close()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close) , [close\_all()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close_all) , [commit()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit) , [connection()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection) , [delete()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete) , [deleted](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted) , [dirty](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty) , [enable\_relationship\_loading()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading) , [execute()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute) , [expire()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire) , [expire\_all()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all) , [expunge()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge) , [expunge\_all()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge_all) , [flush()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush) , [get()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get) , [get\_bind()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind) , [get\_nested\_transaction()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_nested_transaction) , [get\_transaction()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_transaction) , [identity\_key()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_key) , [identity\_map](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_map) , [in\_nested\_transaction()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_nested_transaction) , [in\_transaction()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_transaction) , [info](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.info) , [invalidate()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.invalidate) , [is\_active](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active) , [is\_modified()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified) , [merge()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge) , [new](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new) , [no\_autoflush](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.no_autoflush) , [object\_session()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.object_session) , [prepare()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.prepare) , [query()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query) , [refresh()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh) , [rollback()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback) , [scalar()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalar) , [scalars()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalars) , [transaction](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction) **Class signature** class [`sqlalchemy.orm.Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") (`sqlalchemy.orm.session._SessionClassMethods`) _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) \_\_init\_\_(_bind\=None_, _autoflush\=True_, _future\=False_, _expire\_on\_commit\=True_, _autocommit\=False_, _twophase\=False_, _binds\=None_, _enable\_baked\_queries\=True_, _info\=None_, _query\_cls\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.__init__ "Link to this definition") Construct a new Session. See also the [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") function which is used to generate a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") \-producing callable with a given set of arguments. Parameters: * **autocommit**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.autocommit) – Defaults to `False`. When `True`, the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") does not automatically begin transactions for individual statement executions, will acquire connections from the engine on an as-needed basis, releasing to the connection pool after each statement. Flushes will begin and commit (or possibly rollback) their own transaction if no transaction is present. When using this mode, the [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method may be used to explicitly start transactions, but the usual “autobegin” behavior is not present. * **autoflush**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.autoflush) – When `True`, all query operations will issue a [`Session.flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush "sqlalchemy.orm.Session.flush") call to this `Session` before proceeding. This is a convenience feature so that [`Session.flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush "sqlalchemy.orm.Session.flush") need not be called repeatedly in order for database queries to retrieve results. It’s typical that `autoflush` is used in conjunction with `autocommit=False`. In this scenario, explicit calls to [`Session.flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush "sqlalchemy.orm.Session.flush") are rarely needed; you usually only need to call [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") (which flushes) to finalize changes. See also [Flushing](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-flushing) - additional background on autoflush * **bind**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.bind) – An optional [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") to which this `Session` should be bound. When specified, all SQL operations performed by this session will execute via this connectable. * **binds**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.binds) – A dictionary which may specify any number of [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") objects as the source of connectivity for SQL operations on a per-entity basis. The keys of the dictionary consist of any series of mapped classes, arbitrary Python classes that are bases for mapped classes, [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") objects and [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") objects. The values of the dictionary are then instances of [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or less commonly [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") objects. Operations which proceed relative to a particular mapped class will consult this dictionary for the closest matching entity in order to determine which [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") should be used for a particular SQL operation. The complete heuristics for resolution are described at [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") . Usage looks like: Session \= sessionmaker(binds\={ SomeMappedClass: create\_engine('postgresql://engine1'), SomeDeclarativeBase: create\_engine('postgresql://engine2'), some\_mapper: create\_engine('postgresql://engine3'), some\_table: create\_engine('postgresql://engine4'), }) See also [Partitioning Strategies (e.g. multiple database backends per Session)](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#session-partitioning) [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper "sqlalchemy.orm.Session.bind_mapper") [`Session.bind_table()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table "sqlalchemy.orm.Session.bind_table") [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") * **class\_**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.class_) – Specify an alternate class other than `sqlalchemy.orm.session.Session` which should be used by the returned class. This is the only argument that is local to the [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") function, and is not sent directly to the constructor for `Session`. * **enable\_baked\_queries**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.enable_baked_queries) – defaults to `True`. A flag consumed by the [`sqlalchemy.ext.baked`](https://docs.sqlalchemy.org/en/14/orm/extensions/baked.html#module-sqlalchemy.ext.baked "sqlalchemy.ext.baked") extension to determine if “baked queries” should be cached, as is the normal operation of this extension. When set to `False`, caching as used by this particular extension is disabled. Changed in version 1.4: The `sqlalchemy.ext.baked` extension is legacy and is not used by any of SQLAlchemy’s internals. This flag therefore only affects applications that are making explicit use of this extension within their own code. * **expire\_on\_commit**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.expire_on_commit) – Defaults to `True`. When `True`, all instances will be fully expired after each [`commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") , so that all attribute/object access subsequent to a completed transaction will load from the most recent database state. > See also > > [Committing](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-committing) * **future**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.future) – if True, use 2.0 style transactional and engine behavior. Future mode includes the following behaviors: * The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") will not use “bound” metadata in order to locate an [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") ; the engine or engines in use must be specified to the constructor of [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") or otherwise be configured against the [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") in use * The “subtransactions” feature of [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") is removed in version 2.0 and is disabled when the future flag is set. * The behavior of the [`relationship.cascade_backrefs`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.cascade_backrefs "sqlalchemy.orm.relationship") flag on a [`relationship()`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") will always assume “False” behavior. Added in version 1.4. See also [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html) * **info**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.info) – optional dictionary of arbitrary data to be associated with this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . Is available via the [`Session.info`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.info "sqlalchemy.orm.Session.info") attribute. Note the dictionary is copied at construction time so that modifications to the per- [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") dictionary will be local to that [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . * **query\_cls**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.query_cls) – Class which should be used to create new Query objects, as returned by the [`Session.query()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query "sqlalchemy.orm.Session.query") method. Defaults to [`Query`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") . * **twophase**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.twophase) – When `True`, all transactions will be started as a “two phase” transaction, i.e. using the “two phase” semantics of the database in use along with an XID. During a [`commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") , after [`flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush "sqlalchemy.orm.Session.flush") has been issued for all attached databases, the [`TwoPhaseTransaction.prepare()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction.prepare "sqlalchemy.engine.TwoPhaseTransaction.prepare") method on each database’s [`TwoPhaseTransaction`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction "sqlalchemy.engine.TwoPhaseTransaction") will be called. This allows each database to roll back the entire transaction, before each transaction is committed. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) add(_instance_, _\_warn\=True_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "Link to this definition") Place an object into this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . Objects that are in the [transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient) state when passed to the [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") method will move to the [pending](https://docs.sqlalchemy.org/en/14/glossary.html#term-pending) state, until the next flush, at which point they will move to the [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) state. Objects that are in the [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) state when passed to the [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") method will move to the [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) state directly. If the transaction used by the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is rolled back, objects which were transient when they were passed to [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") will be moved back to the [transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient) state, and will no longer be present within this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . See also [`Session.add_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all "sqlalchemy.orm.Session.add_all") [Adding New or Existing Items](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-adding) - at [Basics of Using a Session](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#id1) _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) add\_all(_instances_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all "Link to this definition") Add the given collection of instances to this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . See the documentation for [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") for a general behavioral description. See also [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") [Adding New or Existing Items](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-adding) - at [Basics of Using a Session](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#id1) _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) begin(_subtransactions\=False_, _nested\=False_, _\_subtrans\=False_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "Link to this definition") Begin a transaction, or nested transaction, on this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , if one is not already begun. The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object features **autobegin** behavior, so that normally it is not necessary to call the [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") method explicitly. However, it may be used in order to control the scope of when the transactional state is begun. When used to begin the outermost transaction, an error is raised if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is already inside of a transaction. Parameters: * **nested**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin.params.nested) – if True, begins a SAVEPOINT transaction and is equivalent to calling [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") . For documentation on SAVEPOINT transactions, please see [Using SAVEPOINT](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#session-begin-nested) . * **subtransactions**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin.params.subtransactions) – if True, indicates that this [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") can create a “subtransaction”. Returns: the [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") object. Note that [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") acts as a Python context manager, allowing [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") to be used in a “with” block. See [Explicit Begin](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#session-autocommit) for an example. See also [Auto Begin](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-autobegin) [Managing Transactions](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#unitofwork-transaction) [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) begin\_nested()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "Link to this definition") Begin a “nested” transaction on this Session, e.g. SAVEPOINT. The target database(s) and associated drivers must support SQL SAVEPOINT for this method to function correctly. For documentation on SAVEPOINT transactions, please see [Using SAVEPOINT](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#session-begin-nested) . Returns: the [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") object. Note that [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") acts as a context manager, allowing [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") to be used in a “with” block. See [Using SAVEPOINT](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#session-begin-nested) for a usage example. See also [Using SAVEPOINT](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#session-begin-nested) [Serializable isolation / Savepoints / Transactional DDL](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#pysqlite-serializable) - special workarounds required with the SQLite driver in order for SAVEPOINT to work correctly. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) bind\_mapper(_mapper_, _bind_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper "Link to this definition") Associate a [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") or arbitrary Python class with a “bind”, e.g. an [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") . The given entity is added to a lookup used by the [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") method. Parameters: * **mapper**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper.params.mapper) – a [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") object, or an instance of a mapped class, or any Python class that is the base of a set of mapped classes. * **bind**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper.params.bind) – an [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object. See also [Partitioning Strategies (e.g. multiple database backends per Session)](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#session-partitioning) [`Session.binds`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.binds "sqlalchemy.orm.Session") [`Session.bind_table()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table "sqlalchemy.orm.Session.bind_table") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) bind\_table(_table_, _bind_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table "Link to this definition") Associate a [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") with a “bind”, e.g. an [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") . The given [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") is added to a lookup used by the [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") method. Parameters: * **table**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table.params.table) – a [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") object, which is typically the target of an ORM mapping, or is present within a selectable that is mapped. * **bind**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table.params.bind) – an [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") or [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object. See also [Partitioning Strategies (e.g. multiple database backends per Session)](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#session-partitioning) [`Session.binds`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.binds "sqlalchemy.orm.Session") [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper "sqlalchemy.orm.Session.bind_mapper") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) bulk\_insert\_mappings(_mapper_, _mappings_, _return\_defaults\=False_, _render\_nulls\=False_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings "Link to this definition") Perform a bulk insert of the given list of mapping dictionaries. The bulk insert feature allows plain Python dictionaries to be used as the source of simple INSERT operations which can be more easily grouped together into higher performing “executemany” operations. Using dictionaries, there is no “history” or session state management features in use, reducing latency when inserting large numbers of simple rows. The values within the dictionaries as given are typically passed without modification into Core [`sqlalchemy.sql.expression.Insert()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert "sqlalchemy.sql.expression.Insert") constructs, after organizing the values within them across the tables to which the given mapper is mapped. Added in version 1.0.0. Legacy Feature The bulk insert feature allows for a lower-latency INSERT of rows at the expense of most other unit-of-work features. Features such as object management, relationship handling, and SQL clause support are silently omitted in favor of raw INSERT of records. In SQLAlchemy 2.0, improved versions of the bulk insert/update methods are introduced, with clearer behavior and documentation, new capabilities, and much better performance. For 1.4 use, **please read the list of caveats at** [ORM Compatibility / Caveats](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations-caveats) **before using this method, and fully test and confirm the functionality of all code developed using these systems.** Parameters: * **mapper**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.mapper) – a mapped class, or the actual [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") object, representing the single kind of object represented within the mapping list. * **mappings**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.mappings) – a sequence of dictionaries, each one containing the state of the mapped row to be inserted, in terms of the attribute names on the mapped class. If the mapping refers to multiple tables, such as a joined-inheritance mapping, each dictionary must contain all keys to be populated into all tables. * **return\_defaults**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.return_defaults) – when True, rows that are missing values which generate defaults, namely integer primary key defaults and sequences, will be inserted **one at a time**, so that the primary key value is available. In particular this will allow joined-inheritance and other multi-table mappings to insert correctly without the need to provide primary key values ahead of time; however, [`Session.bulk_insert_mappings.return_defaults`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.return_defaults "sqlalchemy.orm.Session.bulk_insert_mappings") **greatly reduces the performance gains** of the method overall. If the rows to be inserted only refer to a single table, then there is no reason this flag should be set as the returned default information is not used. * **render\_nulls**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings.params.render_nulls) – When True, a value of `None` will result in a NULL value being included in the INSERT statement, rather than the column being omitted from the INSERT. This allows all the rows being INSERTed to have the identical set of columns which allows the full set of rows to be batched to the DBAPI. Normally, each column-set that contains a different combination of NULL values than the previous row must omit a different series of columns from the rendered INSERT statement, which means it must be emitted as a separate statement. By passing this flag, the full set of rows are guaranteed to be batchable into one batch; the cost however is that server-side defaults which are invoked by an omitted column will be skipped, so care must be taken to ensure that these are not necessary. Warning When this flag is set, **server side default SQL values will not be invoked** for those columns that are inserted as NULL; the NULL value will be sent explicitly. Care must be taken to ensure that no server-side default functions need to be invoked for the operation as a whole. Added in version 1.1. See also [Bulk Operations](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations) [`Session.bulk_save_objects()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects "sqlalchemy.orm.Session.bulk_save_objects") [`Session.bulk_update_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings "sqlalchemy.orm.Session.bulk_update_mappings") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) bulk\_save\_objects(_objects_, _return\_defaults\=False_, _update\_changed\_only\=True_, _preserve\_order\=True_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects "Link to this definition") Perform a bulk save of the given list of objects. The bulk save feature allows mapped objects to be used as the source of simple INSERT and UPDATE operations which can be more easily grouped together into higher performing “executemany” operations; the extraction of data from the objects is also performed using a lower-latency process that ignores whether or not attributes have actually been modified in the case of UPDATEs, and also ignores SQL expressions. The objects as given are not added to the session and no additional state is established on them. If the [`Session.bulk_save_objects.return_defaults`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.return_defaults "sqlalchemy.orm.Session.bulk_save_objects") flag is set, then server-generated primary key values will be assigned to the returned objects, but **not server side defaults**; this is a limitation in the implementation. If stateful objects are desired, please use the standard [`Session.add_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all "sqlalchemy.orm.Session.add_all") approach or as an alternative newer mass-insert features such as [Using INSERT, UPDATE and ON CONFLICT (i.e. upsert) to return ORM Objects](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#orm-dml-returning-objects) . Legacy Feature The bulk save feature allows for a lower-latency INSERT/UPDATE of rows at the expense of most other unit-of-work features. Features such as object management, relationship handling, and SQL clause support are silently omitted in favor of raw INSERT/UPDATES of records. In SQLAlchemy 2.0, improved versions of the bulk insert/update methods are introduced, with clearer behavior and documentation, new capabilities, and much better performance. For 1.4 use, **please read the list of caveats at** [ORM Compatibility / Caveats](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations-caveats) **before using this method, and fully test and confirm the functionality of all code developed using these systems.** Parameters: * **objects**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.objects) – a sequence of mapped object instances. The mapped objects are persisted as is, and are **not** associated with the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") afterwards. For each object, whether the object is sent as an INSERT or an UPDATE is dependent on the same rules used by the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") in traditional operation; if the object has the `InstanceState.key` attribute set, then the object is assumed to be “detached” and will result in an UPDATE. Otherwise, an INSERT is used. In the case of an UPDATE, statements are grouped based on which attributes have changed, and are thus to be the subject of each SET clause. If `update_changed_only` is False, then all attributes present within each object are applied to the UPDATE statement, which may help in allowing the statements to be grouped together into a larger executemany(), and will also reduce the overhead of checking history on attributes. * **return\_defaults**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.return_defaults) – when True, rows that are missing values which generate defaults, namely integer primary key defaults and sequences, will be inserted **one at a time**, so that the primary key value is available. In particular this will allow joined-inheritance and other multi-table mappings to insert correctly without the need to provide primary key values ahead of time; however, [`Session.bulk_save_objects.return_defaults`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.return_defaults "sqlalchemy.orm.Session.bulk_save_objects") **greatly reduces the performance gains** of the method overall. It is strongly advised to please use the standard [`Session.add_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add_all "sqlalchemy.orm.Session.add_all") approach. * **update\_changed\_only**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.update_changed_only) – when True, UPDATE statements are rendered based on those attributes in each state that have logged changes. When False, all attributes present are rendered into the SET clause with the exception of primary key attributes. * **preserve\_order**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects.params.preserve_order) – when True, the order of inserts and updates matches exactly the order in which the objects are given. When False, common types of objects are grouped into inserts and updates, to allow for more batching opportunities. Added in version 1.3. See also [Bulk Operations](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations) [`Session.bulk_insert_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings "sqlalchemy.orm.Session.bulk_insert_mappings") [`Session.bulk_update_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings "sqlalchemy.orm.Session.bulk_update_mappings") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) bulk\_update\_mappings(_mapper_, _mappings_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings "Link to this definition") Perform a bulk update of the given list of mapping dictionaries. The bulk update feature allows plain Python dictionaries to be used as the source of simple UPDATE operations which can be more easily grouped together into higher performing “executemany” operations. Using dictionaries, there is no “history” or session state management features in use, reducing latency when updating large numbers of simple rows. Added in version 1.0.0. Legacy Feature The bulk update feature allows for a lower-latency UPDATE of rows at the expense of most other unit-of-work features. Features such as object management, relationship handling, and SQL clause support are silently omitted in favor of raw UPDATES of records. In SQLAlchemy 2.0, improved versions of the bulk insert/update methods are introduced, with clearer behavior and documentation, new capabilities, and much better performance. For 1.4 use, **please read the list of caveats at** [ORM Compatibility / Caveats](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations-caveats) **before using this method, and fully test and confirm the functionality of all code developed using these systems.** Parameters: * **mapper**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings.params.mapper) – a mapped class, or the actual [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") object, representing the single kind of object represented within the mapping list. * **mappings**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_update_mappings.params.mappings) – a sequence of dictionaries, each one containing the state of the mapped row to be updated, in terms of the attribute names on the mapped class. If the mapping refers to multiple tables, such as a joined-inheritance mapping, each dictionary may contain keys corresponding to all tables. All those keys which are present and are not part of the primary key are applied to the SET clause of the UPDATE statement; the primary key values, which are required, are applied to the WHERE clause. See also [Bulk Operations](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#bulk-operations) [`Session.bulk_insert_mappings()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_insert_mappings "sqlalchemy.orm.Session.bulk_insert_mappings") [`Session.bulk_save_objects()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bulk_save_objects "sqlalchemy.orm.Session.bulk_save_objects") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) close()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "Link to this definition") Close out the transactional resources and ORM objects used by this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . This expunges all ORM objects associated with this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , ends any transaction in progress and [releases](https://docs.sqlalchemy.org/en/14/glossary.html#term-releases) any [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") objects which this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") itself has checked out from associated [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") objects. The operation then leaves the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") in a state which it may be used again. Tip The [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") method **does not prevent the Session from being used again**. The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") itself does not actually have a distinct “closed” state; it merely means the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") will release all database connections and ORM objects. Changed in version 1.4: The [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") method does not immediately create a new [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") object; instead, the new [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") is created only if the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is used again for a database operation. See also [Closing](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-closing) - detail on the semantics of [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") _classmethod_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) close\_all()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close_all "Link to this definition") _inherited from the_ `sqlalchemy.orm.session._SessionClassMethods.close_all` _method of_ `sqlalchemy.orm.session._SessionClassMethods` Close _all_ sessions in memory. Deprecated since version 1.3: The [`Session.close_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close_all "sqlalchemy.orm.Session.close_all") method is deprecated and will be removed in a future release. Please refer to `close_all_sessions()`. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) commit()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "Link to this definition") Flush pending changes and commit the current transaction. When the COMMIT operation is complete, all objects are fully [expired](https://docs.sqlalchemy.org/en/14/glossary.html#term-expired) , erasing their internal contents, which will be automatically re-loaded when the objects are next accessed. In the interim, these objects are in an expired state and will not function if they are [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) from the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . Additionally, this re-load operation is not supported when using asyncio-oriented APIs. The [`Session.expire_on_commit`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.expire_on_commit "sqlalchemy.orm.Session") parameter may be used to disable this behavior. When there is no transaction in place for the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , indicating that no operations were invoked on this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") since the previous call to [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") , the method will begin and commit an internal-only “logical” transaction, that does not normally affect the database unless pending flush changes were detected, but will still invoke event handlers and object expiration rules. If [1.x-style](https://docs.sqlalchemy.org/en/14/glossary.html#term-0) use is in effect and there are currently SAVEPOINTs in progress via [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") , the operation will release the current SAVEPOINT but not commit the outermost database transaction. If [2.0-style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1) use is in effect via the [`Session.future`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.future "sqlalchemy.orm.Session") flag, the outermost database transaction is committed unconditionally, automatically releasing any SAVEPOINTs in effect. When using legacy “autocommit” mode, this method is only valid to call if a transaction is actually in progress, else an error is raised. Similarly, when using legacy “subtransactions”, the method will instead close out the current “subtransaction”, rather than the actual database transaction, if a transaction is in progress. See also [Committing](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-committing) [Managing Transactions](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#unitofwork-transaction) [Preventing Implicit IO when Using AsyncSession](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#asyncio-orm-avoid-lazyloads) _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) connection(_bind\_arguments\=None_, _close\_with\_result\=False_, _execution\_options\=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection "Link to this definition") Return a [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object corresponding to this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s transactional state. If this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is configured with `autocommit=False`, either the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") corresponding to the current transaction is returned, or if no transaction is in progress, a new one is begun and the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") returned (note that no transactional state is established with the DBAPI until the first SQL statement is emitted). Alternatively, if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is configured with `autocommit=True`, an ad-hoc [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") is returned using [`Engine.connect()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.connect "sqlalchemy.engine.Engine.connect") on the underlying [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") . Ambiguity in multi-bind or unbound [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects can be resolved through any of the optional keyword arguments. This ultimately makes usage of the [`get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") method for resolution. Parameters: * **bind\_arguments**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.bind_arguments) – dictionary of bind arguments. May include “mapper”, “bind”, “clause”, other custom arguments that are passed to [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") . * **bind**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.bind) – deprecated; use bind\_arguments * **mapper**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.mapper) – deprecated; use bind\_arguments * **clause**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.clause) – deprecated; use bind\_arguments * **close\_with\_result**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.close_with_result) – Passed to [`Engine.connect()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine.connect "sqlalchemy.engine.Engine.connect") , indicating the [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") should be considered “single use”, automatically closing when the first result set is closed. This flag only has an effect if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is configured with `autocommit=True` and does not already have a transaction in progress. Deprecated since version 1.4: this parameter is deprecated and will be removed in SQLAlchemy 2.0 * **execution\_options**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.execution_options) – a dictionary of execution options that will be passed to [`Connection.execution_options()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options "sqlalchemy.engine.Connection.execution_options") , **when the connection is first procured only**. If the connection is already present within the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , a warning is emitted and the arguments are ignored. See also [Setting Transaction Isolation Levels / DBAPI AUTOCOMMIT](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#session-transaction-isolation) * **\*\*kw**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.connection.params.**kw) – deprecated; use bind\_arguments _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) delete(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete "Link to this definition") Mark an instance as deleted. The object is assumed to be either [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) or [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) when passed; after the method is called, the object will remain in the [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) state until the next flush proceeds. During this time, the object will also be a member of the [`Session.deleted`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted "sqlalchemy.orm.Session.deleted") collection. When the next flush proceeds, the object will move to the [deleted](https://docs.sqlalchemy.org/en/14/glossary.html#term-deleted) state, indicating a `DELETE` statement was emitted for its row within the current transaction. When the transaction is successfully committed, the deleted object is moved to the [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) state and is no longer present within this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . See also [Deleting](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-deleting) - at [Basics of Using a Session](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#id1) _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) deleted[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.deleted "Link to this definition") The set of all instances marked as ‘deleted’ within this `Session` _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) dirty[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "Link to this definition") The set of all persistent instances considered dirty. E.g.: some\_mapped\_object in session.dirty Instances are considered dirty when they were modified but not deleted. Note that this ‘dirty’ calculation is ‘optimistic’; most attribute-setting or collection modification operations will mark an instance as ‘dirty’ and place it in this set, even if there is no net change to the attribute’s value. At flush time, the value of each attribute is compared to its previously saved value, and if there’s no net change, no SQL operation will occur (this is a more expensive operation so it’s only done at flush time). To check if an instance has actionable net changes to its attributes, use the [`Session.is_modified()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified "sqlalchemy.orm.Session.is_modified") method. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) enable\_relationship\_loading(_obj_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "Link to this definition") Associate an object with this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") for related object loading. Warning [`enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "sqlalchemy.orm.Session.enable_relationship_loading") exists to serve special use cases and is not recommended for general use. Accesses of attributes mapped with [`relationship()`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") will attempt to load a value from the database using this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") as the source of connectivity. The values will be loaded based on foreign key and primary key values present on this object - if not present, then those relationships will be unavailable. The object will be attached to this session, but will **not** participate in any persistence operations; its state for almost all purposes will remain either “transient” or “detached”, except for the case of relationship loading. Also note that backrefs will often not work as expected. Altering a relationship-bound attribute on the target object may not fire off a backref event, if the effective value is what was already loaded from a foreign-key-holding value. The [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "sqlalchemy.orm.Session.enable_relationship_loading") method is similar to the `load_on_pending` flag on [`relationship()`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") . Unlike that flag, [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "sqlalchemy.orm.Session.enable_relationship_loading") allows an object to remain transient while still being able to load related items. To make a transient object associated with a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") via [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "sqlalchemy.orm.Session.enable_relationship_loading") pending, add it to the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") using [`Session.add()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.add "sqlalchemy.orm.Session.add") normally. If the object instead represents an existing identity in the database, it should be merged using [`Session.merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge "sqlalchemy.orm.Session.merge") . [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "sqlalchemy.orm.Session.enable_relationship_loading") does not improve behavior when the ORM is used normally - object references should be constructed at the object level, not at the foreign key level, so that they are present in an ordinary way before flush() proceeds. This method is not intended for general use. See also [`relationship.load_on_pending`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.load_on_pending "sqlalchemy.orm.relationship") - this flag allows per-relationship loading of many-to-ones on items that are pending. [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached "sqlalchemy.orm.make_transient_to_detached") - allows for an object to be added to a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") without SQL emitted, which then will unexpire attributes on access. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) execute(_statement_, _params\=None_, _execution\_options\={}_, _bind\_arguments\=None_, _\_parent\_execute\_state\=None_, _\_add\_event\=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "Link to this definition") Execute a SQL expression construct. Returns a [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object representing results of the statement execution. E.g.: from sqlalchemy import select result \= session.execute( select(User).where(User.id \== 5) ) The API contract of [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") is similar to that of [`Connection.execute()`](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Connection.execute "sqlalchemy.future.Connection.execute") , the [2.0 style](https://docs.sqlalchemy.org/en/14/glossary.html#term-2.0-style) version of [`Connection`](https://docs.sqlalchemy.org/en/14/core/future.html#sqlalchemy.future.Connection "sqlalchemy.future.Connection") . Changed in version 1.4: the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method is now the primary point of ORM statement execution when using [2.0 style](https://docs.sqlalchemy.org/en/14/glossary.html#term-2.0-style) ORM usage. Parameters: * **statement**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.statement) – An executable statement (i.e. an [`Executable`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Executable "sqlalchemy.sql.expression.Executable") expression such as [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") ). * **params**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.params) – Optional dictionary, or list of dictionaries, containing bound parameter values. If a single dictionary, single-row execution occurs; if a list of dictionaries, an “executemany” will be invoked. The keys in each dictionary must correspond to parameter names present in the statement. * **execution\_options**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.execution_options) – optional dictionary of execution options, which will be associated with the statement execution. This dictionary can provide a subset of the options that are accepted by [`Connection.execution_options()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options "sqlalchemy.engine.Connection.execution_options") , and may also provide additional options understood only in an ORM context. * **bind\_arguments**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.bind_arguments) – dictionary of additional arguments to determine the bind. May include “mapper”, “bind”, or other custom arguments. Contents of this dictionary are passed to the [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") method. * **mapper**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.mapper) – deprecated; use the bind\_arguments dictionary * **bind**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.bind) – deprecated; use the bind\_arguments dictionary * **\*\*kw**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute.params.**kw) – deprecated; use the bind\_arguments dictionary Returns: a [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result "sqlalchemy.engine.Result") object. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) expire(_instance_, _attribute\_names\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "Link to this definition") Expire the attributes on an instance. Marks the attributes of an instance as out of date. When an expired attribute is next accessed, a query will be issued to the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s current transactional context in order to load all expired attributes for the given instance. Note that a highly isolated transaction will return the same values as were previously read in that same transaction, regardless of changes in database state outside of that transaction. To expire all objects in the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") simultaneously, use [`Session.expire_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all "sqlalchemy.orm.Session.expire_all") . The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s default behavior is to expire all state whenever the [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") or [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") methods are called, so that new state can be loaded for the new transaction. For this reason, calling [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") only makes sense for the specific case that a non-ORM SQL statement was emitted in the current transaction. Parameters: * **instance**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire.params.instance) – The instance to be refreshed. * **attribute\_names**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire.params.attribute_names) – optional list of string attribute names indicating a subset of attributes to be expired. See also [Refreshing / Expiring](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html#session-expire) - introductory material [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh "sqlalchemy.orm.Session.refresh") [`Query.populate_existing()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.populate_existing "sqlalchemy.orm.Query.populate_existing") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) expire\_all()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all "Link to this definition") Expires all persistent instances within this Session. When any attributes on a persistent instance is next accessed, a query will be issued using the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s current transactional context in order to load all expired attributes for the given instance. Note that a highly isolated transaction will return the same values as were previously read in that same transaction, regardless of changes in database state outside of that transaction. To expire individual objects and individual attributes on those objects, use [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") . The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") object’s default behavior is to expire all state whenever the [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") or [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") methods are called, so that new state can be loaded for the new transaction. For this reason, calling [`Session.expire_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all "sqlalchemy.orm.Session.expire_all") should not be needed when autocommit is `False`, assuming the transaction is isolated. See also [Refreshing / Expiring](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html#session-expire) - introductory material [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh "sqlalchemy.orm.Session.refresh") [`Query.populate_existing()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.populate_existing "sqlalchemy.orm.Query.populate_existing") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) expunge(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge "Link to this definition") Remove the instance from this `Session`. This will free all internal references to the instance. Cascading will be applied according to the _expunge_ cascade rule. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) expunge\_all()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expunge_all "Link to this definition") Remove all object instances from this `Session`. This is equivalent to calling `expunge(obj)` on all objects in this `Session`. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) flush(_objects\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush "Link to this definition") Flush all the object changes to the database. Writes out all pending object creations, deletions and modifications to the database as INSERTs, DELETEs, UPDATEs, etc. Operations are automatically ordered by the Session’s unit of work dependency solver. Database operations will be issued in the current transactional context and do not affect the state of the transaction, unless an error occurs, in which case the entire transaction is rolled back. You may flush() as often as you like within a transaction to move changes from Python to the database’s transaction buffer. For `autocommit` Sessions with no active manual transaction, flush() will create a transaction on the fly that surrounds the entire set of operations into the flush. Parameters: **objects**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush.params.objects) – Optional; restricts the flush operation to operate only on elements that are in the given collection. This feature is for an extremely narrow set of use cases where particular objects may need to be operated upon before the full flush() occurs. It is not intended for general use. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) get(_entity_, _ident_, _options\=None_, _populate\_existing\=False_, _with\_for\_update\=None_, _identity\_token\=None_, _execution\_options\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get "Link to this definition") Return an instance based on the given primary key identifier, or `None` if not found. E.g.: my\_user \= session.get(User, 5) some\_object \= session.get(VersionedFoo, (5, 10)) some\_object \= session.get( VersionedFoo, {"id": 5, "version\_id": 10} ) Added in version 1.4: Added [`Session.get()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get "sqlalchemy.orm.Session.get") , which is moved from the now deprecated [`Query.get()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.get "sqlalchemy.orm.Query.get") method. [`Session.get()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get "sqlalchemy.orm.Session.get") is special in that it provides direct access to the identity map of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . If the given primary key identifier is present in the local identity map, the object is returned directly from this collection and no SQL is emitted, unless the object has been marked fully expired. If not present, a SELECT is performed in order to locate the object. [`Session.get()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get "sqlalchemy.orm.Session.get") also will perform a check if the object is present in the identity map and marked as expired - a SELECT is emitted to refresh the object as well as to ensure that the row is still present. If not, [`ObjectDeletedError`](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.ObjectDeletedError "sqlalchemy.orm.exc.ObjectDeletedError") is raised. Parameters: * **entity**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.entity) – a mapped class or [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") indicating the type of entity to be loaded. * **ident**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.ident) – A scalar, tuple, or dictionary representing the primary key. For a composite (e.g. multiple column) primary key, a tuple or dictionary should be passed. For a single-column primary key, the scalar calling form is typically the most expedient. If the primary key of a row is the value “5”, the call looks like: my\_object \= session.get(SomeClass, 5) The tuple form contains primary key values typically in the order in which they correspond to the mapped [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") object’s primary key columns, or if the [`Mapper.primary_key`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.params.primary_key "sqlalchemy.orm.Mapper") configuration parameter were used, in the order used for that parameter. For example, if the primary key of a row is represented by the integer digits “5, 10” the call would look like: my\_object \= session.get(SomeClass, (5, 10)) The dictionary form should include as keys the mapped attribute names corresponding to each element of the primary key. If the mapped class has the attributes `id`, `version_id` as the attributes which store the object’s primary key value, the call would look like: my\_object \= session.get(SomeClass, {"id": 5, "version\_id": 10}) * **options**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.options) – optional sequence of loader options which will be applied to the query, if one is emitted. * **populate\_existing**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.populate_existing) – causes the method to unconditionally emit a SQL query and refresh the object with the newly loaded data, regardless of whether or not the object is already present. * **with\_for\_update**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.with_for_update) – optional boolean `True` indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECT; flags should match the parameters of [`Query.with_for_update()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_for_update "sqlalchemy.orm.Query.with_for_update") . Supersedes the [`Session.refresh.lockmode`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh.params.lockmode "sqlalchemy.orm.Session.refresh") parameter. * **execution\_options**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get.params.execution_options) – optional dictionary of execution options, which will be associated with the query execution if one is emitted. This dictionary can provide a subset of the options that are accepted by [`Connection.execution_options()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execution_options "sqlalchemy.engine.Connection.execution_options") , and may also provide additional options understood only in an ORM context. Added in version 1.4.29. See also [ORM Execution Options](https://docs.sqlalchemy.org/en/14/orm/queryguide.html#orm-queryguide-execution-options) - ORM-specific execution options Returns: The object instance, or `None`. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) get\_bind(_mapper\=None_, _clause\=None_, _bind\=None_, _\_sa\_skip\_events\=None_, _\_sa\_skip\_for\_implicit\_returning\=False_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "Link to this definition") Return a “bind” to which this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is bound. The “bind” is usually an instance of [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") , except in the case where the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") has been explicitly bound directly to a [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") . For a multiply-bound or unbound [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , the `mapper` or `clause` arguments are used to determine the appropriate bind to return. Note that the “mapper” argument is usually present when [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") is called via an ORM operation such as a [`Session.query()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query "sqlalchemy.orm.Session.query") , each individual INSERT/UPDATE/DELETE operation within a [`Session.flush()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.flush "sqlalchemy.orm.Session.flush") , call, etc. The order of resolution is: 1. if mapper given and [`Session.binds`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.binds "sqlalchemy.orm.Session") is present, locate a bind based first on the mapper in use, then on the mapped class in use, then on any base classes that are present in the `__mro__` of the mapped class, from more specific superclasses to more general. 2. if clause given and `Session.binds` is present, locate a bind based on [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") objects found in the given clause present in `Session.binds`. 3. if `Session.binds` is present, return that. 4. if clause given, attempt to return a bind linked to the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") ultimately associated with the clause. 5. if mapper given, attempt to return a bind linked to the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") ultimately associated with the [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") or other selectable to which the mapper is mapped. 6. No bind can be found, [`UnboundExecutionError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.UnboundExecutionError "sqlalchemy.exc.UnboundExecutionError") is raised. Note that the [`Session.get_bind()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind "sqlalchemy.orm.Session.get_bind") method can be overridden on a user-defined subclass of [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to provide any kind of bind resolution scheme. See the example at [Custom Vertical Partitioning](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#session-custom-partitioning) . Parameters: * **mapper**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind.params.mapper) – Optional [`mapper()`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.mapper "sqlalchemy.orm.mapper") mapped class or instance of [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") . The bind can be derived from a [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") first by consulting the “binds” map associated with this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") , and secondly by consulting the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") associated with the [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") to which the [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") is mapped for a bind. * **clause**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_bind.params.clause) – A [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") (i.e. [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") , [`text()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") , etc.). If the `mapper` argument is not present or could not produce a bind, the given expression construct will be searched for a bound element, typically a [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") associated with bound [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") . See also [Partitioning Strategies (e.g. multiple database backends per Session)](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#session-partitioning) [`Session.binds`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.binds "sqlalchemy.orm.Session") [`Session.bind_mapper()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_mapper "sqlalchemy.orm.Session.bind_mapper") [`Session.bind_table()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.bind_table "sqlalchemy.orm.Session.bind_table") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) get\_nested\_transaction()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_nested_transaction "Link to this definition") Return the current nested transaction in progress, if any. Added in version 1.4. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) get\_transaction()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_transaction "Link to this definition") Return the current root transaction in progress, if any. Added in version 1.4. _classmethod_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) identity\_key(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_key "Link to this definition") _inherited from the_ `sqlalchemy.orm.session._SessionClassMethods.identity_key` _method of_ `sqlalchemy.orm.session._SessionClassMethods` Return an identity key. This is an alias of [`identity_key()`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.util.identity_key "sqlalchemy.orm.util.identity_key") . _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) identity\_map _\= None_[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.identity_map "Link to this definition") A mapping of object identities to objects themselves. Iterating through `Session.identity_map.values()` provides access to the full set of persistent objects (i.e., those that have row identity) currently in the session. See also [`identity_key()`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.util.identity_key "sqlalchemy.orm.util.identity_key") - helper function to produce the keys used in this dictionary. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) in\_nested\_transaction()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_nested_transaction "Link to this definition") Return True if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") has begun a nested transaction, e.g. SAVEPOINT. Added in version 1.4. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) in\_transaction()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_transaction "Link to this definition") Return True if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") has begun a transaction. Added in version 1.4. See also [`Session.is_active`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active "sqlalchemy.orm.Session.is_active") _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) info[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.info "Link to this definition") A user-modifiable dictionary. The initial value of this dictionary can be populated using the `info` argument to the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") constructor or [`sessionmaker`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.sessionmaker "sqlalchemy.orm.sessionmaker") constructor or factory methods. The dictionary here is always local to this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") and can be modified independently of all other [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) invalidate()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.invalidate "Link to this definition") Close this Session, using connection invalidation. This is a variant of [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") that will additionally ensure that the [`Connection.invalidate()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.invalidate "sqlalchemy.engine.Connection.invalidate") method will be called on each [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") object that is currently in use for a transaction (typically there is only one connection unless the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is used with multiple engines). This can be called when the database is known to be in a state where the connections are no longer safe to be used. Below illustrates a scenario when using [gevent](https://www.gevent.org/) , which can produce `Timeout` exceptions that may mean the underlying connection should be discarded: import gevent try: sess \= Session() sess.add(User()) sess.commit() except gevent.Timeout: sess.invalidate() raise except: sess.rollback() raise The method additionally does everything that [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") does, including that all ORM objects are expunged. _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) is\_active[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active "Link to this definition") True if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") not in “partial rollback” state. Changed in version 1.4: The [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") no longer begins a new transaction immediately, so this attribute will be False when the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is first instantiated. “partial rollback” state typically indicates that the flush process of the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") has failed, and that the [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") method must be emitted in order to fully roll back the transaction. If this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is not in a transaction at all, the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") will autobegin when it is first used, so in this case [`Session.is_active`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active "sqlalchemy.orm.Session.is_active") will return True. Otherwise, if this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") is within a transaction, and that transaction has not been rolled back internally, the [`Session.is_active`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_active "sqlalchemy.orm.Session.is_active") will also return True. See also [“This Session’s transaction has been rolled back due to a previous exception during flush.” (or similar)](https://docs.sqlalchemy.org/en/14/faq/sessions.html#faq-session-rollback) [`Session.in_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_transaction "sqlalchemy.orm.Session.in_transaction") _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) is\_modified(_instance_, _include\_collections\=True_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified "Link to this definition") Return `True` if the given instance has locally modified attributes. This method retrieves the history for each instrumented attribute on the instance and performs a comparison of the current value to its previously committed value, if any. It is in effect a more expensive and accurate version of checking for the given instance in the [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") collection; a full test for each attribute’s net “dirty” status is performed. E.g.: return session.is\_modified(someobject) A few caveats to this method apply: * Instances present in the [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") collection may report `False` when tested with this method. This is because the object may have received change events via attribute mutation, thus placing it in [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") , but ultimately the state is the same as that loaded from the database, resulting in no net change here. * Scalar attributes may not have recorded the previously set value when a new value was applied, if the attribute was not loaded, or was expired, at the time the new value was received - in these cases, the attribute is assumed to have a change, even if there is ultimately no net change against its database value. SQLAlchemy in most cases does not need the “old” value when a set event occurs, so it skips the expense of a SQL call if the old value isn’t present, based on the assumption that an UPDATE of the scalar value is usually needed, and in those few cases where it isn’t, is less expensive on average than issuing a defensive SELECT. The “old” value is fetched unconditionally upon set only if the attribute container has the `active_history` flag set to `True`. This flag is set typically for primary key attributes and scalar object references that are not a simple many-to-one. To set this flag for any arbitrary mapped column, use the `active_history` argument with [`column_property()`](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property "sqlalchemy.orm.column_property") . Parameters: * **instance**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified.params.instance) – mapped instance to be tested for pending changes. * **include\_collections**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.is_modified.params.include_collections) – Indicates if multivalued collections should be included in the operation. Setting this to `False` is a way to detect only local-column based properties (i.e. scalar columns or many-to-one foreign keys) that would result in an UPDATE for this instance upon flush. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) merge(_instance_, _load\=True_, _options\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge "Link to this definition") Copy the state of a given instance into a corresponding instance within this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . [`Session.merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge "sqlalchemy.orm.Session.merge") examines the primary key attributes of the source instance, and attempts to reconcile it with an instance of the same primary key in the session. If not found locally, it attempts to load the object from the database based on primary key, and if none can be located, creates a new instance. The state of each attribute on the source instance is then copied to the target instance. The resulting target instance is then returned by the method; the original source instance is left unmodified, and un-associated with the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") if not already. This operation cascades to associated instances if the association is mapped with `cascade="merge"`. See [Merging](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html#unitofwork-merging) for a detailed discussion of merging. Changed in version 1.1: \- [`Session.merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge "sqlalchemy.orm.Session.merge") will now reconcile pending objects with overlapping primary keys in the same way as persistent. See [Session.merge resolves pending conflicts the same as persistent](https://docs.sqlalchemy.org/en/14/changelog/migration_11.html#change-3601) for discussion. Parameters: * **instance**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge.params.instance) – Instance to be merged. * **load**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge.params.load) – Boolean, when False, [`merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge "sqlalchemy.orm.Session.merge") switches into a “high performance” mode which causes it to forego emitting history events as well as all database access. This flag is used for cases such as transferring graphs of objects into a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") from a second level cache, or to transfer just-loaded objects into the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") owned by a worker thread or process without re-querying the database. The `load=False` use case adds the caveat that the given object has to be in a “clean” state, that is, has no pending changes to be flushed - even if the incoming object is detached from any [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . This is so that when the merge operation populates local attributes and cascades to related objects and collections, the values can be “stamped” onto the target object as is, without generating any history or attribute events, and without the need to reconcile the incoming data with any existing related objects or collections that might not be loaded. The resulting objects from `load=False` are always produced as “clean”, so it is only appropriate that the given objects should be “clean” as well, else this suggests a mis-use of the method. * **options**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge.params.options) – optional sequence of loader options which will be applied to the [`Session.get()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get "sqlalchemy.orm.Session.get") method when the merge operation loads the existing version of the object from the database. Added in version 1.4.24. See also [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached "sqlalchemy.orm.make_transient_to_detached") - provides for an alternative means of “merging” a single object into the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) new[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.new "Link to this definition") The set of all instances marked as ‘new’ within this `Session`. _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) no\_autoflush[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.no_autoflush "Link to this definition") Return a context manager that disables autoflush. e.g.: with session.no\_autoflush: some\_object \= SomeClass() session.add(some\_object) \# won't autoflush some\_object.related\_thing \= session.query(SomeRelated).first() Operations that proceed within the `with:` block will not be subject to flushes occurring upon query access. This is useful when initializing a series of objects which involve existing database queries, where the uncompleted object should not yet be flushed. _classmethod_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) object\_session(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.object_session "Link to this definition") _inherited from the_ `sqlalchemy.orm.session._SessionClassMethods.object_session` _method of_ `sqlalchemy.orm.session._SessionClassMethods` Return the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to which an object belongs. This is an alias of [`object_session()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session "sqlalchemy.orm.object_session") . _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) prepare()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.prepare "Link to this definition") Prepare the current transaction in progress for two phase commit. If no transaction is in progress, this method raises an [`InvalidRequestError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") . Only root transactions of two phase sessions can be prepared. If the current transaction is not such, an [`InvalidRequestError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") is raised. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) query(_\*entities_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.query "Link to this definition") Return a new [`Query`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query "sqlalchemy.orm.Query") object corresponding to this [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) refresh(_instance_, _attribute\_names\=None_, _with\_for\_update\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh "Link to this definition") Expire and refresh attributes on the given instance. The selected attributes will first be expired as they would when using [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") ; then a SELECT statement will be issued to the database to refresh column-oriented attributes with the current value available in the current transaction. [`relationship()`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") oriented attributes will also be immediately loaded if they were already eagerly loaded on the object, using the same eager loading strategy that they were loaded with originally. Unloaded relationship attributes will remain unloaded, as will relationship attributes that were originally lazy loaded. Added in version 1.4: \- the [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh "sqlalchemy.orm.Session.refresh") method can also refresh eagerly loaded attributes. Tip While the [`Session.refresh()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh "sqlalchemy.orm.Session.refresh") method is capable of refreshing both column and relationship oriented attributes, its primary focus is on refreshing of local column-oriented attributes on a single instance. For more open ended “refresh” functionality, including the ability to refresh the attributes on many objects at once while having explicit control over relationship loader strategies, use the [populate existing](https://docs.sqlalchemy.org/en/14/orm/queryguide.html#orm-queryguide-populate-existing) feature instead. Note that a highly isolated transaction will return the same values as were previously read in that same transaction, regardless of changes in database state outside of that transaction. Refreshing attributes usually only makes sense at the start of a transaction where database rows have not yet been accessed. Parameters: * **attribute\_names**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh.params.attribute_names) – optional. An iterable collection of string attribute names indicating a subset of attributes to be refreshed. * **with\_for\_update**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh.params.with_for_update) – optional boolean `True` indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECT; flags should match the parameters of [`Query.with_for_update()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.with_for_update "sqlalchemy.orm.Query.with_for_update") . Supersedes the [`Session.refresh.lockmode`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.refresh.params.lockmode "sqlalchemy.orm.Session.refresh") parameter. See also [Refreshing / Expiring](https://docs.sqlalchemy.org/en/14/orm/session_state_management.html#session-expire) - introductory material [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") [`Session.expire_all()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire_all "sqlalchemy.orm.Session.expire_all") [Populate Existing](https://docs.sqlalchemy.org/en/14/orm/queryguide.html#orm-queryguide-populate-existing) - allows any ORM query to refresh objects as they would be loaded normally. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) rollback()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "Link to this definition") Rollback the current transaction in progress. If no transaction is in progress, this method is a pass-through. In [1.x-style](https://docs.sqlalchemy.org/en/14/glossary.html#term-0) use, this method rolls back the topmost database transaction if no nested transactions are in effect, or to the current nested transaction if one is in effect. When [2.0-style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1) use is in effect via the [`Session.future`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.params.future "sqlalchemy.orm.Session") flag, the method always rolls back the topmost database transaction, discarding any nested transactions that may be in progress. See also [Rolling Back](https://docs.sqlalchemy.org/en/14/orm/session_basics.html#session-rollback) [Managing Transactions](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#unitofwork-transaction) _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) scalar(_statement_, _params\=None_, _execution\_options\={}_, _bind\_arguments\=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalar "Link to this definition") Execute a statement and return a scalar result. Usage and parameters are the same as that of [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") ; the return result is a scalar Python value. _method_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) scalars(_statement_, _params\=None_, _execution\_options\={}_, _bind\_arguments\=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalars "Link to this definition") Execute a statement and return the results as scalars. Usage and parameters are the same as that of [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") ; the return result is a [`ScalarResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ScalarResult "sqlalchemy.engine.ScalarResult") filtering object which will return single elements rather than [`Row`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row "sqlalchemy.engine.Row") objects. Returns: a [`ScalarResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ScalarResult "sqlalchemy.engine.ScalarResult") object Added in version 1.4.24: Added [`Session.scalars()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalars "sqlalchemy.orm.Session.scalars") Added in version 1.4.26: Added [`scoped_session.scalars()`](https://docs.sqlalchemy.org/en/14/orm/contextual.html#sqlalchemy.orm.scoped_session.scalars "sqlalchemy.orm.scoped_session.scalars") _attribute_ [`sqlalchemy.orm.Session.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session) transaction[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction "Link to this definition") The current active or inactive [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") . Deprecated since version 1.4: The [`Session.transaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction "sqlalchemy.orm.Session.transaction") attribute is considered legacy as of the 1.x series of SQLAlchemy and will be removed in 2.0. For context manager use, use [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") . To access the current root transaction, use [`Session.get_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_transaction "sqlalchemy.orm.Session.get_transaction") . (Background on SQLAlchemy 2.0 at: [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html) ) May be None if no transaction has begun yet. Changed in version 1.4: the [`Session.transaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.transaction "sqlalchemy.orm.Session.transaction") attribute is now a read-only descriptor that also may return None if no transaction has begun yet. _class_ sqlalchemy.orm.SessionTransaction(_session_, _parent\=None_, _nested\=False_, _autobegin\=False_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "Link to this definition") A [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") \-level transaction. [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") is produced from the [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") and [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") methods. It’s largely an internal object that in modern use provides a context manager for session transactions. Documentation on interacting with [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") is at: [Managing Transactions](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#unitofwork-transaction) . Changed in version 1.4: The scoping and API methods to work with the [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") object directly have been simplified. See also [Managing Transactions](https://docs.sqlalchemy.org/en/14/orm/session_transaction.html#unitofwork-transaction) [`Session.begin()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin "sqlalchemy.orm.Session.begin") [`Session.begin_nested()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.begin_nested "sqlalchemy.orm.Session.begin_nested") [`Session.rollback()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.rollback "sqlalchemy.orm.Session.rollback") [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") [`Session.in_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_transaction "sqlalchemy.orm.Session.in_transaction") [`Session.in_nested_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.in_nested_transaction "sqlalchemy.orm.Session.in_nested_transaction") [`Session.get_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_transaction "sqlalchemy.orm.Session.get_transaction") [`Session.get_nested_transaction()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.get_nested_transaction "sqlalchemy.orm.Session.get_nested_transaction") **Members** [nested](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested) , [parent](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.parent) **Class signature** class [`sqlalchemy.orm.SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") (`sqlalchemy.engine.util.TransactionalContext`) _attribute_ [`sqlalchemy.orm.SessionTransaction.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction) nested _\= False_[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested "Link to this definition") Indicates if this is a nested, or SAVEPOINT, transaction. When [`SessionTransaction.nested`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested "sqlalchemy.orm.SessionTransaction.nested") is True, it is expected that [`SessionTransaction.parent`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.parent "sqlalchemy.orm.SessionTransaction.parent") will be True as well. _attribute_ [`sqlalchemy.orm.SessionTransaction.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction) parent[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.parent "Link to this definition") The parent [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") of this [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") . If this attribute is `None`, indicates this [`SessionTransaction`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction "sqlalchemy.orm.SessionTransaction") is at the top of the stack, and corresponds to a real “COMMIT”/”ROLLBACK” block. If non-`None`, then this is either a “subtransaction” or a “nested” / SAVEPOINT transaction. If the [`SessionTransaction.nested`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.SessionTransaction.nested "sqlalchemy.orm.SessionTransaction.nested") attribute is `True`, then this is a SAVEPOINT, and if `False`, indicates this a subtransaction. Added in version 1.0.16: \- use .\_parent for previous versions Session Utilities[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#session-utilities "Link to this heading") ---------------------------------------------------------------------------------------------------------------------- | Object Name | Description | | --- | --- | | [close\_all\_sessions](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.close_all_sessions)
() | Close all sessions in memory. | | [make\_transient](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient)
(instance) | Alter the state of the given instance so that it is [transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient)
. | | [make\_transient\_to\_detached](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached)
(instance) | Make the given transient instance [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached)
. | | [object\_session](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session)
(instance) | Return the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session")
to which the given instance belongs. | | [was\_deleted](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.was_deleted)
(object\_) | Return True if the given object was deleted within a session flush. | _function_ sqlalchemy.orm.close\_all\_sessions()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.close_all_sessions "Link to this definition") Close all sessions in memory. This function consults a global registry of all [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") objects and calls [`Session.close()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.close "sqlalchemy.orm.Session.close") on them, which resets them to a clean state. This function is not for general use but may be useful for test suites within the teardown scheme. Added in version 1.3. _function_ sqlalchemy.orm.make\_transient(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient "Link to this definition") Alter the state of the given instance so that it is [transient](https://docs.sqlalchemy.org/en/14/glossary.html#term-transient) . Note [`make_transient()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient "sqlalchemy.orm.make_transient") is a special-case function for advanced use cases only. The given mapped instance is assumed to be in the [persistent](https://docs.sqlalchemy.org/en/14/glossary.html#term-persistent) or [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) state. The function will remove its association with any [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") as well as its [`InstanceState.identity`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.identity "sqlalchemy.orm.InstanceState.identity") . The effect is that the object will behave as though it were newly constructed, except retaining any attribute / collection values that were loaded at the time of the call. The [`InstanceState.deleted`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.deleted "sqlalchemy.orm.InstanceState.deleted") flag is also reset if this object had been deleted as a result of using [`Session.delete()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.delete "sqlalchemy.orm.Session.delete") . Warning [`make_transient()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient "sqlalchemy.orm.make_transient") does **not** “unexpire” or otherwise eagerly load ORM-mapped attributes that are not currently loaded at the time the function is called. This includes attributes which: * were expired via [`Session.expire()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.expire "sqlalchemy.orm.Session.expire") * were expired as the natural effect of committing a session transaction, e.g. [`Session.commit()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.commit "sqlalchemy.orm.Session.commit") * are normally [lazy loaded](https://docs.sqlalchemy.org/en/14/glossary.html#term-lazy-loaded) but are not currently loaded * are “deferred” via [Deferred Column Loading](https://docs.sqlalchemy.org/en/14/orm/loading_columns.html#deferred) and are not yet loaded * were not present in the query which loaded this object, such as that which is common in joined table inheritance and other scenarios. After [`make_transient()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient "sqlalchemy.orm.make_transient") is called, unloaded attributes such as those above will normally resolve to the value `None` when accessed, or an empty collection for a collection-oriented attribute. As the object is transient and un-associated with any database identity, it will no longer retrieve these values. See also [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached "sqlalchemy.orm.make_transient_to_detached") _function_ sqlalchemy.orm.make\_transient\_to\_detached(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached "Link to this definition") Make the given transient instance [detached](https://docs.sqlalchemy.org/en/14/glossary.html#term-detached) . Note [`make_transient_to_detached()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient_to_detached "sqlalchemy.orm.make_transient_to_detached") is a special-case function for advanced use cases only. All attribute history on the given instance will be reset as though the instance were freshly loaded from a query. Missing attributes will be marked as expired. The primary key attributes of the object, which are required, will be made into the “key” of the instance. The object can then be added to a session, or merged possibly with the load=False flag, at which point it will look as if it were loaded that way, without emitting SQL. This is a special use case function that differs from a normal call to [`Session.merge()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.merge "sqlalchemy.orm.Session.merge") in that a given persistent state can be manufactured without any SQL calls. See also [`make_transient()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.make_transient "sqlalchemy.orm.make_transient") [`Session.enable_relationship_loading()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.enable_relationship_loading "sqlalchemy.orm.Session.enable_relationship_loading") _function_ sqlalchemy.orm.object\_session(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.object_session "Link to this definition") Return the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to which the given instance belongs. This is essentially the same as the [`InstanceState.session`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.session "sqlalchemy.orm.InstanceState.session") accessor. See that attribute for details. _function_ sqlalchemy.orm.util.was\_deleted(_object\__)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.was_deleted "Link to this definition") Return True if the given object was deleted within a session flush. This is regardless of whether or not the object is persistent or detached. See also [`InstanceState.was_deleted`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState.was_deleted "sqlalchemy.orm.InstanceState.was_deleted") Attribute and State Management Utilities[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#attribute-and-state-management-utilities "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------------------------------------------- These functions are provided by the SQLAlchemy attribute instrumentation API to provide a detailed interface for dealing with instances, attribute values, and history. Some of them are useful when constructing event listener functions, such as those described in [ORM Events](https://docs.sqlalchemy.org/en/14/orm/events.html) . | Object Name | Description | | --- | --- | | [del\_attribute](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute)
(instance, key) | Delete the value of an attribute, firing history events. | | [flag\_dirty](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty)
(instance) | Mark an instance as ‘dirty’ without any specific attribute mentioned. | | [flag\_modified](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified)
(instance, key) | Mark an attribute on an instance as ‘modified’. | | [get\_attribute](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute)
(instance, key) | Get the value of an attribute, firing any callables required. | | [get\_history](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history)
(obj, key\[, passive\]) | Return a [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History")
record for the given object and attribute key. | | [History](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) | A 3-tuple of added, unchanged and deleted values, representing the changes which have occurred on an instrumented attribute. | | [init\_collection](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection)
(obj, key) | Initialize a collection attribute and return the collection adapter. | | [instance\_state](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.instance_state) | Return the [`InstanceState`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState")
for a given mapped object. | | [is\_instrumented](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented)
(instance, key) | Return True if the given attribute on the given instance is instrumented by the attributes package. | | [object\_state](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state)
(instance) | Given an object, return the [`InstanceState`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState")
associated with the object. | | [set\_attribute](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute)
(instance, key, value\[, initiator\]) | Set the value of an attribute, firing history events. | | [set\_committed\_value](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value)
(instance, key, value) | Set the value of an attribute with no history events. | _function_ sqlalchemy.orm.util.object\_state(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state "Link to this definition") Given an object, return the [`InstanceState`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState") associated with the object. Raises [`sqlalchemy.orm.exc.UnmappedInstanceError`](https://docs.sqlalchemy.org/en/14/orm/exceptions.html#sqlalchemy.orm.exc.UnmappedInstanceError "sqlalchemy.orm.exc.UnmappedInstanceError") if no mapping is configured. Equivalent functionality is available via the [`inspect()`](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") function as: inspect(instance) Using the inspection system will raise [`sqlalchemy.exc.NoInspectionAvailable`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoInspectionAvailable "sqlalchemy.exc.NoInspectionAvailable") if the instance is not part of a mapping. _function_ sqlalchemy.orm.attributes.del\_attribute(_instance_, _key_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.del_attribute "Link to this definition") Delete the value of an attribute, firing history events. This function may be used regardless of instrumentation applied directly to the class, i.e. no descriptors are required. Custom attribute management schemes will need to make usage of this method to establish attribute state as understood by SQLAlchemy. _function_ sqlalchemy.orm.attributes.get\_attribute(_instance_, _key_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_attribute "Link to this definition") Get the value of an attribute, firing any callables required. This function may be used regardless of instrumentation applied directly to the class, i.e. no descriptors are required. Custom attribute management schemes will need to make usage of this method to make usage of attribute state as understood by SQLAlchemy. _function_ sqlalchemy.orm.attributes.get\_history(_obj_, _key_, _passive\=symbol('PASSIVE\_OFF')_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history "Link to this definition") Return a [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History") record for the given object and attribute key. This is the **pre-flush** history for a given attribute, which is reset each time the [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") flushes changes to the current database transaction. Note Prefer to use the [`AttributeState.history`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.history "sqlalchemy.orm.AttributeState.history") and [`AttributeState.load_history()`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.load_history "sqlalchemy.orm.AttributeState.load_history") accessors to retrieve the [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History") for instance attributes. Parameters: * **obj**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.obj) – an object whose class is instrumented by the attributes package. * **key**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.key) – string attribute name. * **passive**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.get_history.params.passive) – indicates loading behavior for the attribute if the value is not already present. This is a bitflag attribute, which defaults to the symbol `PASSIVE_OFF` indicating all necessary SQL should be emitted. See also [`AttributeState.history`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.history "sqlalchemy.orm.AttributeState.history") [`AttributeState.load_history()`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.AttributeState.load_history "sqlalchemy.orm.AttributeState.load_history") - retrieve history using loader callables if the value is not locally present. _function_ sqlalchemy.orm.attributes.init\_collection(_obj_, _key_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection "Link to this definition") Initialize a collection attribute and return the collection adapter. This function is used to provide direct access to collection internals for a previously unloaded attribute. e.g.: collection\_adapter \= init\_collection(someobject, 'elements') for elem in values: collection\_adapter.append\_without\_event(elem) For an easier way to do the above, see [`set_committed_value()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value "sqlalchemy.orm.attributes.set_committed_value") . Parameters: * **obj**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection.params.obj) – a mapped object * **key**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.init_collection.params.key) – string attribute name where the collection is located. _function_ sqlalchemy.orm.attributes.flag\_modified(_instance_, _key_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified "Link to this definition") Mark an attribute on an instance as ‘modified’. This sets the ‘modified’ flag on the instance and establishes an unconditional change event for the given attribute. The attribute must have a value present, else an [`InvalidRequestError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.InvalidRequestError "sqlalchemy.exc.InvalidRequestError") is raised. To mark an object “dirty” without referring to any specific attribute so that it is considered within a flush, use the [`flag_dirty()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty "sqlalchemy.orm.attributes.flag_dirty") call. See also [`flag_dirty()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty "sqlalchemy.orm.attributes.flag_dirty") _function_ sqlalchemy.orm.attributes.flag\_dirty(_instance_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_dirty "Link to this definition") Mark an instance as ‘dirty’ without any specific attribute mentioned. This is a special operation that will allow the object to travel through the flush process for interception by events such as [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") . Note that no SQL will be emitted in the flush process for an object that has no changes, even if marked dirty via this method. However, a [`SessionEvents.before_flush()`](https://docs.sqlalchemy.org/en/14/orm/events.html#sqlalchemy.orm.SessionEvents.before_flush "sqlalchemy.orm.SessionEvents.before_flush") handler will be able to see the object in the [`Session.dirty`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.dirty "sqlalchemy.orm.Session.dirty") collection and may establish changes on it, which will then be included in the SQL emitted. Added in version 1.2. See also [`flag_modified()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.flag_modified "sqlalchemy.orm.attributes.flag_modified") _function_ sqlalchemy.orm.attributes.instance\_state()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.instance_state "Link to this definition") Return the [`InstanceState`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstanceState "sqlalchemy.orm.InstanceState") for a given mapped object. This function is the internal version of [`object_state()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state "sqlalchemy.orm.util.object_state") . The [`object_state()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.util.object_state "sqlalchemy.orm.util.object_state") and/or the [`inspect()`](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") function is preferred here as they each emit an informative exception if the given object is not mapped. _function_ sqlalchemy.orm.instrumentation.is\_instrumented(_instance_, _key_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.instrumentation.is_instrumented "Link to this definition") Return True if the given attribute on the given instance is instrumented by the attributes package. This function may be used regardless of instrumentation applied directly to the class, i.e. no descriptors are required. _function_ sqlalchemy.orm.attributes.set\_attribute(_instance_, _key_, _value_, _initiator\=None_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute "Link to this definition") Set the value of an attribute, firing history events. This function may be used regardless of instrumentation applied directly to the class, i.e. no descriptors are required. Custom attribute management schemes will need to make usage of this method to establish attribute state as understood by SQLAlchemy. Parameters: * **instance**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.instance) – the object that will be modified * **key**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.key) – string name of the attribute * **value**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.value) – value to assign * **initiator**[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute.params.initiator) – an instance of `Event` that would have been propagated from a previous event listener. This argument is used when the [`set_attribute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_attribute "sqlalchemy.orm.attributes.set_attribute") function is being used within an existing event listening function where an `Event` object is being supplied; the object may be used to track the origin of the chain of events. Added in version 1.2.3. _function_ sqlalchemy.orm.attributes.set\_committed\_value(_instance_, _key_, _value_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.set_committed_value "Link to this definition") Set the value of an attribute with no history events. Cancels any previous history present. The value should be a scalar value for scalar-holding attributes, or an iterable for any collection-holding attribute. This is the same underlying method used when a lazy loader fires off and loads additional data from the database. In particular, this method can be used by application code which has loaded additional attributes or collections through separate queries, which can then be attached to an instance as though it were part of its original loaded state. _class_ sqlalchemy.orm.attributes.History(_added_, _unchanged_, _deleted_)[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "Link to this definition") A 3-tuple of added, unchanged and deleted values, representing the changes which have occurred on an instrumented attribute. The easiest way to get a [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History") object for a particular attribute on an object is to use the [`inspect()`](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") function: from sqlalchemy import inspect hist \= inspect(myobject).attrs.myattribute.history Each tuple member is an iterable sequence: * `added` - the collection of items added to the attribute (the first tuple element). * `unchanged` - the collection of items that have not changed on the attribute (the second tuple element). * `deleted` - the collection of items that have been removed from the attribute (the third tuple element). **Members** [empty()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.empty) , [has\_changes()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes) , [non\_added()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added) , [non\_deleted()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted) , [sum()](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.sum) **Class signature** class `sqlalchemy.orm.History` (`sqlalchemy.orm.History`) _method_ [`sqlalchemy.orm.attributes.History.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) empty()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.empty "Link to this definition") Return True if this [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History") has no changes and no existing, unchanged state. _method_ [`sqlalchemy.orm.attributes.History.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) has\_changes()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.has_changes "Link to this definition") Return True if this [`History`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History "sqlalchemy.orm.attributes.History") has changes. _method_ [`sqlalchemy.orm.attributes.History.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) non\_added()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_added "Link to this definition") Return a collection of unchanged + deleted. _method_ [`sqlalchemy.orm.attributes.History.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) non\_deleted()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.non_deleted "Link to this definition") Return a collection of added + unchanged. _method_ [`sqlalchemy.orm.attributes.History.`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History) sum()[¶](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.attributes.History.sum "Link to this definition") Return a collection of added + unchanged + deleted. Previous: [Tracking queries, object and Session Changes with Events](https://docs.sqlalchemy.org/en/14/orm/session_events.html "previous chapter") Next: [Events and Internals](https://docs.sqlalchemy.org/en/14/orm/extending.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Expression Serializer Extension — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/14/core/operators.html) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/14/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) * **Expression Serializer Extension**[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#) * [`Deserializer`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer) * [`Deserializer.get_engine()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine) * [`Deserializer.persistent_load()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load) * [`Serializer`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer) * [`Serializer.persistent_id()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id) * [`dumps()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.dumps) * [`loads()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.loads) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html "previous chapter") * **Next:** [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html "SQL Statements and Expressions API") * **On this page:** * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html#module-sqlalchemy.ext.serializer) * [`Deserializer`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer) * [`Deserializer.get_engine()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine) * [`Deserializer.persistent_load()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load) * [`Serializer`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer) * [`Serializer.persistent_id()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id) * [`dumps()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.dumps) * [`loads()`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.loads) Expression Serializer Extension[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#module-sqlalchemy.ext.serializer "Link to this heading") =================================================================================================================================================== Serializer/Deserializer objects for usage with SQLAlchemy query structures, allowing “contextual” deserialization. Any SQLAlchemy query structure, either based on sqlalchemy.sql.\* or sqlalchemy.orm.\* can be used. The mappers, Tables, Columns, Session etc. which are referenced by the structure are not persisted in serialized form, but are instead re-associated with the query structure when it is deserialized. Warning The serializer extension uses pickle to serialize and deserialize objects, so the same security consideration mentioned in the [python documentation](https://docs.python.org/3/library/pickle.html) apply. Usage is nearly the same as that of the standard Python pickle module: from sqlalchemy.ext.serializer import loads, dumps metadata \= MetaData(bind\=some\_engine) Session \= scoped\_session(sessionmaker()) \# ... define mappers query \= Session.query(MyClass). filter(MyClass.somedata\=='foo').order\_by(MyClass.sortkey) \# pickle the query serialized \= dumps(query) \# unpickle. Pass in metadata + scoped\_session query2 \= loads(serialized, metadata, Session) print query2.all() Similar restrictions as when using raw pickle apply; mapped classes must be themselves be pickleable, meaning they are importable from a module-level namespace. The serializer module is only appropriate for query structures. It is not needed for: * instances of user-defined classes. These contain no references to engines, sessions or expression constructs in the typical case and can be serialized directly. * Table metadata that is to be loaded entirely from the serialized structure (i.e. is not already declared in the application). Regular pickle.loads()/dumps() can be used to fully dump any `MetaData` object, typically one which was reflected from an existing database at some previous point in time. The serializer module is specifically for the opposite case, where the Table metadata is already present in memory. | Object Name | Description | | --- | --- | | [Deserializer](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer) | | | [dumps](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.dumps)
(obj\[, protocol\]) | | | [loads](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.loads)
(data\[, metadata, scoped\_session, engine\]) | | | [Serializer](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer) | | _class_ sqlalchemy.ext.serializer.Deserializer(_file_, _metadata\=None_, _scoped\_session\=None_, _engine\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer "Link to this definition") **Members** [get\_engine()](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine) , [persistent\_load()](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load) **Class signature** class [`sqlalchemy.ext.serializer.Deserializer`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer "sqlalchemy.ext.serializer.Deserializer") (`_pickle.Unpickler`) _method_ [`sqlalchemy.ext.serializer.Deserializer.`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer) get\_engine()[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.get_engine "Link to this definition") _method_ [`sqlalchemy.ext.serializer.Deserializer.`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer) persistent\_load(_id\__)[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Deserializer.persistent_load "Link to this definition") _class_ sqlalchemy.ext.serializer.Serializer(_file_, _protocol\=None_, _fix\_imports\=True_, _buffer\_callback\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer "Link to this definition") **Members** [persistent\_id()](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id) **Class signature** class [`sqlalchemy.ext.serializer.Serializer`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer "sqlalchemy.ext.serializer.Serializer") (`_pickle.Pickler`) _method_ [`sqlalchemy.ext.serializer.Serializer.`](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer) persistent\_id(_obj_)[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.Serializer.persistent_id "Link to this definition") _function_ sqlalchemy.ext.serializer.dumps(_obj_, _protocol\=5_)[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.dumps "Link to this definition") _function_ sqlalchemy.ext.serializer.loads(_data_, _metadata\=None_, _scoped\_session\=None_, _engine\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/serializer.html#sqlalchemy.ext.serializer.loads "Link to this definition") Previous: [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html "previous chapter") Next: [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Operator Reference — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html) * **Operator Reference**[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#) * [Comparison Operators](https://docs.sqlalchemy.org/en/14/core/operators.html#comparison-operators) * [IN Comparisons](https://docs.sqlalchemy.org/en/14/core/operators.html#in-comparisons) * [IN against a list of values](https://docs.sqlalchemy.org/en/14/core/operators.html#in-against-a-list-of-values) * [Empty IN Expressions](https://docs.sqlalchemy.org/en/14/core/operators.html#empty-in-expressions) * [NOT IN](https://docs.sqlalchemy.org/en/14/core/operators.html#not-in) * [Tuple IN Expressions](https://docs.sqlalchemy.org/en/14/core/operators.html#tuple-in-expressions) * [Subquery IN](https://docs.sqlalchemy.org/en/14/core/operators.html#subquery-in) * [Identity Comparisons](https://docs.sqlalchemy.org/en/14/core/operators.html#identity-comparisons) * [String Comparisons](https://docs.sqlalchemy.org/en/14/core/operators.html#string-comparisons) * [String Containment](https://docs.sqlalchemy.org/en/14/core/operators.html#string-containment) * [String matching](https://docs.sqlalchemy.org/en/14/core/operators.html#string-matching) * [String Alteration](https://docs.sqlalchemy.org/en/14/core/operators.html#string-alteration) * [Arithmetic Operators](https://docs.sqlalchemy.org/en/14/core/operators.html#arithmetic-operators) * [Using Conjunctions and Negations](https://docs.sqlalchemy.org/en/14/core/operators.html#using-conjunctions-and-negations) * [Conjunction Operators](https://docs.sqlalchemy.org/en/14/core/operators.html#conjunction-operators) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/14/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html "previous chapter") * **Next:** [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html "SQL Statements and Expressions API") * **On this page:** * [Operator Reference](https://docs.sqlalchemy.org/en/14/core/operators.html#operator-reference) * [Comparison Operators](https://docs.sqlalchemy.org/en/14/core/operators.html#comparison-operators) * [IN Comparisons](https://docs.sqlalchemy.org/en/14/core/operators.html#in-comparisons) * [IN against a list of values](https://docs.sqlalchemy.org/en/14/core/operators.html#in-against-a-list-of-values) * [Empty IN Expressions](https://docs.sqlalchemy.org/en/14/core/operators.html#empty-in-expressions) * [NOT IN](https://docs.sqlalchemy.org/en/14/core/operators.html#not-in) * [Tuple IN Expressions](https://docs.sqlalchemy.org/en/14/core/operators.html#tuple-in-expressions) * [Subquery IN](https://docs.sqlalchemy.org/en/14/core/operators.html#subquery-in) * [Identity Comparisons](https://docs.sqlalchemy.org/en/14/core/operators.html#identity-comparisons) * [String Comparisons](https://docs.sqlalchemy.org/en/14/core/operators.html#string-comparisons) * [String Containment](https://docs.sqlalchemy.org/en/14/core/operators.html#string-containment) * [String matching](https://docs.sqlalchemy.org/en/14/core/operators.html#string-matching) * [String Alteration](https://docs.sqlalchemy.org/en/14/core/operators.html#string-alteration) * [Arithmetic Operators](https://docs.sqlalchemy.org/en/14/core/operators.html#arithmetic-operators) * [Using Conjunctions and Negations](https://docs.sqlalchemy.org/en/14/core/operators.html#using-conjunctions-and-negations) * [Conjunction Operators](https://docs.sqlalchemy.org/en/14/core/operators.html#conjunction-operators) Operator Reference[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#operator-reference "Link to this heading") ======================================================================================================================= This section details usage of the operators that are available to construct SQL expressions. These methods are presented in terms of the [`Operators`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators "sqlalchemy.sql.expression.Operators") and [`ColumnOperators`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators "sqlalchemy.sql.expression.ColumnOperators") base classes. The methods are then available on descendants of these classes, including: * [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") objects * [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") objects more generally, which are the root of all Core SQL Expression language column-level expressions * [`InstrumentedAttribute`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.InstrumentedAttribute "sqlalchemy.orm.InstrumentedAttribute") objects, which are ORM level mapped attributes. The operators are first introduced in the tutorial sections, including: * [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html) - unified tutorial in [2.0 style](https://docs.sqlalchemy.org/en/14/glossary.html#term-2.0-style) * [Object Relational Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/orm/tutorial.html) - ORM tutorial in [1.x style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1.x-style) * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) - Core tutorial in [1.x style](https://docs.sqlalchemy.org/en/14/glossary.html#term-1.x-style) Comparison Operators[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#comparison-operators "Link to this heading") --------------------------------------------------------------------------------------------------------------------------- Basic comparisons which apply to many datatypes, including numerics, strings, dates, and many others: * [`ColumnOperators.__eq__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__eq__ "sqlalchemy.sql.expression.ColumnOperators.__eq__") (Python “`==`” operator): \>>> print(column("x") \== 5) x = :x\_1 * [`ColumnOperators.__ne__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__ne__ "sqlalchemy.sql.expression.ColumnOperators.__ne__") (Python “`!=`” operator): \>>> print(column("x") != 5) x != :x\_1 * [`ColumnOperators.__gt__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__gt__ "sqlalchemy.sql.expression.ColumnOperators.__gt__") (Python “`>`” operator): \>>> print(column("x") \> 5) x > :x\_1 * [`ColumnOperators.__lt__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__lt__ "sqlalchemy.sql.expression.ColumnOperators.__lt__") (Python “`<`” operator): \>>> print(column("x") < 5) x < :x\_1 * [`ColumnOperators.__ge__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__ge__ "sqlalchemy.sql.expression.ColumnOperators.__ge__") (Python “`>=`” operator): \>>> print(column("x") \>= 5) x >= :x\_1 * [`ColumnOperators.__le__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__le__ "sqlalchemy.sql.expression.ColumnOperators.__le__") (Python “`<=`” operator): \>>> print(column("x") <= 5) x <= :x\_1 * [`ColumnOperators.between()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.between "sqlalchemy.sql.expression.ColumnOperators.between") : \>>> print(column("x").between(5, 10)) x BETWEEN :x\_1 AND :x\_2 IN Comparisons[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#in-comparisons "Link to this heading") --------------------------------------------------------------------------------------------------------------- The SQL IN operator is a subject all its own in SQLAlchemy. As the IN operator is usually used against a list of fixed values, SQLAlchemy’s feature of bound parameter coercion makes use of a special form of SQL compilation that renders an interim SQL string for compilation that’s formed into the final list of bound parameters in a second step. In other words, “it just works”. ### IN against a list of values[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#in-against-a-list-of-values "Link to this heading") IN is available most typically by passing a list of values to the [`ColumnOperators.in_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.in_ "sqlalchemy.sql.expression.ColumnOperators.in_") method: \>>> print(column("x").in\_(\[1, 2, 3\])) x IN (\_\_\[POSTCOMPILE\_x\_1\]) The special bound form `__[POSTCOMPILE` is rendered into individual parameters at execution time, illustrated below:\ \ \>>> stmt \= select(User.id).where(User.id.in\_(\[1, 2, 3\]))\ \>>> result \= conn.execute(stmt)\ \ SELECT user\_account.id\ FROM user\_account\ WHERE user\_account.id IN (?, ?, ?)\ \[...\] (1, 2, 3)\ \ ### Empty IN Expressions[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#empty-in-expressions "Link to this heading")\ \ SQLAlchemy produces a mathematically valid result for an empty IN expression by rendering a backend-specific subquery that returns no rows. Again in other words, “it just works”:\ \ \>>> stmt \= select(User.id).where(User.id.in\_(\[\]))\ \>>> result \= conn.execute(stmt)\ \ SELECT user\_account.id\ FROM user\_account\ WHERE user\_account.id IN (SELECT 1 FROM (SELECT 1) WHERE 1!=1)\ \[...\] ()\ \ The “empty set” subquery above generalizes correctly and is also rendered in terms of the IN operator which remains in place.\ \ ### NOT IN[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#not-in "Link to this heading")\ \ “NOT IN” is available via the [`ColumnOperators.not_in()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.not_in "sqlalchemy.sql.expression.ColumnOperators.not_in")\ operator:\ \ \>>> print(column("x").not\_in(\[1, 2, 3\]))\ (x NOT IN (\_\_\[POSTCOMPILE\_x\_1\]))\ \ This is typically more easily available by negating with the `~` operator:\ \ \>>> print(~column("x").in\_(\[1, 2, 3\]))\ (x NOT IN (\_\_\[POSTCOMPILE\_x\_1\]))\ \ ### Tuple IN Expressions[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#tuple-in-expressions "Link to this heading")\ \ Comparison of tuples to tuples is common with IN, as among other use cases accommodates for the case when matching rows to a set of potential composite primary key values. The [`tuple_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.tuple_ "sqlalchemy.sql.expression.tuple_")\ construct provides the basic building block for tuple comparisons. The `Tuple.in_()` operator then receives a list of tuples:\ \ \>>> from sqlalchemy import tuple\_\ \>>> tup \= tuple\_(column("x", Integer), column("y", Integer))\ \>>> expr \= tup.in\_(\[(1, 2), (3, 4)\])\ \>>> print(expr)\ (x, y) IN (\_\_\[POSTCOMPILE\_param\_1\])\ \ To illustrate the parameters rendered:\ \ \>>> tup \= tuple\_(User.id, Address.id)\ \>>> stmt \= select(User.name).join(Address).where(tup.in\_(\[(1, 1), (2, 2)\]))\ \>>> conn.execute(stmt).all()\ \ SELECT user\_account.name\ FROM user\_account JOIN address ON user\_account.id \= address.user\_id\ WHERE (user\_account.id, address.id) IN (VALUES (?, ?), (?, ?))\ \[...\] (1, 1, 2, 2)\ \ \[('spongebob',), ('sandy',)\]\ \ ### Subquery IN[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#subquery-in "Link to this heading")\ \ Finally, the [`ColumnOperators.in_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.in_ "sqlalchemy.sql.expression.ColumnOperators.in_")\ and [`ColumnOperators.not_in()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.not_in "sqlalchemy.sql.expression.ColumnOperators.not_in")\ operators work with subqueries. The form provides that a [`Select`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select "sqlalchemy.sql.expression.Select")\ construct is passed in directly, without any explicit conversion to a named subquery:\ \ \>>> print(column("x").in\_(select(user\_table.c.id)))\ x IN (SELECT user\_account.id\ FROM user\_account)\ \ Tuples work as expected:\ \ \>>> print(\ ... tuple\_(column("x"), column("y")).in\_(\ ... select(user\_table.c.id, address\_table.c.id).join(address\_table)\ ... )\ ... )\ (x, y) IN (SELECT user\_account.id, address.id\ FROM user\_account JOIN address ON user\_account.id = address.user\_id)\ \ Identity Comparisons[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#identity-comparisons "Link to this heading")\ \ ---------------------------------------------------------------------------------------------------------------------------\ \ These operators involve testing for special SQL values such as `NULL`, boolean constants such as `true` or `false` which some databases support:\ \ * [`ColumnOperators.is_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_ "sqlalchemy.sql.expression.ColumnOperators.is_")\ :\ \ This operator will provide exactly the SQL for “x IS y”, most often seen as “ IS NULL”. The `NULL` constant is most easily acquired using regular Python `None`:\ \ \>>> print(column("x").is\_(None))\ x IS NULL\ \ SQL NULL is also explicitly available, if needed, using the [`null()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null")\ construct:\ \ \>>> from sqlalchemy import null\ \>>> print(column("x").is\_(null()))\ x IS NULL\ \ The [`ColumnOperators.is_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_ "sqlalchemy.sql.expression.ColumnOperators.is_")\ operator is automatically invoked when using the [`ColumnOperators.__eq__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__eq__ "sqlalchemy.sql.expression.ColumnOperators.__eq__")\ overloaded operator, i.e. `==`, in conjunction with the `None` or [`null()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null")\ value. In this way, there’s typically not a need to use [`ColumnOperators.is_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_ "sqlalchemy.sql.expression.ColumnOperators.is_")\ explicitly, paricularly when used with a dynamic value:\ \ \>>> a \= None\ \>>> print(column("x") \== a)\ x IS NULL\ \ Note that the Python `is` operator is **not overloaded**. Even though Python provides hooks to overload operators such as `==` and `!=`, it does **not** provide any way to redefine `is`.\ \ * [`ColumnOperators.is_not()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_not "sqlalchemy.sql.expression.ColumnOperators.is_not")\ :\ \ Similar to [`ColumnOperators.is_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_ "sqlalchemy.sql.expression.ColumnOperators.is_")\ , produces “IS NOT”:\ \ \>>> print(column("x").is\_not(None))\ x IS NOT NULL\ \ Is similarly equivalent to `!= None`:\ \ \>>> print(column("x") != None)\ x IS NOT NULL\ \ * [`ColumnOperators.is_distinct_from()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.is_distinct_from "sqlalchemy.sql.expression.ColumnOperators.is_distinct_from")\ :\ \ Produces SQL IS DISTINCT FROM:\ \ \>>> print(column("x").is\_distinct\_from("some value"))\ x IS DISTINCT FROM :x\_1\ \ * [`ColumnOperators.isnot_distinct_from()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.isnot_distinct_from "sqlalchemy.sql.expression.ColumnOperators.isnot_distinct_from")\ :\ \ Produces SQL IS NOT DISTINCT FROM:\ \ \>>> print(column("x").isnot\_distinct\_from("some value"))\ x IS NOT DISTINCT FROM :x\_1\ \ \ String Comparisons[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#string-comparisons "Link to this heading")\ \ -----------------------------------------------------------------------------------------------------------------------\ \ * [`ColumnOperators.like()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.like "sqlalchemy.sql.expression.ColumnOperators.like")\ :\ \ \>>> print(column("x").like("word"))\ x LIKE :x\_1\ \ * [`ColumnOperators.ilike()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.ilike "sqlalchemy.sql.expression.ColumnOperators.ilike")\ :\ \ Case insensitive LIKE makes use of the SQL `lower()` function on a generic backend. On the PostgreSQL backend it will use `ILIKE`:\ \ \>>> print(column("x").ilike("word"))\ lower(x) LIKE lower(:x\_1)\ \ * [`ColumnOperators.notlike()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.notlike "sqlalchemy.sql.expression.ColumnOperators.notlike")\ :\ \ \>>> print(column("x").notlike("word"))\ x NOT LIKE :x\_1\ \ * [`ColumnOperators.notilike()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.notilike "sqlalchemy.sql.expression.ColumnOperators.notilike")\ :\ \ \>>> print(column("x").notilike("word"))\ lower(x) NOT LIKE lower(:x\_1)\ \ \ String Containment[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#string-containment "Link to this heading")\ \ -----------------------------------------------------------------------------------------------------------------------\ \ String containment operators are basically built as a combination of LIKE and the string concatenation operator, which is `||` on most backends or sometimes a function like `concat()`:\ \ * [`ColumnOperators.startswith()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.startswith "sqlalchemy.sql.expression.ColumnOperators.startswith")\ :\ \ The string containment operators\ \>>> print(column("x").startswith("word"))\ x LIKE :x\_1 || '%'\ \ * [`ColumnOperators.endswith()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.endswith "sqlalchemy.sql.expression.ColumnOperators.endswith")\ :\ \ \>>> print(column("x").endswith("word"))\ x LIKE '%' || :x\_1\ \ * [`ColumnOperators.contains()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.contains "sqlalchemy.sql.expression.ColumnOperators.contains")\ :\ \ \>>> print(column("x").contains("word"))\ x LIKE '%' || :x\_1 || '%'\ \ \ String matching[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#string-matching "Link to this heading")\ \ -----------------------------------------------------------------------------------------------------------------\ \ Matching operators are always backend-specific and may provide different behaviors and results on different databases:\ \ * [`ColumnOperators.match()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.match "sqlalchemy.sql.expression.ColumnOperators.match")\ :\ \ This is a dialect-specific operator that makes use of the MATCH feature of the underlying database, if available:\ \ \>>> print(column("x").match("word"))\ x MATCH :x\_1\ \ * [`ColumnOperators.regexp_match()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.regexp_match "sqlalchemy.sql.expression.ColumnOperators.regexp_match")\ :\ \ This operator is dialect specific. We can illustrate it in terms of for example the PostgreSQL dialect:\ \ \>>> from sqlalchemy.dialects import postgresql\ \>>> print(column("x").regexp\_match("word").compile(dialect\=postgresql.dialect()))\ x ~ %(x\_1)s\ \ Or MySQL:\ \ \>>> from sqlalchemy.dialects import mysql\ \>>> print(column("x").regexp\_match("word").compile(dialect\=mysql.dialect()))\ x REGEXP %s\ \ \ String Alteration[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#string-alteration "Link to this heading")\ \ ---------------------------------------------------------------------------------------------------------------------\ \ * [`ColumnOperators.concat()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.concat "sqlalchemy.sql.expression.ColumnOperators.concat")\ :\ \ String concatenation:\ \ \>>> print(column("x").concat("some string"))\ x || :x\_1\ \ This operator is available via [`ColumnOperators.__add__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__ "sqlalchemy.sql.expression.ColumnOperators.__add__")\ , that is, the Python `+` operator, when working with a column expression that derives from [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String")\ :\ \ \>>> print(column("x", String) + "some string")\ x || :x\_1\ \ The operator will produce the appropriate database-specific construct, such as on MySQL it’s historically been the `concat()` SQL function:\ \ \>>> print((column("x", String) + "some string").compile(dialect\=mysql.dialect()))\ concat(x, %s)\ \ * [`ColumnOperators.regexp_replace()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.regexp_replace "sqlalchemy.sql.expression.ColumnOperators.regexp_replace")\ :\ \ Complementary to `ColumnOperators.regexp()` this produces REGEXP REPLACE equivalent for the backends which support it:\ \ \>>> print(column("x").regexp\_replace("foo", "bar").compile(dialect\=postgresql.dialect()))\ REGEXP\_REPLACE(x, %(x\_1)s, %(x\_2)s)\ \ * [`ColumnOperators.collate()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.collate "sqlalchemy.sql.expression.ColumnOperators.collate")\ :\ \ Produces the COLLATE SQL operator which provides for specific collations at expression time:\ \ \>>> print(\ ... (column("x").collate("latin1\_german2\_ci") \== "Müller").compile(\ ... dialect\=mysql.dialect()\ ... )\ ... )\ (x COLLATE latin1\_german2\_ci) = %s\ \ To use COLLATE against a literal value, use the [`literal()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.literal "sqlalchemy.sql.expression.literal")\ construct:\ \ \>>> from sqlalchemy import literal\ \>>> print(\ ... (literal("Müller").collate("latin1\_german2\_ci") \== column("x")).compile(\ ... dialect\=mysql.dialect()\ ... )\ ... )\ (%s COLLATE latin1\_german2\_ci) = x\ \ \ Arithmetic Operators[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#arithmetic-operators "Link to this heading")\ \ ---------------------------------------------------------------------------------------------------------------------------\ \ * [`ColumnOperators.__add__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__ "sqlalchemy.sql.expression.ColumnOperators.__add__")\ , [`ColumnOperators.__radd__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__radd__ "sqlalchemy.sql.expression.ColumnOperators.__radd__")\ (Python “`+`” operator):\ \ \>>> print(column("x") + 5)\ x + :x\_1\ \ \>>> print(5 + column("x"))\ :x\_1 + x\ \ Note that when the datatype of the expression is [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String")\ or similar, the [`ColumnOperators.__add__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__ "sqlalchemy.sql.expression.ColumnOperators.__add__")\ operator instead produces [string concatenation](https://docs.sqlalchemy.org/en/14/core/operators.html#queryguide-operators-concat-op)\ .\ \ * [`ColumnOperators.__sub__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__sub__ "sqlalchemy.sql.expression.ColumnOperators.__sub__")\ , [`ColumnOperators.__rsub__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rsub__ "sqlalchemy.sql.expression.ColumnOperators.__rsub__")\ (Python “`-`” operator):\ \ \>>> print(column("x") \- 5)\ x - :x\_1\ \ \>>> print(5 \- column("x"))\ :x\_1 - x\ \ * [`ColumnOperators.__mul__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mul__ "sqlalchemy.sql.expression.ColumnOperators.__mul__")\ , [`ColumnOperators.__rmul__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmul__ "sqlalchemy.sql.expression.ColumnOperators.__rmul__")\ (Python “`*`” operator):\ \ \>>> print(column("x") \* 5)\ x \* :x\_1\ \ \>>> print(5 \* column("x"))\ :x\_1 \* x\ \ * [`ColumnOperators.__div__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__div__ "sqlalchemy.sql.expression.ColumnOperators.__div__")\ , [`ColumnOperators.__rdiv__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rdiv__ "sqlalchemy.sql.expression.ColumnOperators.__rdiv__")\ (Python “`/`” operator):\ \ \>>> print(column("x") / 5)\ x / :x\_1\ \>>> print(5 / column("x"))\ :x\_1 / x\ \ * [`ColumnOperators.__mod__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__mod__ "sqlalchemy.sql.expression.ColumnOperators.__mod__")\ , [`ColumnOperators.__rmod__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__rmod__ "sqlalchemy.sql.expression.ColumnOperators.__rmod__")\ (Python “`%`” operator):\ \ \>>> print(column("x") % 5)\ x % :x\_1\ \>>> print(5 % column("x"))\ :x\_1 % x\ \ \ Using Conjunctions and Negations[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#using-conjunctions-and-negations "Link to this heading")\ \ ---------------------------------------------------------------------------------------------------------------------------------------------------\ \ The most common conjunction, “AND”, is automatically applied if we make repeated use of the [`Select.where()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.where "sqlalchemy.sql.expression.Select.where")\ method, as well as similar methods such as [`Update.where()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update.where "sqlalchemy.sql.expression.Update.where")\ and [`Delete.where()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Delete.where "sqlalchemy.sql.expression.Delete.where")\ :\ \ \>>> print(\ ... select(address\_table.c.email\_address)\ ... .where(user\_table.c.name \== "squidward")\ ... .where(address\_table.c.user\_id \== user\_table.c.id)\ ... )\ SELECT address.email\_address\ FROM address, user\_account\ WHERE user\_account.name = :name\_1 AND address.user\_id = user\_account.id\ \ [`Select.where()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.where "sqlalchemy.sql.expression.Select.where")\ , [`Update.where()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update.where "sqlalchemy.sql.expression.Update.where")\ and [`Delete.where()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Delete.where "sqlalchemy.sql.expression.Delete.where")\ also accept multiple expressions with the same effect:\ \ \>>> print(\ ... select(address\_table.c.email\_address).where(\ ... user\_table.c.name \== "squidward", address\_table.c.user\_id \== user\_table.c.id\ ... )\ ... )\ SELECT address.email\_address\ FROM address, user\_account\ WHERE user\_account.name = :name\_1 AND address.user\_id = user\_account.id\ \ The “AND” conjunction, as well as its partner “OR”, are both available directly using the [`and_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.and_ "sqlalchemy.sql.expression.and_")\ and [`or_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.or_ "sqlalchemy.sql.expression.or_")\ functions:\ \ \>>> from sqlalchemy import and\_, or\_\ \>>> print(\ ... select(address\_table.c.email\_address).where(\ ... and\_(\ ... or\_(user\_table.c.name \== "squidward", user\_table.c.name \== "sandy"),\ ... address\_table.c.user\_id \== user\_table.c.id,\ ... )\ ... )\ ... )\ SELECT address.email\_address\ FROM address, user\_account\ WHERE (user\_account.name = :name\_1 OR user\_account.name = :name\_2)\ AND address.user\_id = user\_account.id\ \ A negation is available using the [`not_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.not_ "sqlalchemy.sql.expression.not_")\ function. This will typically invert the operator in a boolean expression:\ \ \>>> from sqlalchemy import not\_\ \>>> print(not\_(column("x") \== 5))\ x != :x\_1\ \ It also may apply a keyword such as `NOT` when appropriate:\ \ \>>> from sqlalchemy import Boolean\ \>>> print(not\_(column("x", Boolean)))\ NOT x\ \ Conjunction Operators[¶](https://docs.sqlalchemy.org/en/14/core/operators.html#conjunction-operators "Link to this heading")\ \ -----------------------------------------------------------------------------------------------------------------------------\ \ The above conjunction functions [`and_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.and_ "sqlalchemy.sql.expression.and_")\ , [`or_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.or_ "sqlalchemy.sql.expression.or_")\ , [`not_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.not_ "sqlalchemy.sql.expression.not_")\ are also available as overloaded Python operators:\ \ Note\ \ The Python `&`, `|` and `~` operators take high precedence in the language; as a result, parenthesis must usually be applied for operands that themselves contain expressions, as indicated in the examples below.\ \ * [`Operators.__and__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__and__ "sqlalchemy.sql.expression.Operators.__and__")\ (Python “`&`” operator):\ \ The Python binary `&` operator is overloaded to behave the same as [`and_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.and_ "sqlalchemy.sql.expression.and_")\ (note parenthesis around the two operands):\ \ \>>> print((column("x") \== 5) & (column("y") \== 10))\ x = :x\_1 AND y = :y\_1\ \ * [`Operators.__or__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__or__ "sqlalchemy.sql.expression.Operators.__or__")\ (Python “`|`” operator):\ \ The Python binary `|` operator is overloaded to behave the same as [`or_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.or_ "sqlalchemy.sql.expression.or_")\ (note parenthesis around the two operands):\ \ \>>> print((column("x") \== 5) | (column("y") \== 10))\ x = :x\_1 OR y = :y\_1\ \ * [`Operators.__invert__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.__invert__ "sqlalchemy.sql.expression.Operators.__invert__")\ (Python “`~`” operator):\ \ The Python binary `~` operator is overloaded to behave the same as [`not_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.not_ "sqlalchemy.sql.expression.not_")\ , either inverting the existing operator, or applying the `NOT` keyword to the expression as a whole:\ \ \>>> print(~(column("x") \== 5))\ x != :x\_1\ \ \>>> from sqlalchemy import Boolean\ \>>> print(~column("x", Boolean))\ NOT x\ \ \ Previous: [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html "previous chapter")\ Next: [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html "next chapter")\ \ © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html)\ 2007-2025, the SQLAlchemy authors and contributors.\ \ **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc)\ .\ \ Created using [Sphinx](https://www.sphinx-doc.org/)\ 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # SQL Expression Language Foundational Constructs — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/14/core/operators.html) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/14/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html) * **SQL Expression Language Foundational Constructs**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#) * [`CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey) * [`CacheKey.to_offline_string()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string) * [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) * [`ClauseElement.compare()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare) * [`ClauseElement.compile()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile) * [`ClauseElement.get_children()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children) * [`ClauseElement.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.inherit_cache) * [`ClauseElement.memoized_instancemethod()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.memoized_instancemethod) * [`ClauseElement.params()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.params) * [`ClauseElement.self_group()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group) * [`ClauseElement.unique_params()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params) * [`DialectKWArgs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) * [`DialectKWArgs.argument_for()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for) * [`DialectKWArgs.dialect_kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs) * [`DialectKWArgs.dialect_options`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options) * [`DialectKWArgs.kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.kwargs) * [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey) * [`HasCacheKey.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache) * [`LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement) * [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement) * [`StatementLambdaElement.add_criteria()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria) * [`StatementLambdaElement.spoil()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html "previous chapter") * **Next:** [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html "SQL Statements and Expressions API") * **On this page:** * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html#sql-expression-language-foundational-constructs) * [`CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey) * [`CacheKey.to_offline_string()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string) * [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) * [`ClauseElement.compare()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare) * [`ClauseElement.compile()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile) * [`ClauseElement.get_children()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children) * [`ClauseElement.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.inherit_cache) * [`ClauseElement.memoized_instancemethod()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.memoized_instancemethod) * [`ClauseElement.params()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.params) * [`ClauseElement.self_group()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group) * [`ClauseElement.unique_params()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params) * [`DialectKWArgs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) * [`DialectKWArgs.argument_for()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for) * [`DialectKWArgs.dialect_kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs) * [`DialectKWArgs.dialect_options`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options) * [`DialectKWArgs.kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.kwargs) * [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey) * [`HasCacheKey.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache) * [`LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement) * [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement) * [`StatementLambdaElement.add_criteria()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria) * [`StatementLambdaElement.spoil()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil) SQL Expression Language Foundational Constructs[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sql-expression-language-foundational-constructs "Link to this heading") ================================================================================================================================================================================== Base classes and mixins that are used to compose SQL Expression Language elements. | Object Name | Description | | --- | --- | | [CacheKey](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey) | The key used to identify a SQL statement construct in the SQL compilation cache. | | [ClauseElement](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) | Base class for elements of a programmatically constructed SQL expression. | | [DialectKWArgs](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) | Establish the ability for a class to have dialect-specific arguments with defaults and constructor validation. | | [HasCacheKey](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey) | Mixin for objects which can produce a cache key. | | [LambdaElement](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement) | A SQL construct where the state is stored as an un-invoked lambda. | | [StatementLambdaElement](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement) | Represent a composable SQL statement as a [`LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "sqlalchemy.sql.expression.LambdaElement")
. | _class_ sqlalchemy.sql.expression.CacheKey(_key_, _bindparams_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey "Link to this definition") The key used to identify a SQL statement construct in the SQL compilation cache. See also [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) **Members** [to\_offline\_string()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string) **Class signature** class [`sqlalchemy.sql.expression.CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey "sqlalchemy.sql.expression.CacheKey") ([`sqlalchemy.sql.traversals.CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey "sqlalchemy.sql.traversals.CacheKey") ) _method_ [`sqlalchemy.sql.expression.CacheKey.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey) to\_offline\_string(_statement\_cache_, _statement_, _parameters_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey.to_offline_string "Link to this definition") Generate an “offline string” form of this [`CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey "sqlalchemy.sql.expression.CacheKey") The “offline string” is basically the string SQL for the statement plus a repr of the bound parameter values in series. Whereas the [`CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey "sqlalchemy.sql.expression.CacheKey") object is dependent on in-memory identities in order to work as a cache key, the “offline” version is suitable for a cache that will work for other processes as well. The given `statement_cache` is a dictionary-like object where the string form of the statement itself will be cached. This dictionary should be in a longer lived scope in order to reduce the time spent stringifying statements. _class_ sqlalchemy.sql.expression.ClauseElement[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "Link to this definition") Base class for elements of a programmatically constructed SQL expression. **Members** [compare()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare) , [compile()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile) , [get\_children()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children) , [inherit\_cache](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.inherit_cache) , [memoized\_instancemethod()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.memoized_instancemethod) , [params()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.params) , [self\_group()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group) , [unique\_params()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params) **Class signature** class [`sqlalchemy.sql.expression.ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") (`sqlalchemy.sql.roles.SQLRole`, `sqlalchemy.sql.annotation.SupportsWrappingAnnotations`, `sqlalchemy.sql.traversals.MemoizedHasCacheKey`, `sqlalchemy.sql.traversals.HasCopyInternals`, [`sqlalchemy.sql.visitors.Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") ) _method_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) compare(_other_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compare "Link to this definition") Compare this [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") to the given [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") . Subclasses should override the default behavior, which is a straight identity comparison. \*\*kw are arguments consumed by subclass `compare()` methods and may be used to modify the criteria for comparison (see [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") ). _method_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) compile(_bind\=None_, _dialect\=None_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile "Link to this definition") Compile this SQL expression. The return value is a [`Compiled`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled "sqlalchemy.engine.Compiled") object. Calling `str()` or `unicode()` on the returned value will yield a string representation of the result. The [`Compiled`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Compiled "sqlalchemy.engine.Compiled") object also can return a dictionary of bind parameter names and values using the `params` accessor. Parameters: * **bind**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile.params.bind) – An `Engine` or `Connection` from which a `Compiled` will be acquired. This argument takes precedence over this [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") ’s bound engine, if any. * **column\_keys**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile.params.column_keys) – Used for INSERT and UPDATE statements, a list of column names which should be present in the VALUES clause of the compiled statement. If `None`, all columns from the target table object are rendered. * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile.params.dialect) – A `Dialect` instance from which a `Compiled` will be acquired. This argument takes precedence over the bind argument as well as this [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") ‘s bound engine, if any. * **compile\_kwargs**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.compile.params.compile_kwargs) – optional dictionary of additional parameters that will be passed through to the compiler within all “visit” methods. This allows any custom flag to be passed through to a custom compilation construct, for example. It is also used for the case of passing the `literal_binds` flag through: from sqlalchemy.sql import table, column, select t \= table('t', column('x')) s \= select(t).where(t.c.x \== 5) print(s.compile(compile\_kwargs\={"literal\_binds": True})) Added in version 0.9.0. See also [How do I render SQL expressions as strings, possibly with bound parameters inlined?](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html#faq-sql-expression-string) _method_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) get\_children(_omit\_attrs\=()_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children "Link to this definition") _inherited from the_ [`Traversible.get_children()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible.get_children "sqlalchemy.sql.visitors.Traversible.get_children") _method of_ [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") Return immediate child [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") elements of this [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") . This is used for visit traversal. \*\*kw may contain flags that change the collection that is returned, for example to return a subset of items in order to cut down on larger traversals, or to return child items from a different context (such as schema-level collections instead of clause-level). _attribute_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) inherit\_cache _\= None_[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.inherit_cache "Link to this definition") _inherited from the_ [`HasCacheKey.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache "sqlalchemy.sql.traversals.HasCacheKey.inherit_cache") _attribute of_ [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "sqlalchemy.sql.traversals.HasCacheKey") Indicate if this [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "sqlalchemy.sql.traversals.HasCacheKey") instance should make use of the cache key generation scheme used by its immediate superclass. The attribute defaults to `None`, which indicates that a construct has not yet taken into account whether or not its appropriate for it to participate in caching; this is functionally equivalent to setting the value to `False`, except that a warning is also emitted. This flag can be set to `True` on a particular class, if the SQL that corresponds to the object does not change based on attributes which are local to this class, and not its superclass. See also [Enabling Caching Support for Custom Constructs](https://docs.sqlalchemy.org/en/14/core/compiler.html#compilerext-caching) - General guideslines for setting the [`HasCacheKey.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache "sqlalchemy.sql.traversals.HasCacheKey.inherit_cache") attribute for third-party or user defined SQL constructs. _classmethod_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) memoized\_instancemethod(_fn_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.memoized_instancemethod "Link to this definition") _inherited from the_ `HasMemoized.memoized_instancemethod()` _method of_ `HasMemoized` Decorate a method memoize its return value. _method_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) params(_\*optionaldict_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.params "Link to this definition") Return a copy with [`bindparam()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam "sqlalchemy.sql.expression.bindparam") elements replaced. Returns a copy of this ClauseElement with [`bindparam()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam "sqlalchemy.sql.expression.bindparam") elements replaced with values taken from the given dictionary: \>>> clause \= column('x') + bindparam('foo') \>>> print(clause.compile().params) {'foo':None} \>>> print(clause.params({'foo':7}).compile().params) {'foo':7} _method_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) self\_group(_against\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group "Link to this definition") Apply a ‘grouping’ to this [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") . This method is overridden by subclasses to return a “grouping” construct, i.e. parenthesis. In particular it’s used by “binary” expressions to provide a grouping around themselves when placed into a larger expression, as well as by [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") constructs when placed into the FROM clause of another [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") . (Note that subqueries should be normally created using the [`Select.alias()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.alias "sqlalchemy.sql.expression.Select.alias") method, as many platforms require nested SELECT statements to be named). As expressions are composed together, the application of [`self_group()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group "sqlalchemy.sql.expression.ClauseElement.self_group") is automatic - end-user code should never need to use this method directly. Note that SQLAlchemy’s clause constructs take operator precedence into account - so parenthesis might not be needed, for example, in an expression like `x OR (y AND z)` - AND takes precedence over OR. The base [`self_group()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.self_group "sqlalchemy.sql.expression.ClauseElement.self_group") method of [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") just returns self. _method_ [`sqlalchemy.sql.expression.ClauseElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement) unique\_params(_\*optionaldict_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.unique_params "Link to this definition") Return a copy with [`bindparam()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.bindparam "sqlalchemy.sql.expression.bindparam") elements replaced. Same functionality as [`ClauseElement.params()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.params "sqlalchemy.sql.expression.ClauseElement.params") , except adds unique=True to affected bind parameters so that multiple statements can be used. _class_ sqlalchemy.sql.base.DialectKWArgs[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs "Link to this definition") Establish the ability for a class to have dialect-specific arguments with defaults and constructor validation. The [`DialectKWArgs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs "sqlalchemy.sql.base.DialectKWArgs") interacts with the [`DefaultDialect.construct_arguments`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments "sqlalchemy.engine.default.DefaultDialect.construct_arguments") present on a dialect. **Members** [argument\_for()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for) , [dialect\_kwargs](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs) , [dialect\_options](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options) , [kwargs](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.kwargs) See also [`DefaultDialect.construct_arguments`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments "sqlalchemy.engine.default.DefaultDialect.construct_arguments") _classmethod_ [`sqlalchemy.sql.base.DialectKWArgs.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) argument\_for(_dialect\_name_, _argument\_name_, _default_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for "Link to this definition") Add a new kind of dialect-specific keyword argument for this class. E.g.: Index.argument\_for("mydialect", "length", None) some\_index \= Index('a', 'b', mydialect\_length\=5) The [`DialectKWArgs.argument_for()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for "sqlalchemy.sql.base.DialectKWArgs.argument_for") method is a per-argument way adding extra arguments to the [`DefaultDialect.construct_arguments`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments "sqlalchemy.engine.default.DefaultDialect.construct_arguments") dictionary. This dictionary provides a list of argument names accepted by various schema-level constructs on behalf of a dialect. New dialects should typically specify this dictionary all at once as a data member of the dialect class. The use case for ad-hoc addition of argument names is typically for end-user code that is also using a custom compilation scheme which consumes the additional arguments. Parameters: * **dialect\_name**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for.params.dialect_name) – name of a dialect. The dialect must be locatable, else a [`NoSuchModuleError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.NoSuchModuleError "sqlalchemy.exc.NoSuchModuleError") is raised. The dialect must also include an existing [`DefaultDialect.construct_arguments`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.default.DefaultDialect.construct_arguments "sqlalchemy.engine.default.DefaultDialect.construct_arguments") collection, indicating that it participates in the keyword-argument validation and default system, else [`ArgumentError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.ArgumentError "sqlalchemy.exc.ArgumentError") is raised. If the dialect does not include this collection, then any keyword argument can be specified on behalf of this dialect already. All dialects packaged within SQLAlchemy include this collection, however for third party dialects, support may vary. * **argument\_name**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for.params.argument_name) – name of the parameter. * **default**[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.argument_for.params.default) – default value of the parameter. Added in version 0.9.4. _attribute_ [`sqlalchemy.sql.base.DialectKWArgs.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) dialect\_kwargs[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs "Link to this definition") A collection of keyword arguments specified as dialect-specific options to this construct. The arguments are present here in their original `_` format. Only arguments that were actually passed are included; unlike the [`DialectKWArgs.dialect_options`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options "sqlalchemy.sql.base.DialectKWArgs.dialect_options") collection, which contains all options known by this dialect including defaults. The collection is also writable; keys are accepted of the form `_` where the value will be assembled into the list of options. Added in version 0.9.2. Changed in version 0.9.4: The [`DialectKWArgs.dialect_kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs "sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs") collection is now writable. See also [`DialectKWArgs.dialect_options`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options "sqlalchemy.sql.base.DialectKWArgs.dialect_options") - nested dictionary form _attribute_ [`sqlalchemy.sql.base.DialectKWArgs.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) dialect\_options[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_options "Link to this definition") A collection of keyword arguments specified as dialect-specific options to this construct. This is a two-level nested registry, keyed to `` and ``. For example, the `postgresql_where` argument would be locatable as: arg \= my\_object.dialect\_options\['postgresql'\]\['where'\] Added in version 0.9.2. See also [`DialectKWArgs.dialect_kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs "sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs") - flat dictionary form _attribute_ [`sqlalchemy.sql.base.DialectKWArgs.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs) kwargs[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.kwargs "Link to this definition") A synonym for [`DialectKWArgs.dialect_kwargs`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs "sqlalchemy.sql.base.DialectKWArgs.dialect_kwargs") . _class_ sqlalchemy.sql.traversals.HasCacheKey[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "Link to this definition") Mixin for objects which can produce a cache key. **Members** [inherit\_cache](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache) See also [`CacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.CacheKey "sqlalchemy.sql.traversals.CacheKey") [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) _attribute_ [`sqlalchemy.sql.traversals.HasCacheKey.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey) inherit\_cache _\= None_[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache "Link to this definition") Indicate if this [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "sqlalchemy.sql.traversals.HasCacheKey") instance should make use of the cache key generation scheme used by its immediate superclass. The attribute defaults to `None`, which indicates that a construct has not yet taken into account whether or not its appropriate for it to participate in caching; this is functionally equivalent to setting the value to `False`, except that a warning is also emitted. This flag can be set to `True` on a particular class, if the SQL that corresponds to the object does not change based on attributes which are local to this class, and not its superclass. See also [Enabling Caching Support for Custom Constructs](https://docs.sqlalchemy.org/en/14/core/compiler.html#compilerext-caching) - General guideslines for setting the [`HasCacheKey.inherit_cache`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey.inherit_cache "sqlalchemy.sql.traversals.HasCacheKey.inherit_cache") attribute for third-party or user defined SQL constructs. _class_ sqlalchemy.sql.expression.LambdaElement(_fn_, _role_, _opts=_, _apply\_propagate\_attrs=None_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "Link to this definition") A SQL construct where the state is stored as an un-invoked lambda. The [`LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "sqlalchemy.sql.expression.LambdaElement") is produced transparently whenever passing lambda expressions into SQL constructs, such as: stmt \= select(table).where(lambda: table.c.col \== parameter) The [`LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "sqlalchemy.sql.expression.LambdaElement") is the base of the [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement "sqlalchemy.sql.expression.StatementLambdaElement") which represents a full statement within a lambda. Added in version 1.4. See also [Using Lambdas to add significant speed gains to statement production](https://docs.sqlalchemy.org/en/14/core/connections.html#engine-lambda-caching) **Class signature** class [`sqlalchemy.sql.expression.LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "sqlalchemy.sql.expression.LambdaElement") ([`sqlalchemy.sql.expression.ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") ) _class_ sqlalchemy.sql.expression.StatementLambdaElement(_fn_, _role_, _opts=_, _apply\_propagate\_attrs=None_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement "Link to this definition") Represent a composable SQL statement as a [`LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "sqlalchemy.sql.expression.LambdaElement") . The [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement "sqlalchemy.sql.expression.StatementLambdaElement") is constructed using the [`lambda_stmt()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt "sqlalchemy.sql.expression.lambda_stmt") function: from sqlalchemy import lambda\_stmt stmt \= lambda\_stmt(lambda: select(table)) Once constructed, additional criteria can be built onto the statement by adding subsequent lambdas, which accept the existing statement object as a single parameter: stmt += lambda s: s.where(table.c.col \== parameter) Added in version 1.4. See also [Using Lambdas to add significant speed gains to statement production](https://docs.sqlalchemy.org/en/14/core/connections.html#engine-lambda-caching) **Members** [add\_criteria()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria) , [spoil()](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil) **Class signature** class [`sqlalchemy.sql.expression.StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement "sqlalchemy.sql.expression.StatementLambdaElement") (`sqlalchemy.sql.roles.AllowsLambdaRole`, [`sqlalchemy.sql.lambdas.LambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.LambdaElement "sqlalchemy.sql.lambdas.LambdaElement") ) _method_ [`sqlalchemy.sql.expression.StatementLambdaElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement) add\_criteria(_other_, _enable\_tracking\=True_, _track\_on\=None_, _track\_closure\_variables\=True_, _track\_bound\_values\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria "Link to this definition") Add new criteria to this [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement "sqlalchemy.sql.expression.StatementLambdaElement") . E.g.: \>>> def my\_stmt(parameter): ... stmt \= lambda\_stmt( ... lambda: select(table.c.x, table.c.y), ... ) ... stmt \= stmt.add\_criteria( ... lambda: table.c.x \> parameter ... ) ... return stmt The [`StatementLambdaElement.add_criteria()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.add_criteria "sqlalchemy.sql.expression.StatementLambdaElement.add_criteria") method is equivalent to using the Python addition operator to add a new lambda, except that additional arguments may be added including `track_closure_values` and `track_on`: \>>> def my\_stmt(self, foo): ... stmt \= lambda\_stmt( ... lambda: select(func.max(foo.x, foo.y)), ... track\_closure\_variables\=False ... ) ... stmt \= stmt.add\_criteria( ... lambda: self.where\_criteria, ... track\_on\=\[self\] ... ) ... return stmt See [`lambda_stmt()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.lambda_stmt "sqlalchemy.sql.expression.lambda_stmt") for a description of the parameters accepted. _method_ [`sqlalchemy.sql.expression.StatementLambdaElement.`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement) spoil()[¶](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement.spoil "Link to this definition") Return a new [`StatementLambdaElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.StatementLambdaElement "sqlalchemy.sql.expression.StatementLambdaElement") that will run all lambdas unconditionally each time. Previous: [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html "previous chapter") Next: [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Visitor and Traversal Utilities — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/14/core/operators.html) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html) * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/14/core/functions.html) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html) * **Visitor and Traversal Utilities**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#) * [`ExternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) * [`ExternalTraversal.chain()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain) * [`ExternalTraversal.iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate) * [`ExternalTraversal.traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse) * [`ExternalTraversal.visitor_iterator`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator) * [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) * [`InternalTraversal.dispatch()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dispatch) * [`InternalTraversal.dp_annotations_key`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key) * [`InternalTraversal.dp_anon_name`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name) * [`InternalTraversal.dp_boolean`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean) * [`InternalTraversal.dp_clauseelement`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement) * [`InternalTraversal.dp_clauseelement_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list) * [`InternalTraversal.dp_clauseelement_tuple`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple) * [`InternalTraversal.dp_clauseelement_tuples`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples) * [`InternalTraversal.dp_dialect_options`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options) * [`InternalTraversal.dp_dml_multi_values`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values) * [`InternalTraversal.dp_dml_ordered_values`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values) * [`InternalTraversal.dp_dml_values`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values) * [`InternalTraversal.dp_fromclause_canonical_column_collection`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection) * [`InternalTraversal.dp_fromclause_ordered_set`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set) * [`InternalTraversal.dp_has_cache_key`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key) * [`InternalTraversal.dp_has_cache_key_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list) * [`InternalTraversal.dp_named_ddl_element`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element) * [`InternalTraversal.dp_operator`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator) * [`InternalTraversal.dp_plain_dict`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict) * [`InternalTraversal.dp_plain_obj`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj) * [`InternalTraversal.dp_prefix_sequence`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence) * [`InternalTraversal.dp_propagate_attrs`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs) * [`InternalTraversal.dp_statement_hint_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list) * [`InternalTraversal.dp_string`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string) * [`InternalTraversal.dp_string_clauseelement_dict`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict) * [`InternalTraversal.dp_string_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list) * [`InternalTraversal.dp_string_multi_dict`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict) * [`InternalTraversal.dp_table_hint_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list) * [`InternalTraversal.dp_type`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type) * [`InternalTraversal.dp_unknown_structure`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure) * [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible) * [`Traversible.get_children()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible.get_children) * [`TraversibleType`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType) * [`cloned_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse) * [`iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate) * [`replacement_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse) * [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse) * [`traverse_using()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html "previous chapter") * **Next:** [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html "SQL Statements and Expressions API") * **On this page:** * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html#visitor-and-traversal-utilities) * [`ExternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) * [`ExternalTraversal.chain()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain) * [`ExternalTraversal.iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate) * [`ExternalTraversal.traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse) * [`ExternalTraversal.visitor_iterator`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator) * [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) * [`InternalTraversal.dispatch()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dispatch) * [`InternalTraversal.dp_annotations_key`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key) * [`InternalTraversal.dp_anon_name`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name) * [`InternalTraversal.dp_boolean`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean) * [`InternalTraversal.dp_clauseelement`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement) * [`InternalTraversal.dp_clauseelement_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list) * [`InternalTraversal.dp_clauseelement_tuple`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple) * [`InternalTraversal.dp_clauseelement_tuples`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples) * [`InternalTraversal.dp_dialect_options`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options) * [`InternalTraversal.dp_dml_multi_values`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values) * [`InternalTraversal.dp_dml_ordered_values`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values) * [`InternalTraversal.dp_dml_values`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values) * [`InternalTraversal.dp_fromclause_canonical_column_collection`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection) * [`InternalTraversal.dp_fromclause_ordered_set`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set) * [`InternalTraversal.dp_has_cache_key`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key) * [`InternalTraversal.dp_has_cache_key_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list) * [`InternalTraversal.dp_named_ddl_element`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element) * [`InternalTraversal.dp_operator`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator) * [`InternalTraversal.dp_plain_dict`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict) * [`InternalTraversal.dp_plain_obj`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj) * [`InternalTraversal.dp_prefix_sequence`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence) * [`InternalTraversal.dp_propagate_attrs`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs) * [`InternalTraversal.dp_statement_hint_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list) * [`InternalTraversal.dp_string`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string) * [`InternalTraversal.dp_string_clauseelement_dict`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict) * [`InternalTraversal.dp_string_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list) * [`InternalTraversal.dp_string_multi_dict`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict) * [`InternalTraversal.dp_table_hint_list`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list) * [`InternalTraversal.dp_type`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type) * [`InternalTraversal.dp_unknown_structure`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure) * [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible) * [`Traversible.get_children()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible.get_children) * [`TraversibleType`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType) * [`cloned_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse) * [`iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate) * [`replacement_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse) * [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse) * [`traverse_using()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using) Visitor and Traversal Utilities[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#visitor-and-traversal-utilities "Link to this heading") ================================================================================================================================================ The [`sqlalchemy.sql.visitors`](https://docs.sqlalchemy.org/en/14/core/visitors.html#module-sqlalchemy.sql.visitors "sqlalchemy.sql.visitors") module consists of classes and functions that serve the purpose of generically **traversing** a Core SQL expression structure. This is not unlike the Python `ast` module in that is presents a system by which a program can operate upon each component of a SQL expression. Common purposes this serves are locating various kinds of elements such as [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") or [`BindParameter`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter "sqlalchemy.sql.expression.BindParameter") objects, as well as altering the state of the structure such as replacing certain FROM clauses with others. Note the [`sqlalchemy.sql.visitors`](https://docs.sqlalchemy.org/en/14/core/visitors.html#module-sqlalchemy.sql.visitors "sqlalchemy.sql.visitors") module is an internal API and is not fully public. It is subject to change and may additionally not function as expected for use patterns that aren’t considered within SQLAlchemy’s own internals. The [`sqlalchemy.sql.visitors`](https://docs.sqlalchemy.org/en/14/core/visitors.html#module-sqlalchemy.sql.visitors "sqlalchemy.sql.visitors") module is part of the **internals** of SQLAlchemy and it is not usually used by calling application code. It is however used in certain edge cases such as when constructing caching routines as well as when building out custom SQL expressions using the [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) . Visitor/traversal interface and library functions. SQLAlchemy schema and expression constructs rely on a Python-centric version of the classic “visitor” pattern as the primary way in which they apply functionality. The most common use of this pattern is statement compilation, where individual expression classes match up to rendering methods that produce a string result. Beyond this, the visitor system is also used to inspect expressions for various information and patterns, as well as for the purposes of applying transformations to expressions. Examples of how the visit system is used can be seen in the source code of for example the `sqlalchemy.sql.util` and the `sqlalchemy.sql.compiler` modules. Some background on clause adaption is also at [https://techspot.zzzeek.org/2008/01/23/expression-transformations/](https://techspot.zzzeek.org/2008/01/23/expression-transformations/) . | Object Name | Description | | --- | --- | | [cloned\_traverse](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse)
(obj, opts, visitors) | Clone the given expression structure, allowing modifications by visitors. | | [ExternalTraversal](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) | Base class for visitor objects which can traverse externally using the [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse")
function. | | [InternalTraversal](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) | Defines visitor symbols used for internal traversal. | | [iterate](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate)
(obj\[, opts\]) | Traverse the given expression structure, returning an iterator. | | [replacement\_traverse](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse)
(obj, opts, replace) | Clone the given expression structure, allowing element replacement by a given replacement function. | | [traverse](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse)
(obj, opts, visitors) | Traverse and visit the given expression structure using the default iterator. | | [traverse\_using](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using)
(iterator, obj, visitors) | Visit the given expression structure using the given iterator of objects. | | [Traversible](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible) | Base class for visitable objects, applies the [`TraversibleType`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType "sqlalchemy.sql.visitors.TraversibleType")
metaclass. | | [TraversibleType](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType) | Metaclass which assigns dispatch attributes to various kinds of “visitable” classes. | _class_ sqlalchemy.sql.visitors.ExternalTraversal[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal "Link to this definition") Base class for visitor objects which can traverse externally using the [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") function. **Members** [chain()](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain) , [iterate()](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate) , [traverse()](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse) , [visitor\_iterator](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator) Direct usage of the [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") function is usually preferred. _method_ [`sqlalchemy.sql.visitors.ExternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) chain(_visitor_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.chain "Link to this definition") ‘Chain’ an additional ClauseVisitor onto this ClauseVisitor. The chained visitor will receive all visit events after this one. _method_ [`sqlalchemy.sql.visitors.ExternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) iterate(_obj_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.iterate "Link to this definition") Traverse the given expression structure, returning an iterator of all elements. _method_ [`sqlalchemy.sql.visitors.ExternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) traverse(_obj_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.traverse "Link to this definition") Traverse and visit the given expression structure. _attribute_ [`sqlalchemy.sql.visitors.ExternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal) visitor\_iterator[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator "Link to this definition") Iterate through this visitor and each ‘chained’ visitor. _class_ sqlalchemy.sql.visitors.InternalTraversal[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal "Link to this definition") Defines visitor symbols used for internal traversal. The [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal "sqlalchemy.sql.visitors.InternalTraversal") class is used in two ways. One is that it can serve as the superclass for an object that implements the various visit methods of the class. The other is that the symbols themselves of [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal "sqlalchemy.sql.visitors.InternalTraversal") are used within the `_traverse_internals` collection. Such as, the [`Case`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Case "sqlalchemy.sql.expression.Case") object defines `_traverse_internals` as \_traverse\_internals \= \[\ ("value", InternalTraversal.dp\_clauseelement),\ ("whens", InternalTraversal.dp\_clauseelement\_tuples),\ ("else\_", InternalTraversal.dp\_clauseelement),\ \] Above, the [`Case`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Case "sqlalchemy.sql.expression.Case") class indicates its internal state as the attributes named `value`, `whens`, and `else_`. They each link to an [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal "sqlalchemy.sql.visitors.InternalTraversal") method which indicates the type of datastructure referred towards. Using the `_traverse_internals` structure, objects of type `InternalTraversible` will have the following methods automatically implemented: * [`Traversible.get_children()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible.get_children "sqlalchemy.sql.visitors.Traversible.get_children") * `Traversible._copy_internals()` * `Traversible._gen_cache_key()` Subclasses can also implement these methods directly, particularly for the `Traversible._copy_internals()` method, when special steps are needed. **Members** [dispatch()](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dispatch) , [dp\_annotations\_key](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key) , [dp\_anon\_name](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name) , [dp\_boolean](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean) , [dp\_clauseelement](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement) , [dp\_clauseelement\_list](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list) , [dp\_clauseelement\_tuple](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple) , [dp\_clauseelement\_tuples](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples) , [dp\_dialect\_options](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options) , [dp\_dml\_multi\_values](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values) , [dp\_dml\_ordered\_values](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values) , [dp\_dml\_values](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values) , [dp\_fromclause\_canonical\_column\_collection](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection) , [dp\_fromclause\_ordered\_set](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set) , [dp\_has\_cache\_key](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key) , [dp\_has\_cache\_key\_list](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list) , [dp\_named\_ddl\_element](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element) , [dp\_operator](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator) , [dp\_plain\_dict](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict) , [dp\_plain\_obj](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj) , [dp\_prefix\_sequence](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence) , [dp\_propagate\_attrs](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs) , [dp\_statement\_hint\_list](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list) , [dp\_string](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string) , [dp\_string\_clauseelement\_dict](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict) , [dp\_string\_list](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list) , [dp\_string\_multi\_dict](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict) , [dp\_table\_hint\_list](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list) , [dp\_type](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type) , [dp\_unknown\_structure](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure) Added in version 1.4. _method_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dispatch(_visit\_symbol_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dispatch "Link to this definition") Given a method from [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal "sqlalchemy.sql.visitors.InternalTraversal") , return the corresponding method on a subclass. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_annotations\_key _\= symbol('AK')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key "Link to this definition") Visit the \_annotations\_cache\_key element. This is a dictionary of additional information about a ClauseElement that modifies its role. It should be included when comparing or caching objects, however generating this key is relatively expensive. Visitors should check the “\_annotations” dict for non-None first before creating this key. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_anon\_name _\= symbol('AN')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name "Link to this definition") Visit a potentially “anonymized” string value. The string value is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_boolean _\= symbol('B')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_boolean "Link to this definition") Visit a boolean value. The boolean value is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_clauseelement _\= symbol('CE')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement "Link to this definition") Visit a [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_clauseelement\_list _\= symbol('CL')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list "Link to this definition") Visit a list of [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_clauseelement\_tuple _\= symbol('CT')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple "Link to this definition") Visit a tuple of [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_clauseelement\_tuples _\= symbol('CTS')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples "Link to this definition") Visit a list of tuples which contain [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_dialect\_options _\= symbol('DO')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options "Link to this definition") Visit a dialect options structure. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_dml\_multi\_values _\= symbol('DML\_MV')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values "Link to this definition") Visit the values() multi-valued list of dictionaries of an [`Insert`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Insert "sqlalchemy.sql.expression.Insert") object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_dml\_ordered\_values _\= symbol('DML\_OV')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values "Link to this definition") Visit the values() ordered tuple list of an [`Update`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update "sqlalchemy.sql.expression.Update") object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_dml\_values _\= symbol('DML\_V')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values "Link to this definition") Visit the values() dictionary of a [`ValuesBase`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.ValuesBase "sqlalchemy.sql.expression.ValuesBase") (e.g. Insert or Update) object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_fromclause\_canonical\_column\_collection _\= symbol('FC')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection "Link to this definition") Visit a [`FromClause`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause "sqlalchemy.sql.expression.FromClause") object in the context of the `columns` attribute. The column collection is “canonical”, meaning it is the originally defined location of the [`ColumnClause`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnClause "sqlalchemy.sql.expression.ColumnClause") objects. Right now this means that the object being visited is a [`TableClause`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableClause "sqlalchemy.sql.expression.TableClause") or [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") object only. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_fromclause\_ordered\_set _\= symbol('CO')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set "Link to this definition") Visit an ordered set of [`FromClause`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause "sqlalchemy.sql.expression.FromClause") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_has\_cache\_key _\= symbol('HC')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key "Link to this definition") Visit a [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "sqlalchemy.sql.traversals.HasCacheKey") object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_has\_cache\_key\_list _\= symbol('HL')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list "Link to this definition") Visit a list of [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "sqlalchemy.sql.traversals.HasCacheKey") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_named\_ddl\_element _\= symbol('DD')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element "Link to this definition") Visit a simple named DDL element. The current object used by this method is the [`Sequence`](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence "sqlalchemy.schema.Sequence") . The object is only considered to be important for cache key generation as far as its name, but not any other aspects of it. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_operator _\= symbol('O')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_operator "Link to this definition") Visit an operator. The operator is a function from the `sqlalchemy.sql.operators` module. The operator value is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_plain\_dict _\= symbol('PD')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict "Link to this definition") Visit a dictionary with string keys. The keys of the dictionary should be strings, the values should be immutable and hashable. The dictionary is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_plain\_obj _\= symbol('PO')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj "Link to this definition") Visit a plain python object. The value should be immutable and hashable, such as an integer. The value is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_prefix\_sequence _\= symbol('PS')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence "Link to this definition") Visit the sequence represented by [`HasPrefixes`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasPrefixes "sqlalchemy.sql.expression.HasPrefixes") or [`HasSuffixes`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.HasSuffixes "sqlalchemy.sql.expression.HasSuffixes") . _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_propagate\_attrs _\= symbol('PA')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs "Link to this definition") Visit the propagate attrs dict. This hardcodes to the particular elements we care about right now. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_statement\_hint\_list _\= symbol('SH')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list "Link to this definition") Visit the `_statement_hints` collection of a [`Select`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select "sqlalchemy.sql.expression.Select") object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_string _\= symbol('S')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string "Link to this definition") Visit a plain string value. Examples include table and column names, bound parameter keys, special keywords such as “UNION”, “UNION ALL”. The string value is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_string\_clauseelement\_dict _\= symbol('CD')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict "Link to this definition") Visit a dictionary of string keys to [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_string\_list _\= symbol('SL')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_list "Link to this definition") Visit a list of strings. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_string\_multi\_dict _\= symbol('MD')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict "Link to this definition") Visit a dictionary of string keys to values which may either be plain immutable/hashable or [`HasCacheKey`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.traversals.HasCacheKey "sqlalchemy.sql.traversals.HasCacheKey") objects. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_table\_hint\_list _\= symbol('TH')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list "Link to this definition") Visit the `_hints` collection of a [`Select`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select "sqlalchemy.sql.expression.Select") object. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_type _\= symbol('T')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_type "Link to this definition") Visit a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") object The type object is considered to be significant for cache key generation. _attribute_ [`sqlalchemy.sql.visitors.InternalTraversal.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal) dp\_unknown\_structure _\= symbol('UK')_[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure "Link to this definition") Visit an unknown structure. _class_ sqlalchemy.sql.visitors.Traversible[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "Link to this definition") **Members** [get\_children()](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible.get_children) Base class for visitable objects, applies the [`TraversibleType`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType "sqlalchemy.sql.visitors.TraversibleType") metaclass. _method_ [`sqlalchemy.sql.visitors.Traversible.`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible) get\_children(_omit\_attrs\=()_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible.get_children "Link to this definition") Return immediate child [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") elements of this [`Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") . This is used for visit traversal. \*\*kw may contain flags that change the collection that is returned, for example to return a subset of items in order to cut down on larger traversals, or to return child items from a different context (such as schema-level collections instead of clause-level). _class_ sqlalchemy.sql.visitors.TraversibleType(_clsname_, _bases_, _clsdict_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType "Link to this definition") Metaclass which assigns dispatch attributes to various kinds of “visitable” classes. Attributes include: * The `_compiler_dispatch` method, corresponding to `__visit_name__`. This is called “external traversal” because the caller of each visit() method is responsible for sub-traversing the inner elements of each object. This is appropriate for string compilers and other traversals that need to call upon the inner elements in a specific pattern. * internal traversal collections `_children_traversal`, `_cache_key_traversal`, `_copy_internals_traversal`, generated from an optional `_traverse_internals` collection of symbols which comes from the [`InternalTraversal`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.InternalTraversal "sqlalchemy.sql.visitors.InternalTraversal") list of symbols. This is called “internal traversal” MARKMARK **Class signature** class [`sqlalchemy.sql.visitors.TraversibleType`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.TraversibleType "sqlalchemy.sql.visitors.TraversibleType") (`builtins.type`) _function_ sqlalchemy.sql.visitors.cloned\_traverse(_obj_, _opts_, _visitors_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse "Link to this definition") Clone the given expression structure, allowing modifications by visitors. Traversal usage is the same as that of [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") . The visitor functions present in the `visitors` dictionary may also modify the internals of the given structure as the traversal proceeds. The central API feature used by the [`cloned_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse "sqlalchemy.sql.visitors.cloned_traverse") and [`replacement_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse "sqlalchemy.sql.visitors.replacement_traverse") functions, in addition to the [`ClauseElement.get_children()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children "sqlalchemy.sql.expression.ClauseElement.get_children") function that is used to achieve the iteration, is the `ClauseElement._copy_internals()` method. For a [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") structure to support cloning and replacement traversals correctly, it needs to be able to pass a cloning function into its internal members in order to make copies of them. See also [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") [`replacement_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse "sqlalchemy.sql.visitors.replacement_traverse") _function_ sqlalchemy.sql.visitors.iterate(_obj_, _opts\={}_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate "Link to this definition") Traverse the given expression structure, returning an iterator. Traversal is configured to be breadth-first. The central API feature used by the [`iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate "sqlalchemy.sql.visitors.iterate") function is the [`ClauseElement.get_children()`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement.get_children "sqlalchemy.sql.expression.ClauseElement.get_children") method of [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") objects. This method should return all the [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") objects which are associated with a particular [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") object. For example, a [`Case`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Case "sqlalchemy.sql.expression.Case") structure will refer to a series of [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") objects within its “whens” and “else\_” member variables. Parameters: * **obj**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate.params.obj) – [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") structure to be traversed * **opts**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate.params.opts) – dictionary of iteration options. This dictionary is usually empty in modern usage. _function_ sqlalchemy.sql.visitors.replacement\_traverse(_obj_, _opts_, _replace_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse "Link to this definition") Clone the given expression structure, allowing element replacement by a given replacement function. This function is very similar to the [`cloned_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse "sqlalchemy.sql.visitors.cloned_traverse") function, except instead of being passed a dictionary of visitors, all elements are unconditionally passed into the given replace function. The replace function then has the option to return an entirely new object which will replace the one given. If it returns `None`, then the object is kept in place. The difference in usage between [`cloned_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.cloned_traverse "sqlalchemy.sql.visitors.cloned_traverse") and [`replacement_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse "sqlalchemy.sql.visitors.replacement_traverse") is that in the former case, an already-cloned object is passed to the visitor function, and the visitor function can then manipulate the internal state of the object. In the case of the latter, the visitor function should only return an entirely different object, or do nothing. The use case for [`replacement_traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.replacement_traverse "sqlalchemy.sql.visitors.replacement_traverse") is that of replacing a FROM clause inside of a SQL structure with a different one, as is a common use case within the ORM. _function_ sqlalchemy.sql.visitors.traverse(_obj_, _opts_, _visitors_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "Link to this definition") Traverse and visit the given expression structure using the default iterator. > e.g.: > > from sqlalchemy.sql import visitors > > stmt \= select(some\_table).where(some\_table.c.foo \== 'bar') > > def visit\_bindparam(bind\_param): > print("found bound value: %s" % bind\_param.value) > > visitors.traverse(stmt, {}, {"bindparam": visit\_bindparam}) The iteration of objects uses the [`iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate "sqlalchemy.sql.visitors.iterate") function, which does a breadth-first traversal using a stack. Parameters: * **obj**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.obj) – [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") structure to be traversed * **opts**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.opts) – dictionary of iteration options. This dictionary is usually empty in modern usage. * **visitors**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse.params.visitors) – dictionary of visit functions. The dictionary should have strings as keys, each of which would correspond to the `__visit_name__` of a particular kind of SQL expression object, and callable functions as values, each of which represents a visitor function for that kind of object. _function_ sqlalchemy.sql.visitors.traverse\_using(_iterator_, _obj_, _visitors_)[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using "Link to this definition") Visit the given expression structure using the given iterator of objects. [`traverse_using()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using "sqlalchemy.sql.visitors.traverse_using") is usually called internally as the result of the [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") function. Parameters: * **iterator**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.iterator) – an iterable or sequence which will yield [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") structures; the iterator is assumed to be the product of the [`iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate "sqlalchemy.sql.visitors.iterate") function. * **obj**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.obj) – the [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") that was used as the target of the [`iterate()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.iterate "sqlalchemy.sql.visitors.iterate") function. * **visitors**[¶](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse_using.params.visitors) – dictionary of visit functions. See [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") for details on this dictionary. See also [`traverse()`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.traverse "sqlalchemy.sql.visitors.traverse") Previous: [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html "previous chapter") Next: [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # SQL and Generic Functions — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Column Elements and Expressions](https://docs.sqlalchemy.org/en/14/core/sqlelement.html) * [Operator Reference](https://docs.sqlalchemy.org/en/14/core/operators.html) * [Selectables, Tables, FROM objects](https://docs.sqlalchemy.org/en/14/core/selectable.html) * [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html) * **SQL and Generic Functions**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#) * [Function API](https://docs.sqlalchemy.org/en/14/core/functions.html#function-api) * [`AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction) * [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function) * [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) * [`FunctionElement.__init__()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.__init__) * [`FunctionElement.alias()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias) * [`FunctionElement.as_comparison()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison) * [`FunctionElement.clauses`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses) * [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued) * [`FunctionElement.columns`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.columns) * [`FunctionElement.entity_namespace`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.entity_namespace) * [`FunctionElement.execute()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.execute) * [`FunctionElement.exported_columns`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.exported_columns) * [`FunctionElement.filter()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.filter) * [`FunctionElement.over()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.over) * [`FunctionElement.scalar()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar) * [`FunctionElement.scalar_table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued) * [`FunctionElement.select()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.select) * [`FunctionElement.self_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.self_group) * [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued) * [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group) * [`FunctionElement.within_group_type()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type) * [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction) * [`register_function()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.register_function) * [Selected “Known” Functions](https://docs.sqlalchemy.org/en/14/core/functions.html#selected-known-functions) * [`array_agg`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg) * [`char_length`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.char_length) * [`coalesce`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.coalesce) * [`concat`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.concat) * [`count`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.count) * [`cube`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cube) * [`cume_dist`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cume_dist) * [`current_date`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_date) * [`current_time`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_time) * [`current_timestamp`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_timestamp) * [`current_user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_user) * [`dense_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank) * [`grouping_sets`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.grouping_sets) * [`localtime`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtime) * [`localtimestamp`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtimestamp) * [`max`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.max) * [`min`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.min) * [`mode`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.mode) * [`next_value`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.next_value) * [`now`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.now) * [`percent_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percent_rank) * [`percentile_cont`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont) * [`percentile_disc`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_disc) * [`random`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.random) * [`rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank) * [`rollup`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rollup) * [`session_user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.session_user) * [`sum`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sum) * [`sysdate`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sysdate) * [`user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.user) * [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) * [Expression Serializer Extension](https://docs.sqlalchemy.org/en/14/core/serializer.html) * [SQL Expression Language Foundational Constructs](https://docs.sqlalchemy.org/en/14/core/foundation.html) * [Visitor and Traversal Utilities](https://docs.sqlalchemy.org/en/14/core/visitors.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html "previous chapter") * **Next:** [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html "SQL Statements and Expressions API") * **On this page:** * [SQL and Generic Functions](https://docs.sqlalchemy.org/en/14/core/functions.html#sql-and-generic-functions) * [Function API](https://docs.sqlalchemy.org/en/14/core/functions.html#function-api) * [`AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction) * [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function) * [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) * [`FunctionElement.__init__()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.__init__) * [`FunctionElement.alias()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias) * [`FunctionElement.as_comparison()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison) * [`FunctionElement.clauses`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses) * [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued) * [`FunctionElement.columns`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.columns) * [`FunctionElement.entity_namespace`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.entity_namespace) * [`FunctionElement.execute()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.execute) * [`FunctionElement.exported_columns`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.exported_columns) * [`FunctionElement.filter()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.filter) * [`FunctionElement.over()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.over) * [`FunctionElement.scalar()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar) * [`FunctionElement.scalar_table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued) * [`FunctionElement.select()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.select) * [`FunctionElement.self_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.self_group) * [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued) * [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group) * [`FunctionElement.within_group_type()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type) * [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction) * [`register_function()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.register_function) * [Selected “Known” Functions](https://docs.sqlalchemy.org/en/14/core/functions.html#selected-known-functions) * [`array_agg`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg) * [`char_length`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.char_length) * [`coalesce`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.coalesce) * [`concat`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.concat) * [`count`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.count) * [`cube`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cube) * [`cume_dist`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cume_dist) * [`current_date`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_date) * [`current_time`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_time) * [`current_timestamp`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_timestamp) * [`current_user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_user) * [`dense_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank) * [`grouping_sets`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.grouping_sets) * [`localtime`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtime) * [`localtimestamp`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtimestamp) * [`max`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.max) * [`min`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.min) * [`mode`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.mode) * [`next_value`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.next_value) * [`now`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.now) * [`percent_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percent_rank) * [`percentile_cont`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont) * [`percentile_disc`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_disc) * [`random`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.random) * [`rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank) * [`rollup`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rollup) * [`session_user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.session_user) * [`sum`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sum) * [`sysdate`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sysdate) * [`user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.user) SQL and Generic Functions[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sql-and-generic-functions "Link to this heading") ===================================================================================================================================== SQL functions are invoked by using the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") namespace. See the tutorial at [Working with SQL Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions) for background on how to use the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") object to render SQL functions in statements. See also [Working with SQL Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) Function API[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#function-api "Link to this heading") ----------------------------------------------------------------------------------------------------------- The base API for SQL functions, which provides for the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") namespace as well as classes that may be used for extensibility. | Object Name | Description | | --- | --- | | [AnsiFunction](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction) | Define a function in “ansi” format, which doesn’t render parenthesis. | | [Function](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function) | Describe a named SQL function. | | [FunctionElement](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) | Base for SQL function-oriented constructs. | | [GenericFunction](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction) | Define a ‘generic’ function. | | [register\_function](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.register_function)
(identifier, fn\[, package\]) | Associate a callable with a particular func. name. | _class_ sqlalchemy.sql.functions.AnsiFunction(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "Link to this definition") Define a function in “ansi” format, which doesn’t render parenthesis. **Class signature** class [`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.Function(_name_, _\*clauses_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "Link to this definition") Describe a named SQL function. The [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") object is typically generated from the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") generation object. Parameters: * **\*clauses**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function.params.*clauses) – list of column expressions that form the arguments of the SQL function call. * **type\_**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function.params.type_) – optional [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") datatype object that will be used as the return value of the column expression generated by this function call. * **packagenames**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function.params.packagenames) – a string which indicates package prefix names to be prepended to the function name when the SQL is generated. The [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") generator creates these when it is called using dotted format, e.g.: func.mypackage.some\_function(col1, col2) See also [Working with SQL Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") - namespace which produces registered or ad-hoc [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") instances. [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") - allows creation of registered function types. **Class signature** class [`sqlalchemy.sql.functions.Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") ([`sqlalchemy.sql.functions.FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") ) _class_ sqlalchemy.sql.functions.FunctionElement(_\*clauses_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "Link to this definition") Base for SQL function-oriented constructs. See also [Working with SQL Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") - named SQL function. [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") - namespace which produces registered or ad-hoc [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") instances. [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") - allows creation of registered function types. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.__init__) , [alias()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias) , [as\_comparison()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison) , [clauses](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses) , [column\_valued()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued) , [columns](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.columns) , [entity\_namespace](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.entity_namespace) , [execute()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.execute) , [exported\_columns](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.exported_columns) , [filter()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.filter) , [over()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.over) , [scalar()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar) , [scalar\_table\_valued()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued) , [select()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.select) , [self\_group()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.self_group) , [table\_valued()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued) , [within\_group()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group) , [within\_group\_type()](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type) **Class signature** class [`sqlalchemy.sql.functions.FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") ([`sqlalchemy.sql.expression.Executable`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Executable "sqlalchemy.sql.expression.Executable") , [`sqlalchemy.sql.expression.ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") , [`sqlalchemy.sql.expression.FromClause`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.FromClause "sqlalchemy.sql.expression.FromClause") , `sqlalchemy.sql.expression.Generative`) _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) \_\_init\_\_(_\*clauses_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.__init__ "Link to this definition") Construct a [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") . Parameters: * **\*clauses**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.params.*clauses) – list of column expressions that form the arguments of the SQL function call. * **\*\*kwargs**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.params.**kwargs) – additional kwargs are typically consumed by subclasses. See also [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) alias(_name\=None_, _joins\_implicitly\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias "Link to this definition") Produce a [`Alias`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Alias "sqlalchemy.sql.expression.Alias") construct against this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") . Tip The [`FunctionElement.alias()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias "sqlalchemy.sql.functions.FunctionElement.alias") method is part of the mechanism by which “table valued” SQL functions are created. However, most use cases are covered by higher level methods on [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") including [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") , and [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued "sqlalchemy.sql.functions.FunctionElement.column_valued") . This construct wraps the function in a named alias which is suitable for the FROM clause, in the style accepted for example by PostgreSQL. A column expression is also provided using the special `.column` attribute, which may be used to refer to the output of the function as a scalar value in the columns or where clause, for a backend such as PostgreSQL. For a full table-valued expression, use the [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") method first to establish named columns. e.g.: \>>> from sqlalchemy import func, select, column \>>> data\_view \= func.unnest(\[1, 2, 3\]).alias("data\_view") \>>> print(select(data\_view.column)) SELECT data\_view FROM unnest(:unnest\_1) AS data\_view The [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued "sqlalchemy.sql.functions.FunctionElement.column_valued") method provides a shortcut for the above pattern: \>>> data\_view \= func.unnest(\[1, 2, 3\]).column\_valued("data\_view") \>>> print(select(data\_view)) SELECT data\_view FROM unnest(:unnest\_1) AS data\_view Added in version 1.4.0b2: Added the `.column` accessor Parameters: * **name**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias.params.name) – alias name, will be rendered as `AS ` in the FROM clause * **joins\_implicitly**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias.params.joins_implicitly) – when True, the table valued function may be used in the FROM clause without any explicit JOIN to other tables in the SQL query, and no “cartesian product” warning will be generated. May be useful for SQL functions such as `func.json_each()`. Added in version 1.4.33. See also [Table-Valued Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions-table-valued) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") [`FunctionElement.scalar_table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued "sqlalchemy.sql.functions.FunctionElement.scalar_table_valued") [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued "sqlalchemy.sql.functions.FunctionElement.column_valued") _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) as\_comparison(_left\_index_, _right\_index_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison "Link to this definition") Interpret this expression as a boolean comparison between two values. This method is used for an ORM use case described at [Custom operators based on SQL functions](https://docs.sqlalchemy.org/en/14/orm/join_conditions.html#relationship-custom-operator-sql-function) . A hypothetical SQL function “is\_equal()” which compares to values for equality would be written in the Core expression language as: expr \= func.is\_equal("a", "b") If “is\_equal()” above is comparing “a” and “b” for equality, the [`FunctionElement.as_comparison()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison "sqlalchemy.sql.functions.FunctionElement.as_comparison") method would be invoked as: expr \= func.is\_equal("a", "b").as\_comparison(1, 2) Where above, the integer value “1” refers to the first argument of the “is\_equal()” function and the integer value “2” refers to the second. This would create a [`BinaryExpression`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BinaryExpression "sqlalchemy.sql.expression.BinaryExpression") that is equivalent to: BinaryExpression("a", "b", operator\=op.eq) However, at the SQL level it would still render as “is\_equal(‘a’, ‘b’)”. The ORM, when it loads a related object or collection, needs to be able to manipulate the “left” and “right” sides of the ON clause of a JOIN expression. The purpose of this method is to provide a SQL function construct that can also supply this information to the ORM, when used with the [`relationship.primaryjoin`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship.params.primaryjoin "sqlalchemy.orm.relationship") parameter. The return value is a containment object called `FunctionAsBinary`. An ORM example is as follows: class Venue(Base): \_\_tablename\_\_ \= 'venue' id \= Column(Integer, primary\_key\=True) name \= Column(String) descendants \= relationship( "Venue", primaryjoin\=func.instr( remote(foreign(name)), name + "/" ).as\_comparison(1, 2) \== 1, viewonly\=True, order\_by\=name ) Above, the “Venue” class can load descendant “Venue” objects by determining if the name of the parent Venue is contained within the start of the hypothetical descendant value’s name, e.g. “parent1” would match up to “parent1/child1”, but not to “parent2/child1”. Possible use cases include the “materialized path” example given above, as well as making use of special SQL functions such as geometric functions to create join conditions. Parameters: * **left\_index**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.left_index) – the integer 1-based index of the function argument that serves as the “left” side of the expression. * **right\_index**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.as_comparison.params.right_index) – the integer 1-based index of the function argument that serves as the “right” side of the expression. Added in version 1.3. See also [Custom operators based on SQL functions](https://docs.sqlalchemy.org/en/14/orm/join_conditions.html#relationship-custom-operator-sql-function) - example use within the ORM _attribute_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) clauses[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.clauses "Link to this definition") Return the underlying [`ClauseList`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ClauseList "sqlalchemy.sql.expression.ClauseList") which contains the arguments for this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") . _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) column\_valued(_name\=None_, _joins\_implicitly\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued "Link to this definition") Return this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") as a column expression that selects from itself as a FROM clause. E.g.: \>>> from sqlalchemy import select, func \>>> gs \= func.generate\_series(1, 5, \-1).column\_valued() \>>> print(select(gs)) SELECT anon\_1 FROM generate\_series(:generate\_series\_1, :generate\_series\_2, :generate\_series\_3) AS anon\_1 This is shorthand for: gs \= func.generate\_series(1, 5, \-1).alias().column Parameters: * **name**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued.params.name) – optional name to assign to the alias name that’s generated. If omitted, a unique anonymizing name is used. * **joins\_implicitly**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued.params.joins_implicitly) – when True, the “table” portion of the column valued function may be a member of the FROM clause without any explicit JOIN to other tables in the SQL query, and no “cartesian product” warning will be generated. May be useful for SQL functions such as `func.json_array_elements()`. Added in version 1.4.46. See also [Column Valued Functions - Table Valued Function as a Scalar Column](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions-column-valued) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) [Column Valued Functions](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#postgresql-column-valued) - in the [PostgreSQL](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html) documentation [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") _attribute_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) columns[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.columns "Link to this definition") The set of columns exported by this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") . This is a placeholder collection that allows the function to be placed in the FROM clause of a statement: \>>> from sqlalchemy import column, select, func \>>> stmt \= select(column('x'), column('y')).select\_from(func.myfunction()) \>>> print(stmt) SELECT x, y FROM myfunction() The above form is a legacy feature that is now superseded by the fully capable [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") method; see that method for details. See also [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") - generates table-valued SQL function expressions. _attribute_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) entity\_namespace[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.entity_namespace "Link to this definition") overrides FromClause.entity\_namespace as functions are generally column expressions and not FromClauses. _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) execute()[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.execute "Link to this definition") Execute this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") against an embedded ‘bind’. Deprecated since version 1.4: The [`FunctionElement.execute()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.execute "sqlalchemy.sql.functions.FunctionElement.execute") method is considered legacy as of the 1.x series of SQLAlchemy and will be removed in 2.0. All statement execution in SQLAlchemy 2.0 is performed by the [`Connection.execute()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.execute "sqlalchemy.engine.Connection.execute") method of [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , or in the ORM by the [`Session.execute()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.execute "sqlalchemy.orm.Session.execute") method of [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . (Background on SQLAlchemy 2.0 at: [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html) ) This first calls [`FunctionElement.select()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.select "sqlalchemy.sql.functions.FunctionElement.select") to produce a SELECT construct. Note that [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") can be passed to the `Connectable.execute()` method of [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") or [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") . _attribute_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) exported\_columns[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.exported_columns "Link to this definition") _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) filter(_\*criterion_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.filter "Link to this definition") Produce a FILTER clause against this function. Used against aggregate and window functions, for database backends that support the “FILTER” clause. The expression: func.count(1).filter(True) is shorthand for: from sqlalchemy import funcfilter funcfilter(func.count(1), True) Added in version 1.0.0. See also [Special Modifiers WITHIN GROUP, FILTER](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions-within-group) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) [`FunctionFilter`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.FunctionFilter "sqlalchemy.sql.expression.FunctionFilter") [`funcfilter()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.funcfilter "sqlalchemy.sql.expression.funcfilter") _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) over(_partition\_by\=None_, _order\_by\=None_, _rows\=None_, _range\_\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.over "Link to this definition") Produce an OVER clause against this function. Used against aggregate or so-called “window” functions, for database backends that support window functions. The expression: func.row\_number().over(order\_by\='x') is shorthand for: from sqlalchemy import over over(func.row\_number(), order\_by\='x') See [`over()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over "sqlalchemy.sql.expression.over") for a full description. See also [`over()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.over "sqlalchemy.sql.expression.over") [Using Window Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-window-functions) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) scalar()[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar "Link to this definition") Execute this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") against an embedded ‘bind’ and return a scalar value. Deprecated since version 1.4: The [`FunctionElement.scalar()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar "sqlalchemy.sql.functions.FunctionElement.scalar") method is considered legacy as of the 1.x series of SQLAlchemy and will be removed in 2.0. Scalar execution in SQLAlchemy 2.0 is performed by the [`Connection.scalar()`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection.scalar "sqlalchemy.engine.Connection.scalar") method of [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") , or in the ORM by the [`Session.scalar()`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session.scalar "sqlalchemy.orm.Session.scalar") method of [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") . (Background on SQLAlchemy 2.0 at: [Migrating to SQLAlchemy 2.0](https://docs.sqlalchemy.org/en/14/changelog/migration_20.html) ) This first calls [`FunctionElement.select()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.select "sqlalchemy.sql.functions.FunctionElement.select") to produce a SELECT construct. Note that [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") can be passed to the `Connectable.scalar()` method of [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection "sqlalchemy.engine.Connection") or [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") . _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) scalar\_table\_valued(_name_, _type\_\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued "Link to this definition") Return a column expression that’s against this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") as a scalar table-valued expression. The returned expression is similar to that returned by a single column accessed off of a [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") construct, except no FROM clause is generated; the function is rendered in the similar way as a scalar subquery. E.g.: \>>> from sqlalchemy import func, select \>>> fn \= func.jsonb\_each("{'k', 'v'}").scalar\_table\_valued("key") \>>> print(select(fn)) SELECT (jsonb\_each(:jsonb\_each\_1)).key Added in version 1.4.0b2. See also [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") [`FunctionElement.alias()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.alias "sqlalchemy.sql.functions.FunctionElement.alias") [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued "sqlalchemy.sql.functions.FunctionElement.column_valued") _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) select()[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.select "Link to this definition") Produce a [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") construct against this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") . This is shorthand for: s \= select(function\_element) _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) self\_group(_against\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.self_group "Link to this definition") Apply a ‘grouping’ to this [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") . This method is overridden by subclasses to return a “grouping” construct, i.e. parenthesis. In particular it’s used by “binary” expressions to provide a grouping around themselves when placed into a larger expression, as well as by [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") constructs when placed into the FROM clause of another [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") . (Note that subqueries should be normally created using the [`Select.alias()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.alias "sqlalchemy.sql.expression.Select.alias") method, as many platforms require nested SELECT statements to be named). As expressions are composed together, the application of [`self_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.self_group "sqlalchemy.sql.functions.FunctionElement.self_group") is automatic - end-user code should never need to use this method directly. Note that SQLAlchemy’s clause constructs take operator precedence into account - so parenthesis might not be needed, for example, in an expression like `x OR (y AND z)` - AND takes precedence over OR. The base [`self_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.self_group "sqlalchemy.sql.functions.FunctionElement.self_group") method of [`ClauseElement`](https://docs.sqlalchemy.org/en/14/core/foundation.html#sqlalchemy.sql.expression.ClauseElement "sqlalchemy.sql.expression.ClauseElement") just returns self. _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) table\_valued(_\*expr_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "Link to this definition") Return a [`TableValuedAlias`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias "sqlalchemy.sql.expression.TableValuedAlias") representation of this [`FunctionElement`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement "sqlalchemy.sql.functions.FunctionElement") with table-valued expressions added. e.g.: \>>> fn \= ( ... func.generate\_series(1, 5). ... table\_valued("value", "start", "stop", "step") ... ) \>>> print(select(fn)) SELECT anon\_1.value, anon\_1.start, anon\_1.stop, anon\_1.step FROM generate\_series(:generate\_series\_1, :generate\_series\_2) AS anon\_1 \>>> print(select(fn.c.value, fn.c.stop).where(fn.c.value \> 2)) SELECT anon\_1.value, anon\_1.stop FROM generate\_series(:generate\_series\_1, :generate\_series\_2) AS anon\_1 WHERE anon\_1.value > :value\_1 A WITH ORDINALITY expression may be generated by passing the keyword argument “with\_ordinality”: \>>> fn \= func.generate\_series(4, 1, \-1).table\_valued("gen", with\_ordinality\="ordinality") \>>> print(select(fn)) SELECT anon\_1.gen, anon\_1.ordinality FROM generate\_series(:generate\_series\_1, :generate\_series\_2, :generate\_series\_3) WITH ORDINALITY AS anon\_1 Parameters: * **\*expr**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.*expr) – A series of string column names that will be added to the `.c` collection of the resulting [`TableValuedAlias`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias "sqlalchemy.sql.expression.TableValuedAlias") construct as columns. [`column()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.column "sqlalchemy.sql.expression.column") objects with or without datatypes may also be used. * **name**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.name) – optional name to assign to the alias name that’s generated. If omitted, a unique anonymizing name is used. * **with\_ordinality**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.with_ordinality) – string name that when present results in the `WITH ORDINALITY` clause being added to the alias, and the given string name will be added as a column to the .c collection of the resulting [`TableValuedAlias`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias "sqlalchemy.sql.expression.TableValuedAlias") . * **joins\_implicitly**[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued.params.joins_implicitly) – when True, the table valued function may be used in the FROM clause without any explicit JOIN to other tables in the SQL query, and no “cartesian product” warning will be generated. May be useful for SQL functions such as `func.json_each()`. Added in version 1.4.33. Added in version 1.4.0b2. See also [Table-Valued Functions](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions-table-valued) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) [Table-Valued Functions](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#postgresql-table-valued) - in the [PostgreSQL](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html) documentation [`FunctionElement.scalar_table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.scalar_table_valued "sqlalchemy.sql.functions.FunctionElement.scalar_table_valued") - variant of [`FunctionElement.table_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.table_valued "sqlalchemy.sql.functions.FunctionElement.table_valued") which delivers the complete table valued expression as a scalar column expression [`FunctionElement.column_valued()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.column_valued "sqlalchemy.sql.functions.FunctionElement.column_valued") [`TableValuedAlias.render_derived()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.TableValuedAlias.render_derived "sqlalchemy.sql.expression.TableValuedAlias.render_derived") - renders the alias using a derived column clause, e.g. `AS name(col1, col2, ...)` _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) within\_group(_\*order\_by_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "Link to this definition") Produce a WITHIN GROUP (ORDER BY expr) clause against this function. Used against so-called “ordered set aggregate” and “hypothetical set aggregate” functions, including [`percentile_cont`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont "sqlalchemy.sql.functions.percentile_cont") , [`rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank "sqlalchemy.sql.functions.rank") , [`dense_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank "sqlalchemy.sql.functions.dense_rank") , etc. See [`within_group()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.within_group "sqlalchemy.sql.expression.within_group") for a full description. Added in version 1.1. See also [Special Modifiers WITHIN GROUP, FILTER](https://docs.sqlalchemy.org/en/14/tutorial/data_select.html#tutorial-functions-within-group) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) _method_ [`sqlalchemy.sql.functions.FunctionElement.`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement) within\_group\_type(_within\_group_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group_type "Link to this definition") For types that define their return type as based on the criteria within a WITHIN GROUP (ORDER BY) expression, called by the [`WithinGroup`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.WithinGroup "sqlalchemy.sql.expression.WithinGroup") construct. Returns None by default, in which case the function’s normal `.type` is used. _class_ sqlalchemy.sql.functions.GenericFunction(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "Link to this definition") Define a ‘generic’ function. A generic function is a pre-established [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") class that is instantiated automatically when called by name from the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") attribute. Note that calling any name from [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") has the effect that a new [`Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") instance is created automatically, given that name. The primary use case for defining a [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") class is so that a function of a particular name may be given a fixed return type. It can also include custom argument parsing schemes as well as additional methods. Subclasses of [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") are automatically registered under the name of the class. For example, a user-defined function `as_utc()` would be available immediately: from sqlalchemy.sql.functions import GenericFunction from sqlalchemy.types import DateTime class as\_utc(GenericFunction): type \= DateTime inherit\_cache \= True print(select(func.as\_utc())) User-defined generic functions can be organized into packages by specifying the “package” attribute when defining [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") . Third party libraries containing many functions may want to use this in order to avoid name conflicts with other systems. For example, if our `as_utc()` function were part of a package “time”: class as\_utc(GenericFunction): type \= DateTime package \= "time" inherit\_cache \= True The above function would be available from [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") using the package name `time`: print(select(func.time.as\_utc())) A final option is to allow the function to be accessed from one name in [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") but to render as a different name. The `identifier` attribute will override the name used to access the function as loaded from [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") , but will retain the usage of `name` as the rendered name: class GeoBuffer(GenericFunction): type \= Geometry package \= "geo" name \= "ST\_Buffer" identifier \= "buffer" inherit\_cache \= True The above function will render as follows: \>>> print(func.geo.buffer()) ST\_Buffer() The name will be rendered as is, however without quoting unless the name contains special characters that require quoting. To force quoting on or off for the name, use the `quoted_name` construct: from sqlalchemy.sql import quoted\_name class GeoBuffer(GenericFunction): type \= Geometry package \= "geo" name \= quoted\_name("ST\_Buffer", True) identifier \= "buffer" inherit\_cache \= True The above function will render as: \>>> print(func.geo.buffer()) "ST\_Buffer"() Added in version 1.3.13: The [`quoted_name`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.quoted_name "sqlalchemy.sql.expression.quoted_name") construct is now recognized for quoting when used with the “name” attribute of the object, so that quoting can be forced on or off for the function name. **Class signature** class [`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ([`sqlalchemy.sql.functions.Function`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.Function "sqlalchemy.sql.functions.Function") ) _function_ sqlalchemy.sql.functions.register\_function(_identifier_, _fn_, _package\='\_default'_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.register_function "Link to this definition") Associate a callable with a particular func. name. This is normally called by \_GenericMeta, but is also available by itself so that a non-Function construct can be associated with the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") accessor (i.e. CAST, EXTRACT). Selected “Known” Functions[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#selected-known-functions "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------- These are [`GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") implementations for a selected set of common SQL functions that set up the expected return type for each function automatically. The are invoked in the same way as any other member of the [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") namespace: select(func.count("\*")).select\_from(some\_table) Note that any name not known to [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") generates the function name as is - there is no restriction on what SQL functions can be called, known or unknown to SQLAlchemy, built-in or user defined. The section here only describes those functions where SQLAlchemy already knows what argument and return types are in use. | Object Name | Description | | --- | --- | | [array\_agg](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg) | Support for the ARRAY\_AGG function. | | [char\_length](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.char_length) | The CHAR\_LENGTH() SQL function. | | [coalesce](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.coalesce) | | | [concat](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.concat) | The SQL CONCAT() function, which concatenates strings. | | [count](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.count) | The ANSI COUNT aggregate function. With no arguments, emits COUNT \*. | | [cube](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cube) | Implement the `CUBE` grouping operation. | | [cume\_dist](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cume_dist) | Implement the `cume_dist` hypothetical-set aggregate function. | | [current\_date](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_date) | The CURRENT\_DATE() SQL function. | | [current\_time](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_time) | The CURRENT\_TIME() SQL function. | | [current\_timestamp](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_timestamp) | The CURRENT\_TIMESTAMP() SQL function. | | [current\_user](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_user) | The CURRENT\_USER() SQL function. | | [dense\_rank](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank) | Implement the `dense_rank` hypothetical-set aggregate function. | | [grouping\_sets](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.grouping_sets) | Implement the `GROUPING SETS` grouping operation. | | [localtime](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtime) | The localtime() SQL function. | | [localtimestamp](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtimestamp) | The localtimestamp() SQL function. | | [max](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.max) | The SQL MAX() aggregate function. | | [min](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.min) | The SQL MIN() aggregate function. | | [mode](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.mode) | Implement the `mode` ordered-set aggregate function. | | [next\_value](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.next_value) | Represent the ‘next value’, given a [`Sequence`](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence "sqlalchemy.schema.Sequence")
as its single argument. | | [now](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.now) | The SQL now() datetime function. | | [percent\_rank](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percent_rank) | Implement the `percent_rank` hypothetical-set aggregate function. | | [percentile\_cont](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont) | Implement the `percentile_cont` ordered-set aggregate function. | | [percentile\_disc](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_disc) | Implement the `percentile_disc` ordered-set aggregate function. | | [random](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.random) | The RANDOM() SQL function. | | [rank](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank) | Implement the `rank` hypothetical-set aggregate function. | | [rollup](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rollup) | Implement the `ROLLUP` grouping operation. | | [session\_user](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.session_user) | The SESSION\_USER() SQL function. | | [sum](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sum) | The SQL SUM() aggregate function. | | [sysdate](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sysdate) | The SYSDATE() SQL function. | | [user](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.user) | The USER() SQL function. | _class_ sqlalchemy.sql.functions.array\_agg(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg "Link to this definition") Support for the ARRAY\_AGG function. The `func.array_agg(expr)` construct returns an expression of type [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") . e.g.: stmt \= select(func.array\_agg(table.c.values)\[2:5\]) Added in version 1.1. See also [`array_agg()`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.array_agg "sqlalchemy.dialects.postgresql.array_agg") - PostgreSQL-specific version that returns [`ARRAY`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY "sqlalchemy.dialects.postgresql.ARRAY") , which has PG-specific operators added. **Class signature** class [`sqlalchemy.sql.functions.array_agg`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg "sqlalchemy.sql.functions.array_agg") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.char\_length(_arg_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.char_length "Link to this definition") The CHAR\_LENGTH() SQL function. **Class signature** class [`sqlalchemy.sql.functions.char_length`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.char_length "sqlalchemy.sql.functions.char_length") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.coalesce(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.coalesce "Link to this definition") **Class signature** class [`sqlalchemy.sql.functions.coalesce`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.coalesce "sqlalchemy.sql.functions.coalesce") (`sqlalchemy.sql.functions.ReturnTypeFromArgs`) _class_ sqlalchemy.sql.functions.concat(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.concat "Link to this definition") The SQL CONCAT() function, which concatenates strings. E.g.: \>>> print(select(func.concat('a', 'b'))) SELECT concat(:concat\_2, :concat\_3) AS concat\_1 String concatenation in SQLAlchemy is more commonly available using the Python `+` operator with string datatypes, which will render a backend-specific concatenation operator, such as \>>> print(select(literal("a") + "b")) SELECT :param\_1 || :param\_2 AS anon\_1 **Class signature** class [`sqlalchemy.sql.functions.concat`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.concat "sqlalchemy.sql.functions.concat") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.count(_expression\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.count "Link to this definition") The ANSI COUNT aggregate function. With no arguments, emits COUNT \*. E.g.: from sqlalchemy import func from sqlalchemy import select from sqlalchemy import table, column my\_table \= table('some\_table', column('id')) stmt \= select(func.count()).select\_from(my\_table) Executing `stmt` would emit: SELECT count(\*) AS count\_1 FROM some\_table **Class signature** class [`sqlalchemy.sql.functions.count`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.count "sqlalchemy.sql.functions.count") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.cube(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cube "Link to this definition") Implement the `CUBE` grouping operation. This function is used as part of the GROUP BY of a statement, e.g. [`Select.group_by()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.group_by "sqlalchemy.sql.expression.Select.group_by") : stmt \= select( func.sum(table.c.value), table.c.col\_1, table.c.col\_2 ).group\_by(func.cube(table.c.col\_1, table.c.col\_2)) Added in version 1.2. **Class signature** class [`sqlalchemy.sql.functions.cube`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cube "sqlalchemy.sql.functions.cube") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.cume\_dist(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cume_dist "Link to this definition") Implement the `cume_dist` hypothetical-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") . Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.cume_dist`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.cume_dist "sqlalchemy.sql.functions.cume_dist") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.current\_date(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_date "Link to this definition") The CURRENT\_DATE() SQL function. **Class signature** class [`sqlalchemy.sql.functions.current_date`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_date "sqlalchemy.sql.functions.current_date") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.current\_time(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_time "Link to this definition") The CURRENT\_TIME() SQL function. **Class signature** class [`sqlalchemy.sql.functions.current_time`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_time "sqlalchemy.sql.functions.current_time") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.current\_timestamp(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_timestamp "Link to this definition") The CURRENT\_TIMESTAMP() SQL function. **Class signature** class [`sqlalchemy.sql.functions.current_timestamp`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_timestamp "sqlalchemy.sql.functions.current_timestamp") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.current\_user(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_user "Link to this definition") The CURRENT\_USER() SQL function. **Class signature** class [`sqlalchemy.sql.functions.current_user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.current_user "sqlalchemy.sql.functions.current_user") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.dense\_rank(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank "Link to this definition") Implement the `dense_rank` hypothetical-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") . Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.dense_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.dense_rank "sqlalchemy.sql.functions.dense_rank") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.grouping\_sets(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.grouping_sets "Link to this definition") Implement the `GROUPING SETS` grouping operation. This function is used as part of the GROUP BY of a statement, e.g. [`Select.group_by()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.group_by "sqlalchemy.sql.expression.Select.group_by") : stmt \= select( func.sum(table.c.value), table.c.col\_1, table.c.col\_2 ).group\_by(func.grouping\_sets(table.c.col\_1, table.c.col\_2)) In order to group by multiple sets, use the [`tuple_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.tuple_ "sqlalchemy.sql.expression.tuple_") construct: from sqlalchemy import tuple\_ stmt \= select( func.sum(table.c.value), table.c.col\_1, table.c.col\_2, table.c.col\_3 ).group\_by( func.grouping\_sets( tuple\_(table.c.col\_1, table.c.col\_2), tuple\_(table.c.value, table.c.col\_3), ) ) Added in version 1.2. **Class signature** class [`sqlalchemy.sql.functions.grouping_sets`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.grouping_sets "sqlalchemy.sql.functions.grouping_sets") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.localtime(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtime "Link to this definition") The localtime() SQL function. **Class signature** class [`sqlalchemy.sql.functions.localtime`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtime "sqlalchemy.sql.functions.localtime") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.localtimestamp(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtimestamp "Link to this definition") The localtimestamp() SQL function. **Class signature** class [`sqlalchemy.sql.functions.localtimestamp`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.localtimestamp "sqlalchemy.sql.functions.localtimestamp") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.max(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.max "Link to this definition") The SQL MAX() aggregate function. **Class signature** class [`sqlalchemy.sql.functions.max`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.max "sqlalchemy.sql.functions.max") (`sqlalchemy.sql.functions.ReturnTypeFromArgs`) _class_ sqlalchemy.sql.functions.min(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.min "Link to this definition") The SQL MIN() aggregate function. **Class signature** class [`sqlalchemy.sql.functions.min`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.min "sqlalchemy.sql.functions.min") (`sqlalchemy.sql.functions.ReturnTypeFromArgs`) _class_ sqlalchemy.sql.functions.mode(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.mode "Link to this definition") Implement the `mode` ordered-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is the same as the sort expression. Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.mode`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.mode "sqlalchemy.sql.functions.mode") (`sqlalchemy.sql.functions.OrderedSetAgg`) _class_ sqlalchemy.sql.functions.next\_value(_seq_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.next_value "Link to this definition") Represent the ‘next value’, given a [`Sequence`](https://docs.sqlalchemy.org/en/14/core/defaults.html#sqlalchemy.schema.Sequence "sqlalchemy.schema.Sequence") as its single argument. Compiles into the appropriate function on each backend, or will raise NotImplementedError if used on a backend that does not provide support for sequences. **Class signature** class [`sqlalchemy.sql.functions.next_value`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.next_value "sqlalchemy.sql.functions.next_value") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.now(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.now "Link to this definition") The SQL now() datetime function. SQLAlchemy dialects will usually render this particular function in a backend-specific way, such as rendering it as `CURRENT_TIMESTAMP`. **Class signature** class [`sqlalchemy.sql.functions.now`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.now "sqlalchemy.sql.functions.now") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.percent\_rank(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percent_rank "Link to this definition") Implement the `percent_rank` hypothetical-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") . Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.percent_rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percent_rank "sqlalchemy.sql.functions.percent_rank") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.percentile\_cont(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont "Link to this definition") Implement the `percentile_cont` ordered-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is the same as the sort expression, or if the arguments are an array, an [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") of the sort expression’s type. Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.percentile_cont`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_cont "sqlalchemy.sql.functions.percentile_cont") (`sqlalchemy.sql.functions.OrderedSetAgg`) _class_ sqlalchemy.sql.functions.percentile\_disc(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_disc "Link to this definition") Implement the `percentile_disc` ordered-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is the same as the sort expression, or if the arguments are an array, an [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") of the sort expression’s type. Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.percentile_disc`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.percentile_disc "sqlalchemy.sql.functions.percentile_disc") (`sqlalchemy.sql.functions.OrderedSetAgg`) _class_ sqlalchemy.sql.functions.random(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.random "Link to this definition") The RANDOM() SQL function. **Class signature** class [`sqlalchemy.sql.functions.random`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.random "sqlalchemy.sql.functions.random") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.rank(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank "Link to this definition") Implement the `rank` hypothetical-set aggregate function. This function must be used with the [`FunctionElement.within_group()`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.FunctionElement.within_group "sqlalchemy.sql.functions.FunctionElement.within_group") modifier to supply a sort expression to operate upon. The return type of this function is [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") . Added in version 1.1. **Class signature** class [`sqlalchemy.sql.functions.rank`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rank "sqlalchemy.sql.functions.rank") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.rollup(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rollup "Link to this definition") Implement the `ROLLUP` grouping operation. This function is used as part of the GROUP BY of a statement, e.g. [`Select.group_by()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.Select.group_by "sqlalchemy.sql.expression.Select.group_by") : stmt \= select( func.sum(table.c.value), table.c.col\_1, table.c.col\_2 ).group\_by(func.rollup(table.c.col\_1, table.c.col\_2)) Added in version 1.2. **Class signature** class [`sqlalchemy.sql.functions.rollup`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.rollup "sqlalchemy.sql.functions.rollup") ([`sqlalchemy.sql.functions.GenericFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.GenericFunction "sqlalchemy.sql.functions.GenericFunction") ) _class_ sqlalchemy.sql.functions.session\_user(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.session_user "Link to this definition") The SESSION\_USER() SQL function. **Class signature** class [`sqlalchemy.sql.functions.session_user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.session_user "sqlalchemy.sql.functions.session_user") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.sum(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sum "Link to this definition") The SQL SUM() aggregate function. **Class signature** class [`sqlalchemy.sql.functions.sum`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sum "sqlalchemy.sql.functions.sum") (`sqlalchemy.sql.functions.ReturnTypeFromArgs`) _class_ sqlalchemy.sql.functions.sysdate(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sysdate "Link to this definition") The SYSDATE() SQL function. **Class signature** class [`sqlalchemy.sql.functions.sysdate`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.sysdate "sqlalchemy.sql.functions.sysdate") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) _class_ sqlalchemy.sql.functions.user(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.user "Link to this definition") The USER() SQL function. **Class signature** class [`sqlalchemy.sql.functions.user`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.user "sqlalchemy.sql.functions.user") ([`sqlalchemy.sql.functions.AnsiFunction`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.AnsiFunction "sqlalchemy.sql.functions.AnsiFunction") ) Previous: [Insert, Updates, Deletes](https://docs.sqlalchemy.org/en/14/core/dml.html "previous chapter") Next: [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Custom Types — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [The Type Hierarchy](https://docs.sqlalchemy.org/en/14/core/type_basics.html) * **Custom Types**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#) * [Overriding Type Compilation](https://docs.sqlalchemy.org/en/14/core/custom_types.html#overriding-type-compilation) * [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#augmenting-existing-types) * [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) * [`TypeDecorator.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok) * [`TypeDecorator.Comparator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator) * [`TypeDecorator.Comparator.operate()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate) * [`TypeDecorator.Comparator.reverse_operate()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.reverse_operate) * [`TypeDecorator.__init__()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.__init__) * [`TypeDecorator.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression) * [`TypeDecorator.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_processor) * [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value) * [`TypeDecorator.coerce_to_is_types`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types) * [`TypeDecorator.column_expression()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression) * [`TypeDecorator.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.comparator_factory) * [`TypeDecorator.compare_values()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values) * [`TypeDecorator.copy()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.copy) * [`TypeDecorator.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.get_dbapi_type) * [`TypeDecorator.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.literal_processor) * [`TypeDecorator.load_dialect_impl()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl) * [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param) * [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param) * [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value) * [`TypeDecorator.result_processor()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.result_processor) * [`TypeDecorator.sort_key_function`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function) * [`TypeDecorator.type_engine()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine) * [TypeDecorator Recipes](https://docs.sqlalchemy.org/en/14/core/custom_types.html#typedecorator-recipes) * [Coercing Encoded Strings to Unicode](https://docs.sqlalchemy.org/en/14/core/custom_types.html#coercing-encoded-strings-to-unicode) * [Rounding Numerics](https://docs.sqlalchemy.org/en/14/core/custom_types.html#rounding-numerics) * [Store Timezone Aware Timestamps as Timezone Naive UTC](https://docs.sqlalchemy.org/en/14/core/custom_types.html#store-timezone-aware-timestamps-as-timezone-naive-utc) * [Backend-agnostic GUID Type](https://docs.sqlalchemy.org/en/14/core/custom_types.html#backend-agnostic-guid-type) * [Marshal JSON Strings](https://docs.sqlalchemy.org/en/14/core/custom_types.html#marshal-json-strings) * [Adding Mutability](https://docs.sqlalchemy.org/en/14/core/custom_types.html#adding-mutability) * [Dealing with Comparison Operations](https://docs.sqlalchemy.org/en/14/core/custom_types.html#dealing-with-comparison-operations) * [Applying SQL-level Bind/Result Processing](https://docs.sqlalchemy.org/en/14/core/custom_types.html#applying-sql-level-bind-result-processing) * [Redefining and Creating New Operators](https://docs.sqlalchemy.org/en/14/core/custom_types.html#redefining-and-creating-new-operators) * [Creating New Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#creating-new-types) * [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType) * [`UserDefinedType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.cache_ok) * [`UserDefinedType.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.coerce_compared_value) * [Working with Custom Types and Reflection](https://docs.sqlalchemy.org/en/14/core/custom_types.html#working-with-custom-types-and-reflection) * [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [The Type Hierarchy](https://docs.sqlalchemy.org/en/14/core/type_basics.html "previous chapter") * **Next:** [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html "SQL Datatype Objects") * **On this page:** * [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#custom-types) * [Overriding Type Compilation](https://docs.sqlalchemy.org/en/14/core/custom_types.html#overriding-type-compilation) * [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#augmenting-existing-types) * [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) * [`TypeDecorator.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok) * [`TypeDecorator.Comparator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator) * [`TypeDecorator.Comparator.operate()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate) * [`TypeDecorator.Comparator.reverse_operate()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.reverse_operate) * [`TypeDecorator.__init__()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.__init__) * [`TypeDecorator.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression) * [`TypeDecorator.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_processor) * [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value) * [`TypeDecorator.coerce_to_is_types`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types) * [`TypeDecorator.column_expression()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression) * [`TypeDecorator.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.comparator_factory) * [`TypeDecorator.compare_values()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values) * [`TypeDecorator.copy()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.copy) * [`TypeDecorator.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.get_dbapi_type) * [`TypeDecorator.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.literal_processor) * [`TypeDecorator.load_dialect_impl()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl) * [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param) * [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param) * [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value) * [`TypeDecorator.result_processor()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.result_processor) * [`TypeDecorator.sort_key_function`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function) * [`TypeDecorator.type_engine()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine) * [TypeDecorator Recipes](https://docs.sqlalchemy.org/en/14/core/custom_types.html#typedecorator-recipes) * [Coercing Encoded Strings to Unicode](https://docs.sqlalchemy.org/en/14/core/custom_types.html#coercing-encoded-strings-to-unicode) * [Rounding Numerics](https://docs.sqlalchemy.org/en/14/core/custom_types.html#rounding-numerics) * [Store Timezone Aware Timestamps as Timezone Naive UTC](https://docs.sqlalchemy.org/en/14/core/custom_types.html#store-timezone-aware-timestamps-as-timezone-naive-utc) * [Backend-agnostic GUID Type](https://docs.sqlalchemy.org/en/14/core/custom_types.html#backend-agnostic-guid-type) * [Marshal JSON Strings](https://docs.sqlalchemy.org/en/14/core/custom_types.html#marshal-json-strings) * [Adding Mutability](https://docs.sqlalchemy.org/en/14/core/custom_types.html#adding-mutability) * [Dealing with Comparison Operations](https://docs.sqlalchemy.org/en/14/core/custom_types.html#dealing-with-comparison-operations) * [Applying SQL-level Bind/Result Processing](https://docs.sqlalchemy.org/en/14/core/custom_types.html#applying-sql-level-bind-result-processing) * [Redefining and Creating New Operators](https://docs.sqlalchemy.org/en/14/core/custom_types.html#redefining-and-creating-new-operators) * [Creating New Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#creating-new-types) * [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType) * [`UserDefinedType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.cache_ok) * [`UserDefinedType.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.coerce_compared_value) * [Working with Custom Types and Reflection](https://docs.sqlalchemy.org/en/14/core/custom_types.html#working-with-custom-types-and-reflection) Custom Types[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#custom-types "Link to this heading") ============================================================================================================== A variety of methods exist to redefine the behavior of existing types as well as to provide new ones. Overriding Type Compilation[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#overriding-type-compilation "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------------------- A frequent need is to force the “string” version of a type, that is the one rendered in a CREATE TABLE statement or other SQL function like CAST, to be changed. For example, an application may want to force the rendering of `BINARY` for all platforms except for one, in which is wants `BLOB` to be rendered. Usage of an existing generic type, in this case [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.types.LargeBinary") , is preferred for most use cases. But to control types more accurately, a compilation directive that is per-dialect can be associated with any type: from sqlalchemy.ext.compiler import compiles from sqlalchemy.types import BINARY @compiles(BINARY, "sqlite") def compile\_binary\_sqlite(type\_, compiler, \*\*kw): return "BLOB" The above code allows the usage of [`BINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY "sqlalchemy.types.BINARY") , which will produce the string `BINARY` against all backends except SQLite, in which case it will produce `BLOB`. See the section [Changing Compilation of Types](https://docs.sqlalchemy.org/en/14/core/compiler.html#type-compilation-extension) , a subsection of [Custom SQL Constructs and Compilation Extension](https://docs.sqlalchemy.org/en/14/core/compiler.html) , for additional examples. Augmenting Existing Types[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#augmenting-existing-types "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------- The [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") allows the creation of custom types which add bind-parameter and result-processing behavior to an existing type object. It is used when additional in-Python [marshalling](https://docs.sqlalchemy.org/en/14/glossary.html#term-marshalling) of data to and/or from the database is required. Note The bind- and result-processing of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") is **in addition** to the processing already performed by the hosted type, which is customized by SQLAlchemy on a per-DBAPI basis to perform processing specific to that DBAPI. While it is possible to replace this handling for a given type through direct subclassing, it is never needed in practice and SQLAlchemy no longer supports this as a public use case. | Object Name | Description | | --- | --- | | [TypeDecorator](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) | Allows the creation of types which add additional functionality to an existing type. | _class_ sqlalchemy.types.TypeDecorator(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "Link to this definition") Allows the creation of types which add additional functionality to an existing type. This method is preferred to direct subclassing of SQLAlchemy’s built-in types as it ensures that all required functionality of the underlying type is kept in place. Typical usage: import sqlalchemy.types as types class MyType(types.TypeDecorator): '''Prefixes Unicode values with "PREFIX:" on the way in and strips it off on the way out. ''' impl \= types.Unicode cache\_ok \= True def process\_bind\_param(self, value, dialect): return "PREFIX:" + value def process\_result\_value(self, value, dialect): return value\[7:\] def copy(self, \*\*kw): return MyType(self.impl.length) The class-level `impl` attribute is required, and can reference any [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class. Alternatively, the [`load_dialect_impl()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl "sqlalchemy.types.TypeDecorator.load_dialect_impl") method can be used to provide different type classes based on the dialect given; in this case, the `impl` variable can reference `TypeEngine` as a placeholder. The [`TypeDecorator.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok "sqlalchemy.types.TypeDecorator.cache_ok") class-level flag indicates if this custom [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") is safe to be used as part of a cache key. This flag defaults to `None` which will initially generate a warning when the SQL compiler attempts to generate a cache key for a statement that uses this type. If the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") is not guaranteed to produce the same bind/result behavior and SQL generation every time, this flag should be set to `False`; otherwise if the class produces the same behavior each time, it may be set to `True`. See [`TypeDecorator.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok "sqlalchemy.types.TypeDecorator.cache_ok") for further notes on how this works. Types that receive a Python type that isn’t similar to the ultimate type used may want to define the [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "sqlalchemy.types.TypeDecorator.coerce_compared_value") method. This is used to give the expression system a hint when coercing Python objects into bind parameters within expressions. Consider this expression: mytable.c.somecol + datetime.date(2009, 5, 15) Above, if “somecol” is an `Integer` variant, it makes sense that we’re doing date arithmetic, where above is usually interpreted by databases as adding a number of days to the given date. The expression system does the right thing by not attempting to coerce the “date()” value into an integer-oriented bind parameter. However, in the case of `TypeDecorator`, we are usually changing an incoming Python type to something new - `TypeDecorator` by default will “coerce” the non-typed side to be the same type as itself. Such as below, we define an “epoch” type that stores a date value as an integer: class MyEpochType(types.TypeDecorator): impl \= types.Integer cache\_ok \= True epoch \= datetime.date(1970, 1, 1) def process\_bind\_param(self, value, dialect): return (value \- self.epoch).days def process\_result\_value(self, value, dialect): return self.epoch + timedelta(days\=value) Our expression of `somecol + date` with the above type will coerce the “date” on the right side to also be treated as `MyEpochType`. This behavior can be overridden via the [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "sqlalchemy.types.TypeDecorator.coerce_compared_value") method, which returns a type that should be used for the value of the expression. Below we set it such that an integer value will be treated as an `Integer`, and any other value is assumed to be a date and will be treated as a `MyEpochType`: def coerce\_compared\_value(self, op, value): if isinstance(value, int): return Integer() else: return self Warning Note that the **behavior of coerce\_compared\_value is not inherited by default from that of the base type**. If the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") is augmenting a type that requires special logic for certain types of operators, this method **must** be overridden. A key example is when decorating the [`JSON`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON "sqlalchemy.dialects.postgresql.JSON") and [`JSONB`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB "sqlalchemy.dialects.postgresql.JSONB") types; the default rules of [`TypeEngine.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value "sqlalchemy.types.TypeEngine.coerce_compared_value") should be used in order to deal with operators like index operations: from sqlalchemy import JSON from sqlalchemy import TypeDecorator class MyJsonType(TypeDecorator): impl \= JSON cache\_ok \= True def coerce\_compared\_value(self, op, value): return self.impl.coerce\_compared\_value(op, value) Without the above step, index operations such as `mycol['foo']` will cause the index value `'foo'` to be JSON encoded. Similarly, when working with the [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") datatype, the type coercion for index operations (e.g. `mycol[5]`) is also handled by [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "sqlalchemy.types.TypeDecorator.coerce_compared_value") , where again a simple override is sufficient unless special rules are needed for particular operators: from sqlalchemy import ARRAY from sqlalchemy import TypeDecorator class MyArrayType(TypeDecorator): impl \= ARRAY cache\_ok \= True def coerce\_compared\_value(self, op, value): return self.impl.coerce\_compared\_value(op, value) **Members** [cache\_ok](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok) , [operate()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate) , [reverse\_operate()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.reverse_operate) , [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.__init__) , [bind\_expression()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_processor) , [coerce\_compared\_value()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value) , [coerce\_to\_is\_types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types) , [column\_expression()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression) , [comparator\_factory](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.comparator_factory) , [compare\_values()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values) , [copy()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.copy) , [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.get_dbapi_type) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.literal_processor) , [load\_dialect\_impl()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl) , [process\_bind\_param()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param) , [process\_literal\_param()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param) , [process\_result\_value()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.result_processor) , [sort\_key\_function](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function) , [type\_engine()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine) **Class signature** class [`sqlalchemy.types.TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") ([`sqlalchemy.types.ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") , `sqlalchemy.sql.expression.SchemaEventTarget`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _attribute_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) cache\_ok _\= None_[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.cache_ok "Link to this definition") _inherited from the_ [`ExternalType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok "sqlalchemy.types.ExternalType.cache_ok") _attribute of_ [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") Indicate if statements using this [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") are “safe to cache”. The default value `None` will emit a warning and then not allow caching of a statement which includes this type. Set to `False` to disable statements using this type from being cached at all without a warning. When set to `True`, the object’s class and selected elements from its state will be used as part of the cache key. For example, using a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") : class MyType(TypeDecorator): impl \= String cache\_ok \= True def \_\_init\_\_(self, choices): self.choices \= tuple(choices) self.internal\_only \= True The cache key for the above type would be equivalent to: \>>> MyType(\["a", "b", "c"\]).\_static\_cache\_key (, ('choices', ('a', 'b', 'c'))) The caching scheme will extract attributes from the type that correspond to the names of parameters in the `__init__()` method. Above, the “choices” attribute becomes part of the cache key but “internal\_only” does not, because there is no parameter named “internal\_only”. The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value. To accommodate for datatypes that refer to unhashable structures such as dictionaries, sets and lists, these objects can be made “cacheable” by assigning hashable structures to the attributes whose names correspond with the names of the arguments. For example, a datatype which accepts a dictionary of lookup values may publish this as a sorted series of tuples. Given a previously un-cacheable type as: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. this is the non-cacheable version, as "self.lookup" is not hashable. ''' def \_\_init\_\_(self, lookup): self.lookup \= lookup def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.lookup" ... Where “lookup” is a dictionary. The type will not be able to generate a cache key: \>>> type\_ \= LookupType({"a": 10, "b": 20}) \>>> type\_.\_static\_cache\_key :1: SAWarning: UserDefinedType LookupType({'a': 10, 'b': 20}) will not produce a cache key because the \`\`cache\_ok\`\` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning. symbol('no\_cache') If we **did** set up such a cache key, it wouldn’t be usable. We would get a tuple structure that contains a dictionary inside of it, which cannot itself be used as a key in a “cache dictionary” such as SQLAlchemy’s statement cache, since Python dictionaries aren’t hashable: \>>> \# set cache\_ok = True \>>> type\_.cache\_ok \= True \>>> \# this is the cache key it would generate \>>> key \= type\_.\_static\_cache\_key \>>> key (, ('lookup', {'a': 10, 'b': 20})) \>>> \# however this key is not hashable, will fail when used with \>>> \# SQLAlchemy statement cache \>>> some\_cache \= {key: "some sql value"} Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'dict' The type may be made cacheable by assigning a sorted tuple of tuples to the “.lookup” attribute: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. The dictionary is stored both as itself in a private variable, and published in a public variable as a sorted tuple of tuples, which is hashable and will also return the same value for any two equivalent dictionaries. Note it assumes the keys and values of the dictionary are themselves hashable. ''' cache\_ok \= True def \_\_init\_\_(self, lookup): self.\_lookup \= lookup \# assume keys/values of "lookup" are hashable; otherwise \# they would also need to be converted in some way here self.lookup \= tuple( (key, lookup\[key\]) for key in sorted(lookup) ) def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.\_lookup" ... Where above, the cache key for `LookupType({"a": 10, "b": 20})` will be: \>>> LookupType({"a": 10, "b": 20}).\_static\_cache\_key (, ('lookup', (('a', 10), ('b', 20)))) Added in version 1.4.14: \- added the `cache_ok` flag to allow some configurability of caching for [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes. Added in version 1.4.28: \- added the [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") mixin which generalizes the `cache_ok` flag to both the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") and [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") classes. See also [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) _class_ Comparator(_expr_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator "Link to this definition") A [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") that is specific to [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") . User-defined [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes should not typically need to modify this. **Class signature** class [`sqlalchemy.types.TypeDecorator.Comparator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator "sqlalchemy.types.TypeDecorator.Comparator") (`sqlalchemy.types.Comparator`) _method_ [`sqlalchemy.types.TypeDecorator.Comparator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator) operate(_op_, _\*other_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate "Link to this definition") Operate on an argument. This is the lowest level of operation, raises `NotImplementedError` by default. Overriding this on a subclass can allow common behavior to be applied to all operations. For example, overriding [`ColumnOperators`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators "sqlalchemy.sql.expression.ColumnOperators") to apply `func.lower()` to the left and right side: class MyComparator(ColumnOperators): def operate(self, op, other, \*\*kwargs): return op(func.lower(self), func.lower(other), \*\*kwargs) Parameters: * **op**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate.params.op) – Operator callable. * **\*other**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate.params.*other) – the ‘other’ side of the operation. Will be a single scalar for most operations. * **\*\*kwargs**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate.params.**kwargs) – modifiers. These may be passed by special operators such as `ColumnOperators.contains()`. _method_ [`sqlalchemy.types.TypeDecorator.Comparator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator) reverse\_operate(_op_, _other_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.reverse_operate "Link to this definition") Reverse operate on an argument. Usage is the same as [`operate()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.Comparator.operate "sqlalchemy.types.TypeDecorator.Comparator.operate") . _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) \_\_init\_\_(_\*args_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.__init__ "Link to this definition") Construct a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") . Arguments sent here are passed to the constructor of the class assigned to the `impl` class level attribute, assuming the `impl` is a callable, and the resulting object is assigned to the `self.impl` instance attribute (thus overriding the class attribute of the same name). If the class level `impl` is not a callable (the unusual case), it will be assigned to the same instance attribute ‘as-is’, ignoring those arguments passed to the constructor. Subclasses can override this to customize the generation of `self.impl` entirely. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) bind\_expression(_bindparam_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression "Link to this definition") Given a bind value (i.e. a [`BindParameter`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter "sqlalchemy.sql.expression.BindParameter") instance), return a SQL expression which will typically wrap the given parameter. Note This method is called during the **SQL compilation** phase of a statement, when rendering a SQL string. It is **not** necessarily called against specific values, and should not be confused with the [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") method, which is the more typical method that processes the actual value passed to a particular parameter at statement execution time. Subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") can override this method to provide custom bind expression behavior for the type. This implementation will **replace** that of the underlying implementation type. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_processor "Link to this definition") Provide a bound value processing function for the given [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") . This is the method that fulfills the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") contract for bound value conversion which normally occurs via the [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method. Note User-defined subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should **not** implement this method, and should instead implement [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") so that the “inner” processing provided by the implementing type is maintained. Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_processor.params.dialect) – Dialect instance in use. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) coerce\_compared\_value(_op_, _value_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "Link to this definition") Suggest a type for a ‘coerced’ Python value in an expression. By default, returns self. This method is called by the expression system when an object using this type is on the left or right side of an expression against a plain Python object which does not yet have a SQLAlchemy type assigned: expr \= table.c.somecolumn + 35 Where above, if `somecolumn` uses this type, this method will be called with the value `operator.add` and `35`. The return value is whatever SQLAlchemy type should be used for `35` for this particular operation. _attribute_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) coerce\_to\_is\_types _\= (,)_[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_to_is_types "Link to this definition") Specify those Python types which should be coerced at the expression level to “IS ” when compared using `==` (and same for `IS NOT` in conjunction with `!=`). For most SQLAlchemy types, this includes `NoneType`, as well as `bool`. [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") modifies this list to only include `NoneType`, as typedecorator implementations that deal with boolean types are common. Custom [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes can override this attribute to return an empty tuple, in which case no values will be coerced to constants. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) column\_expression(_column_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression "Link to this definition") Given a SELECT column expression, return a wrapping SQL expression. Note This method is called during the **SQL compilation** phase of a statement, when rendering a SQL string. It is **not** called against specific values, and should not be confused with the [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") method, which is the more typical method that processes the actual value returned in a result row subsequent to statement execution time. Subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") can override this method to provide custom column expresion behavior for the type. This implementation will **replace** that of the underlying implementation type. See the description of [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression "sqlalchemy.types.TypeEngine.column_expression") for a complete description of the method’s use. _attribute_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) comparator\_factory[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.comparator_factory "Link to this definition") A [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") class which will apply to operations performed by owning [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") objects. The [`comparator_factory`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.comparator_factory "sqlalchemy.types.TypeDecorator.comparator_factory") attribute is a hook consulted by the core expression system when column and SQL expression operations are performed. When a [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") class is associated with this attribute, it allows custom re-definition of all existing operators, as well as definition of new operators. Existing operators include those provided by Python operator overloading such as `ColumnOperators.__add__()` and `ColumnOperators.__eq__()`, those provided as standard attributes of [`ColumnOperators`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators "sqlalchemy.sql.operators.ColumnOperators") such as `ColumnOperators.like()` and `ColumnOperators.in_()`. Rudimentary usage of this hook is allowed through simple subclassing of existing types, or alternatively by using [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") . See the documentation section [Redefining and Creating New Operators](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-operators) for examples. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) compare\_values(_x_, _y_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.compare_values "Link to this definition") Given two values, compare them for equality. By default this calls upon [`TypeEngine.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values "sqlalchemy.types.TypeEngine.compare_values") of the underlying “impl”, which in turn usually uses the Python equals operator `==`. This function is used by the ORM to compare an original-loaded value with an intercepted “changed” value, to determine if a net change has occurred. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) copy(_\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.copy "Link to this definition") Produce a copy of this [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") instance. This is a shallow copy and is provided to fulfill part of the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") contract. It usually does not need to be overridden unless the user-defined [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") has local state that should be deep-copied. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.get_dbapi_type "Link to this definition") Return the DBAPI type object represented by this [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") . By default this calls upon [`TypeEngine.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.get_dbapi_type "sqlalchemy.types.TypeEngine.get_dbapi_type") of the underlying “impl”. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.literal_processor "Link to this definition") Provide a literal processing function for the given [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") . This is the method that fulfills the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") contract for literal value conversion which normally occurs via the [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method. Note User-defined subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should **not** implement this method, and should instead implement [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") so that the “inner” processing provided by the implementing type is maintained. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) load\_dialect\_impl(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl "Link to this definition") Return a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") object corresponding to a dialect. This is an end-user override hook that can be used to provide differing types depending on the given dialect. It is used by the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") implementation of [`type_engine()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine "sqlalchemy.types.TypeDecorator.type_engine") to help determine what type should ultimately be returned for a given [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") . By default returns `self.impl`. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) process\_bind\_param(_value_, _dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "Link to this definition") Receive a bound parameter value to be converted. Custom subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should override this method to provide custom behaviors for incoming data values. This method is called at **statement execution time** and is passed the literal Python data value which is to be associated with a bound parameter in the statement. The operation could be anything desired to perform custom behavior, such as transforming or serializing data. This could also be used as a hook for validating logic. Parameters: * **value**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param.params.value) – Data to operate upon, of any type expected by this method in the subclass. Can be `None`. * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param.params.dialect) – the [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") in use. See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) process\_literal\_param(_value_, _dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "Link to this definition") Receive a literal parameter value to be rendered inline within a statement. Note This method is called during the **SQL compilation** phase of a statement, when rendering a SQL string. Unlike other SQL compilation methods, it is passed a specific Python value to be rendered as a string. However it should not be confused with the [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") method, which is the more typical method that processes the actual value passed to a particular parameter at statement execution time. Custom subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should override this method to provide custom behaviors for incoming data values that are in the special case of being rendered as literals. The returned string will be rendered into the output string. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) process\_result\_value(_value_, _dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "Link to this definition") Receive a result-row column value to be converted. Custom subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should override this method to provide custom behaviors for data values being received in result rows coming from the database. This method is called at **result fetching time** and is passed the literal Python data value that’s extracted from a database result row. The operation could be anything desired to perform custom behavior, such as transforming or deserializing data. Parameters: * **value**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value.params.value) – Data to operate upon, of any type expected by this method in the subclass. Can be `None`. * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value.params.dialect) – the [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") in use. See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.result_processor "Link to this definition") Provide a result value processing function for the given [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") . This is the method that fulfills the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") contract for bound value conversion which normally occurs via the [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method. Note User-defined subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should **not** implement this method, and should instead implement [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") so that the “inner” processing provided by the implementing type is maintained. Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.result_processor.params.coltype) – A SQLAlchemy data type _attribute_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) sort\_key\_function[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.sort_key_function "Link to this definition") A sorting function that can be passed as the key to sorted. The default value of `None` indicates that the values stored by this type are self-sorting. Added in version 1.3.8. _method_ [`sqlalchemy.types.TypeDecorator.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator) type\_engine(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.type_engine "Link to this definition") Return a dialect-specific [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") instance for this [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") . In most cases this returns a dialect-adapted form of the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") type represented by `self.impl`. Makes usage of `dialect_impl()`. Behavior can be customized here by overriding [`load_dialect_impl()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.load_dialect_impl "sqlalchemy.types.TypeDecorator.load_dialect_impl") . TypeDecorator Recipes[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#typedecorator-recipes "Link to this heading") -------------------------------------------------------------------------------------------------------------------------------- A few key [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") recipes follow. ### Coercing Encoded Strings to Unicode[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#coercing-encoded-strings-to-unicode "Link to this heading") A common source of confusion regarding the [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") type is that it is intended to deal _only_ with Python `unicode` objects on the Python side, meaning values passed to it as bind parameters must be of the form `u'some string'` if using Python 2 and not 3. The encoding/decoding functions it performs are only to suit what the DBAPI in use requires, and are primarily a private implementation detail. The use case of a type that can safely receive Python bytestrings, that is strings that contain non-ASCII characters and are not `u''` objects in Python 2, can be achieved using a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") which coerces as needed: from sqlalchemy.types import TypeDecorator, Unicode class CoerceUTF8(TypeDecorator): """Safely coerce Python bytestrings to Unicode before passing off to the database.""" impl \= Unicode def process\_bind\_param(self, value, dialect): if isinstance(value, str): value \= value.decode("utf-8") return value ### Rounding Numerics[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#rounding-numerics "Link to this heading") Some database connectors like those of SQL Server choke if a Decimal is passed with too many decimal places. Here’s a recipe that rounds them down: from sqlalchemy.types import TypeDecorator, Numeric from decimal import Decimal class SafeNumeric(TypeDecorator): """Adds quantization to Numeric.""" impl \= Numeric def \_\_init\_\_(self, \*arg, \*\*kw): TypeDecorator.\_\_init\_\_(self, \*arg, \*\*kw) self.quantize\_int \= \-self.impl.scale self.quantize \= Decimal(10) \*\* self.quantize\_int def process\_bind\_param(self, value, dialect): if isinstance(value, Decimal) and value.as\_tuple()\[2\] < self.quantize\_int: value \= value.quantize(self.quantize) return value ### Store Timezone Aware Timestamps as Timezone Naive UTC[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#store-timezone-aware-timestamps-as-timezone-naive-utc "Link to this heading") Timestamps in databases should always be stored in a timezone-agnostic way. For most databases, this means ensuring a timestamp is first in the UTC timezone before it is stored, then storing it as timezone-naive (that is, without any timezone associated with it; UTC is assumed to be the “implicit” timezone). Alternatively, database-specific types like PostgreSQLs “TIMESTAMP WITH TIMEZONE” are often preferred for their richer functionality; however, storing as plain UTC will work on all databases and drivers. When a timezone-intelligent database type is not an option or is not preferred, the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") can be used to create a datatype that convert timezone aware timestamps into timezone naive and back again. Below, Python’s built-in `datetime.timezone.utc` timezone is used to normalize and denormalize: import datetime class TZDateTime(TypeDecorator): impl \= DateTime cache\_ok \= True def process\_bind\_param(self, value, dialect): if value is not None: if not value.tzinfo: raise TypeError("tzinfo is required") value \= value.astimezone(datetime.timezone.utc).replace(tzinfo\=None) return value def process\_result\_value(self, value, dialect): if value is not None: value \= value.replace(tzinfo\=datetime.timezone.utc) return value ### Backend-agnostic GUID Type[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#backend-agnostic-guid-type "Link to this heading") Receives and returns Python uuid() objects. Uses the PG UUID type when using PostgreSQL, CHAR(32) on other backends, storing them in stringified hex format. Can be modified to store binary in CHAR(16) if desired: from sqlalchemy.types import TypeDecorator, CHAR from sqlalchemy.dialects.postgresql import UUID import uuid class GUID(TypeDecorator): """Platform-independent GUID type. Uses PostgreSQL's UUID type, otherwise uses CHAR(32), storing as stringified hex values. """ impl \= CHAR cache\_ok \= True def load\_dialect\_impl(self, dialect): if dialect.name \== "postgresql": return dialect.type\_descriptor(UUID()) else: return dialect.type\_descriptor(CHAR(32)) def process\_bind\_param(self, value, dialect): if value is None: return value elif dialect.name \== "postgresql": return str(value) else: if not isinstance(value, uuid.UUID): return "%.32x" % uuid.UUID(value).int else: \# hexstring return "%.32x" % value.int def process\_result\_value(self, value, dialect): if value is None: return value else: if not isinstance(value, uuid.UUID): value \= uuid.UUID(value) return value ### Marshal JSON Strings[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#marshal-json-strings "Link to this heading") This type uses `simplejson` to marshal Python data structures to/from JSON. Can be modified to use Python’s builtin json encoder: from sqlalchemy.types import TypeDecorator, VARCHAR import json class JSONEncodedDict(TypeDecorator): """Represents an immutable structure as a json-encoded string. Usage:: JSONEncodedDict(255) """ impl \= VARCHAR cache\_ok \= True def process\_bind\_param(self, value, dialect): if value is not None: value \= json.dumps(value) return value def process\_result\_value(self, value, dialect): if value is not None: value \= json.loads(value) return value #### Adding Mutability[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#adding-mutability "Link to this heading") The ORM by default will not detect “mutability” on such a type as above - meaning, in-place changes to values will not be detected and will not be flushed. Without further steps, you instead would need to replace the existing value with a new one on each parent object to detect changes: obj.json\_value\["key"\] \= "value" \# will \*not\* be detected by the ORM obj.json\_value \= {"key": "value"} \# \*will\* be detected by the ORM The above limitation may be fine, as many applications may not require that the values are ever mutated once created. For those which do have this requirement, support for mutability is best applied using the `sqlalchemy.ext.mutable` extension. For a dictionary-oriented JSON structure, we can apply this as: json\_type \= MutableDict.as\_mutable(JSONEncodedDict) class MyClass(Base): \# ... json\_data \= Column(json\_type) See also [Mutation Tracking](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html) #### Dealing with Comparison Operations[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#dealing-with-comparison-operations "Link to this heading") The default behavior of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") is to coerce the “right hand side” of any expression into the same type. For a type like JSON, this means that any operator used must make sense in terms of JSON. For some cases, users may wish for the type to behave like JSON in some circumstances, and as plain text in others. One example is if one wanted to handle the LIKE operator for the JSON type. LIKE makes no sense against a JSON structure, but it does make sense against the underlying textual representation. To get at this with a type like `JSONEncodedDict`, we need to **coerce** the column to a textual form using [`cast()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.cast "sqlalchemy.sql.expression.cast") or [`type_coerce()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.type_coerce "sqlalchemy.sql.expression.type_coerce") before attempting to use this operator: from sqlalchemy import type\_coerce, String stmt \= select(my\_table).where(type\_coerce(my\_table.c.json\_data, String).like("%foo%")) [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") provides a built-in system for working up type translations like these based on operators. If we wanted to frequently use the LIKE operator with our JSON object interpreted as a string, we can build it into the type by overriding the [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "sqlalchemy.types.TypeDecorator.coerce_compared_value") method: from sqlalchemy.sql import operators from sqlalchemy import String class JSONEncodedDict(TypeDecorator): impl \= VARCHAR cache\_ok \= True def coerce\_compared\_value(self, op, value): if op in (operators.like\_op, operators.not\_like\_op): return String() else: return self def process\_bind\_param(self, value, dialect): if value is not None: value \= json.dumps(value) return value def process\_result\_value(self, value, dialect): if value is not None: value \= json.loads(value) return value Above is just one approach to handling an operator like “LIKE”. Other applications may wish to raise `NotImplementedError` for operators that have no meaning with a JSON object such as “LIKE”, rather than automatically coercing to text. Applying SQL-level Bind/Result Processing[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#applying-sql-level-bind-result-processing "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ As seen in the section [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) , SQLAlchemy allows Python functions to be invoked both when parameters are sent to a statement, as well as when result rows are loaded from the database, to apply transformations to the values as they are sent to or from the database. It is also possible to define SQL-level transformations as well. The rationale here is when only the relational database contains a particular series of functions that are necessary to coerce incoming and outgoing data between an application and persistence format. Examples include using database-defined encryption/decryption functions, as well as stored procedures that handle geographic data. The PostGIS extension to PostgreSQL includes an extensive array of SQL functions that are necessary for coercing data into particular formats. Any [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") , [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") or [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") subclass can include implementations of [`TypeEngine.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression "sqlalchemy.types.TypeEngine.bind_expression") and/or [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression "sqlalchemy.types.TypeEngine.column_expression") , which when defined to return a non-`None` value should return a [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") expression to be injected into the SQL statement, either surrounding bound parameters or a column expression. For example, to build a `Geometry` type which will apply the PostGIS function `ST_GeomFromText` to all outgoing values and the function `ST_AsText` to all incoming data, we can create our own subclass of [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") which provides these methods in conjunction with [`func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") : from sqlalchemy import func from sqlalchemy.types import UserDefinedType class Geometry(UserDefinedType): def get\_col\_spec(self): return "GEOMETRY" def bind\_expression(self, bindvalue): return func.ST\_GeomFromText(bindvalue, type\_\=self) def column\_expression(self, col): return func.ST\_AsText(col, type\_\=self) We can apply the `Geometry` type into [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") metadata and use it in a [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") construct: geometry \= Table( "geometry", metadata, Column("geom\_id", Integer, primary\_key\=True), Column("geom\_data", Geometry), ) print( select(geometry).where( geometry.c.geom\_data \== "LINESTRING(189412 252431,189631 259122)" ) ) The resulting SQL embeds both functions as appropriate. `ST_AsText` is applied to the columns clause so that the return value is run through the function before passing into a result set, and `ST_GeomFromText` is run on the bound parameter so that the passed-in value is converted: SELECT geometry.geom\_id, ST\_AsText(geometry.geom\_data) AS geom\_data\_1 FROM geometry WHERE geometry.geom\_data \= ST\_GeomFromText(:geom\_data\_2) The [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression "sqlalchemy.types.TypeEngine.column_expression") method interacts with the mechanics of the compiler such that the SQL expression does not interfere with the labeling of the wrapped expression. Such as, if we rendered a [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") against a [`label()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.label "sqlalchemy.sql.expression.label") of our expression, the string label is moved to the outside of the wrapped expression: print(select(geometry.c.geom\_data.label("my\_data"))) Output: SELECT ST\_AsText(geometry.geom\_data) AS my\_data FROM geometry Another example is we decorate [`BYTEA`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.BYTEA "sqlalchemy.dialects.postgresql.BYTEA") to provide a `PGPString`, which will make use of the PostgreSQL `pgcrypto` extension to encrypt/decrypt values transparently: from sqlalchemy import ( create\_engine, String, select, func, MetaData, Table, Column, type\_coerce, TypeDecorator, ) from sqlalchemy.dialects.postgresql import BYTEA class PGPString(TypeDecorator): impl \= BYTEA cache\_ok \= True def \_\_init\_\_(self, passphrase): super(PGPString, self).\_\_init\_\_() self.passphrase \= passphrase def bind\_expression(self, bindvalue): \# convert the bind's type from PGPString to \# String, so that it's passed to psycopg2 as is without \# a dbapi.Binary wrapper bindvalue \= type\_coerce(bindvalue, String) return func.pgp\_sym\_encrypt(bindvalue, self.passphrase) def column\_expression(self, col): return func.pgp\_sym\_decrypt(col, self.passphrase) metadata\_obj \= MetaData() message \= Table( "message", metadata\_obj, Column("username", String(50)), Column("message", PGPString("this is my passphrase")), ) engine \= create\_engine("postgresql://scott:tiger@localhost/test", echo\=True) with engine.begin() as conn: metadata\_obj.create\_all(conn) conn.execute(message.insert(), username\="some user", message\="this is my message") print( conn.scalar(select(message.c.message).where(message.c.username \== "some user")) ) The `pgp_sym_encrypt` and `pgp_sym_decrypt` functions are applied to the INSERT and SELECT statements: INSERT INTO message (username, message) VALUES (%(username)s, pgp\_sym\_encrypt(%(message)s, %(pgp\_sym\_encrypt\_1)s)) {'username': 'some user', 'message': 'this is my message', 'pgp\_sym\_encrypt\_1': 'this is my passphrase'} SELECT pgp\_sym\_decrypt(message.message, %(pgp\_sym\_decrypt\_1)s) AS message\_1 FROM message WHERE message.username \= %(username\_1)s {'pgp\_sym\_decrypt\_1': 'this is my passphrase', 'username\_1': 'some user'} See also [PostGIS Integration](https://docs.sqlalchemy.org/en/14/orm/examples.html#examples-postgis) Redefining and Creating New Operators[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#redefining-and-creating-new-operators "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------------- SQLAlchemy Core defines a fixed set of expression operators available to all column expressions. Some of these operations have the effect of overloading Python’s built-in operators; examples of such operators include [`ColumnOperators.__eq__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__eq__ "sqlalchemy.sql.expression.ColumnOperators.__eq__") (`table.c.somecolumn == 'foo'`), [`ColumnOperators.__invert__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__invert__ "sqlalchemy.sql.expression.ColumnOperators.__invert__") (`~table.c.flag`), and [`ColumnOperators.__add__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__ "sqlalchemy.sql.expression.ColumnOperators.__add__") (`table.c.x + table.c.y`). Other operators are exposed as explicit methods on column expressions, such as [`ColumnOperators.in_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.in_ "sqlalchemy.sql.expression.ColumnOperators.in_") (`table.c.value.in_(['x', 'y'])`) and [`ColumnOperators.like()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.like "sqlalchemy.sql.expression.ColumnOperators.like") (`table.c.value.like('%ed%')`). When the need arises for a SQL operator that isn’t directly supported by the already supplied methods above, the most expedient way to produce this operator is to use the [`Operators.op()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.op "sqlalchemy.sql.expression.Operators.op") method on any SQL expression object; this method is given a string representing the SQL operator to render, and the return value is a Python callable that accepts any arbitrary right-hand side expression: \>>> from sqlalchemy import column \>>> expr \= column("x").op(">>")(column("y")) \>>> print(expr) x >> y When making use of custom SQL types, there is also a means of implementing custom operators as above that are automatically present upon any column expression that makes use of that column type, without the need to directly call [`Operators.op()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.op "sqlalchemy.sql.expression.Operators.op") each time the operator is to be used. To achieve this, a SQL expression construct consults the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") object associated with the construct in order to determine the behavior of the built-in operators as well as to look for new methods that may have been invoked. [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") defines a “comparison” object implemented by the [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") class to provide the base behavior for SQL operators, and many specific types provide their own sub-implementations of this class. User-defined [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") implementations can be built directly into a simple subclass of a particular type in order to override or define new operations. Below, we create a [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") subclass which overrides the [`ColumnOperators.__add__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__ "sqlalchemy.sql.expression.ColumnOperators.__add__") operator, which in turn uses [`Operators.op()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.op "sqlalchemy.sql.expression.Operators.op") to produce the custom SQL itself: from sqlalchemy import Integer class MyInt(Integer): class comparator\_factory(Integer.Comparator): def \_\_add\_\_(self, other): return self.op("goofy")(other) The above configuration creates a new class `MyInt`, which establishes the [`TypeEngine.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory "sqlalchemy.types.TypeEngine.comparator_factory") attribute as referring to a new class, subclassing the [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") class associated with the [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") type. Usage: \>>> sometable \= Table("sometable", metadata, Column("data", MyInt)) \>>> print(sometable.c.data + 5) sometable.data goofy :data\_1 The implementation for [`ColumnOperators.__add__()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.__add__ "sqlalchemy.sql.expression.ColumnOperators.__add__") is consulted by an owning SQL expression, by instantiating the [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") with itself as the `expr` attribute. This attribute may be used when the implementation needs to refer to the originating [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") object directly: from sqlalchemy import Integer class MyInt(Integer): class comparator\_factory(Integer.Comparator): def \_\_add\_\_(self, other): return func.special\_addition(self.expr, other) New methods added to a [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") are exposed on an owning SQL expression object using a dynamic lookup scheme, which exposes methods added to [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") onto the owning [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") expression construct. For example, to add a `log()` function to integers: from sqlalchemy import Integer, func class MyInt(Integer): class comparator\_factory(Integer.Comparator): def log(self, other): return func.log(self.expr, other) Using the above type: \>>> print(sometable.c.data.log(5)) log(:log\_1, :log\_2) When using [`Operators.op()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.op "sqlalchemy.sql.expression.Operators.op") for comparison operations that return a boolean result, the [`Operators.op.is_comparison`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.op.params.is_comparison "sqlalchemy.sql.expression.Operators.op") flag should be set to `True`: class MyInt(Integer): class comparator\_factory(Integer.Comparator): def is\_frobnozzled(self, other): return self.op("--is\_frobnozzled->", is\_comparison\=True)(other) Unary operations are also possible. For example, to add an implementation of the PostgreSQL factorial operator, we combine the [`UnaryExpression`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.UnaryExpression "sqlalchemy.sql.expression.UnaryExpression") construct along with a [`custom_op`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.custom_op "sqlalchemy.sql.expression.custom_op") to produce the factorial expression: from sqlalchemy import Integer from sqlalchemy.sql.expression import UnaryExpression from sqlalchemy.sql import operators class MyInteger(Integer): class comparator\_factory(Integer.Comparator): def factorial(self): return UnaryExpression( self.expr, modifier\=operators.custom\_op("!"), type\_\=MyInteger ) Using the above type: \>>> from sqlalchemy.sql import column \>>> print(column("x", MyInteger).factorial()) x ! See also [`Operators.op()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.Operators.op "sqlalchemy.sql.expression.Operators.op") [`TypeEngine.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory "sqlalchemy.types.TypeEngine.comparator_factory") Creating New Types[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#creating-new-types "Link to this heading") -------------------------------------------------------------------------------------------------------------------------- The [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class is provided as a simple base class for defining entirely new database types. Use this to represent native database types not known by SQLAlchemy. If only Python translation behavior is needed, use [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") instead. | Object Name | Description | | --- | --- | | [UserDefinedType](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType) | Base for user defined types. | _class_ sqlalchemy.types.UserDefinedType[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "Link to this definition") Base for user defined types. This should be the base of new types. Note that for most cases, [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") is probably more appropriate: import sqlalchemy.types as types class MyType(types.UserDefinedType): cache\_ok \= True def \_\_init\_\_(self, precision \= 8): self.precision \= precision def get\_col\_spec(self, \*\*kw): return "MYTYPE(%s)" % self.precision def bind\_processor(self, dialect): def process(value): return value return process def result\_processor(self, dialect, coltype): def process(value): return value return process Once the type is made, it’s immediately usable: table \= Table('foo', metadata\_obj, Column('id', Integer, primary\_key\=True), Column('data', MyType(16)) ) The `get_col_spec()` method will in most cases receive a keyword argument `type_expression` which refers to the owning expression of the type as being compiled, such as a [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") or [`cast()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.cast "sqlalchemy.sql.expression.cast") construct. This keyword is only sent if the method accepts keyword arguments (e.g. `**kw`) in its argument signature; introspection is used to check for this in order to support legacy forms of this function. Added in version 1.0.0: the owning expression is passed to the `get_col_spec()` method via the keyword argument `type_expression`, if it receives `**kw` in its signature. The [`UserDefinedType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.cache_ok "sqlalchemy.types.UserDefinedType.cache_ok") class-level flag indicates if this custom [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") is safe to be used as part of a cache key. This flag defaults to `None` which will initially generate a warning when the SQL compiler attempts to generate a cache key for a statement that uses this type. If the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") is not guaranteed to produce the same bind/result behavior and SQL generation every time, this flag should be set to `False`; otherwise if the class produces the same behavior each time, it may be set to `True`. See [`UserDefinedType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.cache_ok "sqlalchemy.types.UserDefinedType.cache_ok") for further notes on how this works. Added in version 1.4.28: Generalized the [`ExternalType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok "sqlalchemy.types.ExternalType.cache_ok") flag so that it is available for both [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") as well as [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") . **Members** [cache\_ok](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.cache_ok) , [coerce\_compared\_value()](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.coerce_compared_value) **Class signature** class [`sqlalchemy.types.UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") ([`sqlalchemy.types.ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") , [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _attribute_ [`sqlalchemy.types.UserDefinedType.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType) cache\_ok _\= None_[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.cache_ok "Link to this definition") _inherited from the_ [`ExternalType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok "sqlalchemy.types.ExternalType.cache_ok") _attribute of_ [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") Indicate if statements using this [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") are “safe to cache”. The default value `None` will emit a warning and then not allow caching of a statement which includes this type. Set to `False` to disable statements using this type from being cached at all without a warning. When set to `True`, the object’s class and selected elements from its state will be used as part of the cache key. For example, using a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") : class MyType(TypeDecorator): impl \= String cache\_ok \= True def \_\_init\_\_(self, choices): self.choices \= tuple(choices) self.internal\_only \= True The cache key for the above type would be equivalent to: \>>> MyType(\["a", "b", "c"\]).\_static\_cache\_key (, ('choices', ('a', 'b', 'c'))) The caching scheme will extract attributes from the type that correspond to the names of parameters in the `__init__()` method. Above, the “choices” attribute becomes part of the cache key but “internal\_only” does not, because there is no parameter named “internal\_only”. The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value. To accommodate for datatypes that refer to unhashable structures such as dictionaries, sets and lists, these objects can be made “cacheable” by assigning hashable structures to the attributes whose names correspond with the names of the arguments. For example, a datatype which accepts a dictionary of lookup values may publish this as a sorted series of tuples. Given a previously un-cacheable type as: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. this is the non-cacheable version, as "self.lookup" is not hashable. ''' def \_\_init\_\_(self, lookup): self.lookup \= lookup def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.lookup" ... Where “lookup” is a dictionary. The type will not be able to generate a cache key: \>>> type\_ \= LookupType({"a": 10, "b": 20}) \>>> type\_.\_static\_cache\_key :1: SAWarning: UserDefinedType LookupType({'a': 10, 'b': 20}) will not produce a cache key because the \`\`cache\_ok\`\` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning. symbol('no\_cache') If we **did** set up such a cache key, it wouldn’t be usable. We would get a tuple structure that contains a dictionary inside of it, which cannot itself be used as a key in a “cache dictionary” such as SQLAlchemy’s statement cache, since Python dictionaries aren’t hashable: \>>> \# set cache\_ok = True \>>> type\_.cache\_ok \= True \>>> \# this is the cache key it would generate \>>> key \= type\_.\_static\_cache\_key \>>> key (, ('lookup', {'a': 10, 'b': 20})) \>>> \# however this key is not hashable, will fail when used with \>>> \# SQLAlchemy statement cache \>>> some\_cache \= {key: "some sql value"} Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'dict' The type may be made cacheable by assigning a sorted tuple of tuples to the “.lookup” attribute: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. The dictionary is stored both as itself in a private variable, and published in a public variable as a sorted tuple of tuples, which is hashable and will also return the same value for any two equivalent dictionaries. Note it assumes the keys and values of the dictionary are themselves hashable. ''' cache\_ok \= True def \_\_init\_\_(self, lookup): self.\_lookup \= lookup \# assume keys/values of "lookup" are hashable; otherwise \# they would also need to be converted in some way here self.lookup \= tuple( (key, lookup\[key\]) for key in sorted(lookup) ) def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.\_lookup" ... Where above, the cache key for `LookupType({"a": 10, "b": 20})` will be: \>>> LookupType({"a": 10, "b": 20}).\_static\_cache\_key (, ('lookup', (('a', 10), ('b', 20)))) Added in version 1.4.14: \- added the `cache_ok` flag to allow some configurability of caching for [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes. Added in version 1.4.28: \- added the [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") mixin which generalizes the `cache_ok` flag to both the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") and [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") classes. See also [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) _method_ [`sqlalchemy.types.UserDefinedType.`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType) coerce\_compared\_value(_op_, _value_)[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType.coerce_compared_value "Link to this definition") Suggest a type for a ‘coerced’ Python value in an expression. Default behavior for [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") is the same as that of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") ; by default it returns `self`, assuming the compared value should be coerced into the same type as this one. See [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "sqlalchemy.types.TypeDecorator.coerce_compared_value") for more detail. Working with Custom Types and Reflection[¶](https://docs.sqlalchemy.org/en/14/core/custom_types.html#working-with-custom-types-and-reflection "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- It is important to note that database types which are modified to have additional in-Python behaviors, including types based on [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") as well as other user-defined subclasses of datatypes, do not have any representation within a database schema. When using database the introspection features described at [Reflecting Database Objects](https://docs.sqlalchemy.org/en/14/core/reflection.html#metadata-reflection) , SQLAlchemy makes use of a fixed mapping which links the datatype information reported by a database server to a SQLAlchemy datatype object. For example, if we look inside of a PostgreSQL schema at the definition for a particular database column, we might receive back the string `"VARCHAR"`. SQLAlchemy’s PostgreSQL dialect has a hardcoded mapping which links the string name `"VARCHAR"` to the SQLAlchemy [`VARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR "sqlalchemy.types.VARCHAR") class, and that’s how when we emit a statement like `Table('my_table', m, autoload_with=engine)`, the [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") object within it would have an instance of [`VARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR "sqlalchemy.types.VARCHAR") present inside of it. The implication of this is that if a [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") object makes use of type objects that don’t correspond directly to the database-native type name, if we create a new [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") object against a new [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") collection for this database table elsewhere using reflection, it will not have this datatype. For example: \>>> from sqlalchemy import Table, Column, MetaData, create\_engine, PickleType, Integer \>>> metadata \= MetaData() \>>> my\_table \= Table( ... "my\_table", metadata, Column("id", Integer), Column("data", PickleType) ... ) \>>> engine \= create\_engine("sqlite://", echo\="debug") \>>> my\_table.create(engine) INFO sqlalchemy.engine.base.Engine CREATE TABLE my\_table ( id INTEGER, data BLOB ) Above, we made use of [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") , which is a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") that works on top of the [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.types.LargeBinary") datatype, which on SQLite corresponds to the database type `BLOB`. In the CREATE TABLE, we see that the `BLOB` datatype is used. The SQLite database knows nothing about the [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") we’ve used. If we look at the datatype of `my_table.c.data.type`, as this is a Python object that was created by us directly, it is [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") : \>>> my\_table.c.data.type PickleType() However, if we create another instance of [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") using reflection, the use of [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") is not represented in the SQLite database we’ve created; we instead get back [`BLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB "sqlalchemy.types.BLOB") : \>>> metadata\_two \= MetaData() \>>> my\_reflected\_table \= Table("my\_table", metadata\_two, autoload\_with\=engine) INFO sqlalchemy.engine.base.Engine PRAGMA main.table\_info("my\_table") INFO sqlalchemy.engine.base.Engine () DEBUG sqlalchemy.engine.base.Engine Col ('cid', 'name', 'type', 'notnull', 'dflt\_value', 'pk') DEBUG sqlalchemy.engine.base.Engine Row (0, 'id', 'INTEGER', 0, None, 0) DEBUG sqlalchemy.engine.base.Engine Row (1, 'data', 'BLOB', 0, None, 0) \>>> my\_reflected\_table.c.data.type BLOB() Typically, when an application defines explicit [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") metadata with custom types, there is no need to use table reflection because the necessary [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") metadata is already present. However, for the case where an application, or a combination of them, need to make use of both explicit [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") metadata which includes custom, Python-level datatypes, as well as [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") objects which set up their [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") objects as reflected from the database, which nevertheless still need to exhibit the additional Python behaviors of the custom datatypes, additional steps must be taken to allow this. The most straightforward is to override specific columns as described at [Overriding Reflected Columns](https://docs.sqlalchemy.org/en/14/core/reflection.html#reflection-overriding-columns) . In this technique, we simply use reflection in combination with explicit [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") objects for those columns for which we want to use a custom or decorated datatype: \>>> metadata\_three \= MetaData() \>>> my\_reflected\_table \= Table( ... "my\_table", metadata\_three, Column("data", PickleType), autoload\_with\=engine ... ) The `my_reflected_table` object above is reflected, and will load the definition of the “id” column from the SQLite database. But for the “data” column, we’ve overridden the reflected object with an explicit [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") definition that includes our desired in-Python datatype, the [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") . The reflection process will leave this [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") object intact: \>>> my\_reflected\_table.c.data.type PickleType() A more elaborate way to convert from database-native type objects to custom datatypes is to use the [`DDLEvents.column_reflect()`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.column_reflect "sqlalchemy.events.DDLEvents.column_reflect") event handler. If for example we knew that we wanted all [`BLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB "sqlalchemy.types.BLOB") datatypes to in fact be [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") , we could set up a rule across the board: from sqlalchemy import BLOB from sqlalchemy import event from sqlalchemy import PickleType from sqlalchemy import Table @event.listens\_for(Table, "column\_reflect") def \_setup\_pickletype(inspector, table, column\_info): if isinstance(column\_info\["type"\], BLOB): column\_info\["type"\] \= PickleType() When the above code is invoked _before_ any table reflection occurs (note also it should be invoked **only once** in the application, as it is a global rule), upon reflecting any [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") that includes a column with a [`BLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB "sqlalchemy.types.BLOB") datatype, the resulting datatype will be stored in the [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") object as [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") . In practice, the above event-based approach would likely have additional rules in order to affect only those columns where the datatype is important, such as a lookup table of table names and possibly column names, or other heuristics in order to accurately determine which columns should be established with an in Python datatype. Previous: [The Type Hierarchy](https://docs.sqlalchemy.org/en/14/core/type_basics.html "previous chapter") Next: [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # The Type Hierarchy — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * **The Type Hierarchy**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#) * [The “CamelCase” datatypes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#the-camelcase-datatypes) * [The “UPPERCASE” datatypes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#the-uppercase-datatypes) * [Backend-specific “UPPERCASE” datatypes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#backend-specific-uppercase-datatypes) * [Using “UPPERCASE” and Backend-specific types for multiple backends](https://docs.sqlalchemy.org/en/14/core/type_basics.html#using-uppercase-and-backend-specific-types-for-multiple-backends) * [Generic “CamelCase” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#generic-camelcase-types) * [`BigInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger) * [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) * [`Boolean.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.__init__) * [`Boolean.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor) * [`Boolean.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor) * [`Boolean.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.python_type) * [`Boolean.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor) * [`Date`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date) * [`Date.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type) * [`Date.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.python_type) * [`DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime) * [`DateTime.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.__init__) * [`DateTime.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type) * [`DateTime.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.python_type) * [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum) * [`Enum.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.__init__) * [`Enum.create()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.create) * [`Enum.drop()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.drop) * [`Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float) * [`Float.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.__init__) * [`Float.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor) * [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer) * [`Integer.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type) * [`Integer.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.literal_processor) * [`Integer.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.python_type) * [`Interval`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) * [`Interval.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.__init__) * [`Interval.adapt_to_emulated()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated) * [`Interval.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.bind_processor) * [`Interval.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.cache_ok) * [`Interval.impl`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.impl) * [`Interval.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.python_type) * [`Interval.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.result_processor) * [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary) * [`LargeBinary.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary.__init__) * [`MatchType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.MatchType) * [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) * [`Numeric.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.__init__) * [`Numeric.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.bind_processor) * [`Numeric.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.get_dbapi_type) * [`Numeric.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.literal_processor) * [`Numeric.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.python_type) * [`Numeric.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.result_processor) * [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) * [`PickleType.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.__init__) * [`PickleType.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.bind_processor) * [`PickleType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok) * [`PickleType.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.compare_values) * [`PickleType.impl`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.impl) * [`PickleType.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.result_processor) * [`SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) * [`SchemaType.adapt()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.adapt) * [`SchemaType.bind`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.bind) * [`SchemaType.copy()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.copy) * [`SchemaType.create()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.create) * [`SchemaType.drop()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.drop) * [`SmallInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger) * [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) * [`String.RETURNS_BYTES`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES) * [`String.RETURNS_CONDITIONAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL) * [`String.RETURNS_UNICODE`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNICODE) * [`String.RETURNS_UNKNOWN`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNKNOWN) * [`String.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.__init__) * [`String.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.bind_processor) * [`String.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.get_dbapi_type) * [`String.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.literal_processor) * [`String.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.python_type) * [`String.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.result_processor) * [`Text`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text) * [`Time`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time) * [`Time.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.get_dbapi_type) * [`Time.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.python_type) * [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode) * [`Unicode.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode.__init__) * [`UnicodeText`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText) * [`UnicodeText.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText.__init__) * [SQL Standard and Multiple Vendor “UPPERCASE” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sql-standard-and-multiple-vendor-uppercase-types) * [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) * [`ARRAY.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator) * [`ARRAY.Comparator.all()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all) * [`ARRAY.Comparator.any()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any) * [`ARRAY.Comparator.contains()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.contains) * [`ARRAY.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.__init__) * [`ARRAY.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.comparator_factory) * [`ARRAY.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.compare_values) * [`ARRAY.hashable`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.hashable) * [`ARRAY.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.python_type) * [`ARRAY.zero_indexes`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.zero_indexes) * [`BIGINT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BIGINT) * [`BINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY) * [`BLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB) * [`BOOLEAN`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BOOLEAN) * [`CHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CHAR) * [`CLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CLOB) * [`DATE`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATE) * [`DATETIME`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATETIME) * [`DECIMAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DECIMAL) * [`FLOAT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.FLOAT) * [`INT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INT) * [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) * [`JSON.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) * [`JSON.Comparator.as_boolean()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean) * [`JSON.Comparator.as_float()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float) * [`JSON.Comparator.as_integer()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer) * [`JSON.Comparator.as_json()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json) * [`JSON.Comparator.as_numeric()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric) * [`JSON.Comparator.as_string()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string) * [`JSON.JSONElementType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType) * [`JSON.JSONElementType.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.bind_processor) * [`JSON.JSONElementType.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.literal_processor) * [`JSON.JSONIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType) * [`JSON.JSONIntIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType) * [`JSON.JSONPathType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType) * [`JSON.JSONStrIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType) * [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL) * [`JSON.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.__init__) * [`JSON.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.bind_processor) * [`JSON.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.comparator_factory) * [`JSON.hashable`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.hashable) * [`JSON.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.python_type) * [`JSON.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.result_processor) * [`JSON.should_evaluate_none`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none) * [`INTEGER`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER) * [`NCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NCHAR) * [`NVARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NVARCHAR) * [`NUMERIC`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC) * [`REAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.REAL) * [`SMALLINT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SMALLINT) * [`TEXT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TEXT) * [`TIME`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIME) * [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP) * [`TIMESTAMP.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.__init__) * [`TIMESTAMP.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.get_dbapi_type) * [`VARBINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARBINARY) * [`VARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR) * [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html) * [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html "previous chapter") * **Next:** [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html "SQL Datatype Objects") * **On this page:** * [The Type Hierarchy](https://docs.sqlalchemy.org/en/14/core/type_basics.html#module-sqlalchemy.types) * [The “CamelCase” datatypes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#the-camelcase-datatypes) * [The “UPPERCASE” datatypes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#the-uppercase-datatypes) * [Backend-specific “UPPERCASE” datatypes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#backend-specific-uppercase-datatypes) * [Using “UPPERCASE” and Backend-specific types for multiple backends](https://docs.sqlalchemy.org/en/14/core/type_basics.html#using-uppercase-and-backend-specific-types-for-multiple-backends) * [Generic “CamelCase” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#generic-camelcase-types) * [`BigInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger) * [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) * [`Boolean.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.__init__) * [`Boolean.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor) * [`Boolean.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor) * [`Boolean.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.python_type) * [`Boolean.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor) * [`Date`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date) * [`Date.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type) * [`Date.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.python_type) * [`DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime) * [`DateTime.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.__init__) * [`DateTime.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type) * [`DateTime.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.python_type) * [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum) * [`Enum.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.__init__) * [`Enum.create()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.create) * [`Enum.drop()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.drop) * [`Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float) * [`Float.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.__init__) * [`Float.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor) * [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer) * [`Integer.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type) * [`Integer.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.literal_processor) * [`Integer.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.python_type) * [`Interval`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) * [`Interval.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.__init__) * [`Interval.adapt_to_emulated()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated) * [`Interval.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.bind_processor) * [`Interval.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.cache_ok) * [`Interval.impl`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.impl) * [`Interval.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.python_type) * [`Interval.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.result_processor) * [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary) * [`LargeBinary.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary.__init__) * [`MatchType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.MatchType) * [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) * [`Numeric.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.__init__) * [`Numeric.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.bind_processor) * [`Numeric.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.get_dbapi_type) * [`Numeric.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.literal_processor) * [`Numeric.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.python_type) * [`Numeric.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.result_processor) * [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) * [`PickleType.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.__init__) * [`PickleType.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.bind_processor) * [`PickleType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok) * [`PickleType.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.compare_values) * [`PickleType.impl`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.impl) * [`PickleType.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.result_processor) * [`SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) * [`SchemaType.adapt()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.adapt) * [`SchemaType.bind`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.bind) * [`SchemaType.copy()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.copy) * [`SchemaType.create()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.create) * [`SchemaType.drop()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.drop) * [`SmallInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger) * [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) * [`String.RETURNS_BYTES`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES) * [`String.RETURNS_CONDITIONAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL) * [`String.RETURNS_UNICODE`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNICODE) * [`String.RETURNS_UNKNOWN`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNKNOWN) * [`String.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.__init__) * [`String.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.bind_processor) * [`String.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.get_dbapi_type) * [`String.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.literal_processor) * [`String.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.python_type) * [`String.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.result_processor) * [`Text`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text) * [`Time`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time) * [`Time.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.get_dbapi_type) * [`Time.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.python_type) * [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode) * [`Unicode.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode.__init__) * [`UnicodeText`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText) * [`UnicodeText.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText.__init__) * [SQL Standard and Multiple Vendor “UPPERCASE” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sql-standard-and-multiple-vendor-uppercase-types) * [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) * [`ARRAY.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator) * [`ARRAY.Comparator.all()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all) * [`ARRAY.Comparator.any()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any) * [`ARRAY.Comparator.contains()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.contains) * [`ARRAY.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.__init__) * [`ARRAY.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.comparator_factory) * [`ARRAY.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.compare_values) * [`ARRAY.hashable`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.hashable) * [`ARRAY.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.python_type) * [`ARRAY.zero_indexes`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.zero_indexes) * [`BIGINT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BIGINT) * [`BINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY) * [`BLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB) * [`BOOLEAN`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BOOLEAN) * [`CHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CHAR) * [`CLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CLOB) * [`DATE`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATE) * [`DATETIME`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATETIME) * [`DECIMAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DECIMAL) * [`FLOAT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.FLOAT) * [`INT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INT) * [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) * [`JSON.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) * [`JSON.Comparator.as_boolean()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean) * [`JSON.Comparator.as_float()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float) * [`JSON.Comparator.as_integer()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer) * [`JSON.Comparator.as_json()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json) * [`JSON.Comparator.as_numeric()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric) * [`JSON.Comparator.as_string()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string) * [`JSON.JSONElementType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType) * [`JSON.JSONElementType.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.bind_processor) * [`JSON.JSONElementType.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.literal_processor) * [`JSON.JSONIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType) * [`JSON.JSONIntIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType) * [`JSON.JSONPathType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType) * [`JSON.JSONStrIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType) * [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL) * [`JSON.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.__init__) * [`JSON.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.bind_processor) * [`JSON.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.comparator_factory) * [`JSON.hashable`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.hashable) * [`JSON.python_type`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.python_type) * [`JSON.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.result_processor) * [`JSON.should_evaluate_none`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none) * [`INTEGER`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER) * [`NCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NCHAR) * [`NVARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NVARCHAR) * [`NUMERIC`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC) * [`REAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.REAL) * [`SMALLINT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SMALLINT) * [`TEXT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TEXT) * [`TIME`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIME) * [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP) * [`TIMESTAMP.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.__init__) * [`TIMESTAMP.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.get_dbapi_type) * [`VARBINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARBINARY) * [`VARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR) The Type Hierarchy[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#module-sqlalchemy.types "Link to this heading") ============================================================================================================================== SQLAlchemy provides abstractions for most common database data types, as well as several techniques for customization of datatypes. Database types are represented using Python classes, all of which ultimately extend from the base type class known as [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") . There are two general categories of datatypes, each of which express themselves within the typing hierarchy in different ways. The category used by an individual datatype class can be identified based on the use of two different naming conventions, which are “CamelCase” and “UPPERCASE”. See also [Setting up MetaData with Table objects](https://docs.sqlalchemy.org/en/14/tutorial/metadata.html#tutorial-core-metadata) - in the [SQLAlchemy 1.4 / 2.0 Tutorial](https://docs.sqlalchemy.org/en/14/tutorial/index.html#unified-tutorial) . Illustrates the most rudimental use of [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") type objects to define [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") metadata and introduces the concept of type objects in tutorial form. The “CamelCase” datatypes[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#the-camelcase-datatypes "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------- The rudimental types have “CamelCase” names such as [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") , [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") , [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") , and [`DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.types.DateTime") . All of the immediate subclasses of [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") are “CamelCase” types. The “CamelCase” types are to the greatest degree possible **database agnostic**, meaning they can all be used on any database backend where they will behave in such a way as appropriate to that backend in order to produce the desired behavior. An example of a straightforward “CamelCase” datatype is [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") . On most backends, using this datatype in a [table specification](https://docs.sqlalchemy.org/en/14/core/metadata.html#metadata-describing) will correspond to the `VARCHAR` database type being used on the target backend, delivering string values to and from the database, as in the example below: from sqlalchemy import MetaData from sqlalchemy import Table, Column, Integer, String metadata\_obj \= MetaData() user \= Table( "user", metadata\_obj, Column("user\_name", String, primary\_key\=True), Column("email\_address", String(60)), ) When using a particular [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in a [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") definition or in any SQL expression overall, if no arguments are required it may be passed as the class itself, that is, without instantiating it with `()`. If arguments are needed, such as the length argument of 60 in the `"email_address"` column above, the type may be instantiated. Another “CamelCase” datatype that expresses more backend-specific behavior is the [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") datatype. Unlike [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") , which represents a string datatype that all databases have, not every backend has a real “boolean” datatype; some make use of integers or BIT values 0 and 1, some have boolean literal constants `true` and `false` while others dont. For this datatype, [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") may render `BOOLEAN` on a backend such as PostgreSQL, `BIT` on the MySQL backend and `SMALLINT` on Oracle. As data is sent and received from the database using this type, based on the dialect in use it may be interpreting Python numeric or boolean values. The typical SQLAlchemy application will likely wish to use primarily “CamelCase” types in the general case, as they will generally provide the best basic behavior and be automatically portable to all backends. Reference for the general set of “CamelCase” datatypes is below at [Generic “CamelCase” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#types-generic) . The “UPPERCASE” datatypes[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#the-uppercase-datatypes "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------- In contrast to the “CamelCase” types are the “UPPERCASE” datatypes. These datatypes are always inherited from a particular “CamelCase” datatype, and always represent an **exact** datatype. When using an “UPPERCASE” datatype, the name of the type is always rendered exactly as given, without regard for whether or not the current backend supports it. Therefore the use of “UPPERCASE” types in a SQLAlchemy application indicates that specific datatypes are required, which then implies that the application would normally, without additional steps taken, be limited to those backends which use the type exactly as given. Examples of UPPERCASE types include [`VARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR "sqlalchemy.types.VARCHAR") , [`NUMERIC`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC "sqlalchemy.types.NUMERIC") , [`INTEGER`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER "sqlalchemy.types.INTEGER") , and [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "sqlalchemy.types.TIMESTAMP") , which inherit directly from the previously mentioned “CamelCase” types [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") , [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") , [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") , and [`DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.types.DateTime") , respectively. The “UPPERCASE” datatypes that are part of `sqlalchemy.types` are common SQL types that typically expect to be available on at least two backends if not more. Reference for the general set of “UPPERCASE” datatypes is below at [SQL Standard and Multiple Vendor “UPPERCASE” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#types-sqlstandard) . Backend-specific “UPPERCASE” datatypes[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#backend-specific-uppercase-datatypes "Link to this heading") --------------------------------------------------------------------------------------------------------------------------------------------------------------- Most databases also have their own datatypes that are either fully specific to those databases, or add additional arguments that are specific to those databases. For these datatypes, specific SQLAlchemy dialects provide **backend-specific** “UPPERCASE” datatypes, for a SQL type that has no analogue on other backends. Examples of backend-specific uppercase datatypes include PostgreSQL’s [`JSONB`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB "sqlalchemy.dialects.postgresql.JSONB") , SQL Server’s [`IMAGE`](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.IMAGE "sqlalchemy.dialects.mssql.IMAGE") and MySQL’s [`TINYTEXT`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TINYTEXT "sqlalchemy.dialects.mysql.TINYTEXT") . Specific backends may also include “UPPERCASE” datatypes that extend the arguments available from that same “UPPERCASE” datatype as found in the `sqlalchemy.types` module. An example is when creating a MySQL string datatype, one might want to specify MySQL-specific arguments such as `charset` or `national`, which are available from the MySQL version of [`VARCHAR`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR "sqlalchemy.dialects.mysql.VARCHAR") as the MySQL-only parameters [`VARCHAR.charset`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR.params.charset "sqlalchemy.dialects.mysql.VARCHAR") and [`VARCHAR.national`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR.params.national "sqlalchemy.dialects.mysql.VARCHAR") . API documentation for backend-specific types are in the dialect-specific documentation, listed at [Dialects](https://docs.sqlalchemy.org/en/14/dialects/index.html) . Using “UPPERCASE” and Backend-specific types for multiple backends[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#using-uppercase-and-backend-specific-types-for-multiple-backends "Link to this heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Reviewing the presence of “UPPERCASE” and “CamelCase” types leads to the natural use case of how to make use of “UPPERCASE” datatypes for backend-specific options, but only when that backend is in use. To tie together the database-agnostic “CamelCase” and backend-specific “UPPERCASE” systems, one makes use of the [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") method in order to **compose** types together to work with specific behaviors on specific backends. Such as, to use the [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") datatype, but when running on MySQL to make use of the [`VARCHAR.charset`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR.params.charset "sqlalchemy.dialects.mysql.VARCHAR") parameter of [`VARCHAR`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.VARCHAR "sqlalchemy.dialects.mysql.VARCHAR") when the table is created on MySQL, [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") may be used as below: from sqlalchemy import MetaData from sqlalchemy import Table, Column, Integer, String from sqlalchemy.dialects.mysql import VARCHAR metadata\_obj \= MetaData() user \= Table( "user", metadata\_obj, Column("user\_name", String(100), primary\_key\=True), Column( "bio", String(255).with\_variant(VARCHAR(255, charset\="utf8"), "mysql"), ), ) In the above table definition, the `"bio"` column will have string-behaviors on all backends. On most backends it will render in DDL as `VARCHAR`. However on MySQL (indicated by database URLs that start with `mysql`), it will render as `VARCHAR(255) CHARACTER SET utf8`. See also [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") - additional usage examples and notes Generic “CamelCase” Types[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#generic-camelcase-types "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------- Generic types specify a column that can read, write and store a particular type of Python data. SQLAlchemy will choose the best database column type available on the target database when issuing a `CREATE TABLE` statement. For complete control over which column type is emitted in `CREATE TABLE`, such as `VARCHAR` see [SQL Standard and Multiple Vendor “UPPERCASE” Types](https://docs.sqlalchemy.org/en/14/core/type_basics.html#types-sqlstandard) and the other sections of this chapter. | Object Name | Description | | --- | --- | | [BigInteger](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger) | A type for bigger `int` integers. | | [Boolean](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) | A bool datatype. | | [Date](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date) | A type for `datetime.date()` objects. | | [DateTime](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime) | A type for `datetime.datetime()` objects. | | [Enum](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum) | Generic Enum Type. | | [Float](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float) | Type representing floating point types, such as `FLOAT` or `REAL`. | | [Integer](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer) | A type for `int` integers. | | [Interval](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) | A type for `datetime.timedelta()` objects. | | [LargeBinary](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary) | A type for large binary byte data. | | [MatchType](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.MatchType) | Refers to the return type of the MATCH operator. | | [Numeric](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) | Base for non-integer numeric types, such as `NUMERIC`, `FLOAT`, `DECIMAL`, and other variants. | | [PickleType](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) | Holds Python objects, which are serialized using pickle. | | [SchemaType](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) | Mark a type as possibly requiring schema-level DDL for usage. | | [SmallInteger](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger) | A type for smaller `int` integers. | | [String](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) | The base for all string and character types. | | [Text](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text) | A variably sized string type. | | [Time](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time) | A type for `datetime.time()` objects. | | [Unicode](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode) | A variable length Unicode string type. | | [UnicodeText](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText) | An unbounded-length Unicode string type. | _class_ sqlalchemy.types.BigInteger[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger "Link to this definition") A type for bigger `int` integers. Typically generates a `BIGINT` in DDL, and otherwise acts like a normal [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") on the Python side. **Class signature** class [`sqlalchemy.types.BigInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger "sqlalchemy.types.BigInteger") ([`sqlalchemy.types.Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") ) _class_ sqlalchemy.types.Boolean(_create\_constraint\=False_, _name\=None_, _\_create\_events\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "Link to this definition") A bool datatype. [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") typically uses BOOLEAN or SMALLINT on the DDL side, and on the Python side deals in `True` or `False`. The [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") datatype currently has two levels of assertion that the values persisted are simple true/false values. For all backends, only the Python values `None`, `True`, `False`, `1` or `0` are accepted as parameter values. For those backends that don’t support a “native boolean” datatype, an option exists to also create a CHECK constraint on the target column Changed in version 1.2: the [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") datatype now asserts that incoming Python values are already in pure boolean form. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.__init__) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.python_type) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor) **Class signature** class [`sqlalchemy.types.Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") (`sqlalchemy.types.Emulated`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") , [`sqlalchemy.types.SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "sqlalchemy.types.SchemaType") ) _method_ [`sqlalchemy.types.Boolean.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) \_\_init\_\_(_create\_constraint\=False_, _name\=None_, _\_create\_events\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.__init__ "Link to this definition") Construct a Boolean. Parameters: * **create\_constraint**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.params.create_constraint) – defaults to False. If the boolean is generated as an int/smallint, also create a CHECK constraint on the table that ensures 1 or 0 as a value. Note it is strongly recommended that the CHECK constraint have an explicit name in order to support schema-management concerns. This can be established either by setting the [`Boolean.name`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.params.name "sqlalchemy.types.Boolean") parameter or by setting up an appropriate naming convention; see [Configuring Constraint Naming Conventions](https://docs.sqlalchemy.org/en/14/core/constraints.html#constraint-naming-conventions) for background. Changed in version 1.4: \- this flag now defaults to False, meaning no CHECK constraint is generated for a non-native enumerated type. * **name**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.params.name) – if a CHECK constraint is generated, specify the name of the constraint. _method_ [`sqlalchemy.types.Boolean.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.bind_processor.params.dialect) – Dialect instance in use. _method_ [`sqlalchemy.types.Boolean.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.literal_processor "Link to this definition") Return a conversion function for processing literal values that are to be rendered directly without using binds. This function is used when the compiler makes use of the “literal\_binds” flag, typically used in DDL generation as well as in certain scenarios where backends don’t accept bound parameters. Returns a callable which will receive a literal Python value as the sole positional argument and will return a string representation to be rendered in a SQL statement. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) _attribute_ [`sqlalchemy.types.Boolean.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.python_type "Link to this definition") _method_ [`sqlalchemy.types.Boolean.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _class_ sqlalchemy.types.Date[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date "Link to this definition") A type for `datetime.date()` objects. **Members** [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.python_type) **Class signature** class [`sqlalchemy.types.Date`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date "sqlalchemy.types.Date") (`sqlalchemy.types._LookupExpressionAdapter`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _method_ [`sqlalchemy.types.Date.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _attribute_ [`sqlalchemy.types.Date.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date.python_type "Link to this definition") _class_ sqlalchemy.types.DateTime(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "Link to this definition") A type for `datetime.datetime()` objects. Date and time types return objects from the Python `datetime` module. Most DBAPIs have built in support for the datetime module, with the noted exception of SQLite. In the case of SQLite, date and time types are stored as strings which are then converted back to datetime objects when rows are returned. For the time representation within the datetime type, some backends include additional options, such as timezone support and fractional seconds support. For fractional seconds, use the dialect-specific datatype, such as [`TIME`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.TIME "sqlalchemy.dialects.mysql.TIME") . For timezone support, use at least the [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "sqlalchemy.types.TIMESTAMP") datatype, if not the dialect-specific datatype object. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.__init__) , [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.python_type) **Class signature** class [`sqlalchemy.types.DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.types.DateTime") (`sqlalchemy.types._LookupExpressionAdapter`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _method_ [`sqlalchemy.types.DateTime.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime) \_\_init\_\_(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.__init__ "Link to this definition") Construct a new [`DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.types.DateTime") . Parameters: **timezone**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.params.timezone) – boolean. Indicates that the datetime type should enable timezone support, if available on the **base date/time-holding type only**. It is recommended to make use of the [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "sqlalchemy.types.TIMESTAMP") datatype directly when using this flag, as some databases include separate generic date/time-holding types distinct from the timezone-capable TIMESTAMP datatype, such as Oracle. _method_ [`sqlalchemy.types.DateTime.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _attribute_ [`sqlalchemy.types.DateTime.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime.python_type "Link to this definition") _class_ sqlalchemy.types.Enum(_\*enums_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "Link to this definition") Generic Enum Type. The [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") type provides a set of possible string values which the column is constrained towards. The [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") type will make use of the backend’s native “ENUM” type if one is available; otherwise, it uses a VARCHAR datatype. An option also exists to automatically produce a CHECK constraint when the VARCHAR (so called “non-native”) variant is produced; see the [`Enum.create_constraint`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.create_constraint "sqlalchemy.types.Enum") flag. The [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") type also provides in-Python validation of string values during both read and write operations. When reading a value from the database in a result set, the string value is always checked against the list of possible values and a `LookupError` is raised if no match is found. When passing a value to the database as a plain string within a SQL statement, if the [`Enum.validate_strings`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.validate_strings "sqlalchemy.types.Enum") parameter is set to True, a `LookupError` is raised for any string value that’s not located in the given list of possible values; note that this impacts usage of LIKE expressions with enumerated values (an unusual use case). Changed in version 1.1: the [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") type now provides in-Python validation of input values as well as on data being returned by the database. The source of enumerated values may be a list of string values, or alternatively a PEP-435-compliant enumerated class. For the purposes of the [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") datatype, this class need only provide a `__members__` method. When using an enumerated class, the enumerated objects are used both for input and output, rather than strings as is the case with a plain-string enumerated type: import enum from sqlalchemy import Enum class MyEnum(enum.Enum): one \= 1 two \= 2 three \= 3 t \= Table( 'data', MetaData(), Column('value', Enum(MyEnum)) ) connection.execute(t.insert(), {"value": MyEnum.two}) assert connection.scalar(t.select()) is MyEnum.two Above, the string names of each element, e.g. “one”, “two”, “three”, are persisted to the database; the values of the Python Enum, here indicated as integers, are **not** used; the value of each enum can therefore be any kind of Python object whether or not it is persistable. In order to persist the values and not the names, the [`Enum.values_callable`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.values_callable "sqlalchemy.types.Enum") parameter may be used. The value of this parameter is a user-supplied callable, which is intended to be used with a PEP-435-compliant enumerated class and returns a list of string values to be persisted. For a simple enumeration that uses string values, a callable such as `lambda x: [e.value for e in x]` is sufficient. Added in version 1.1: \- support for PEP-435-style enumerated classes. See also [`ENUM`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ENUM "sqlalchemy.dialects.postgresql.ENUM") - PostgreSQL-specific type, which has additional functionality. [`ENUM`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.ENUM "sqlalchemy.dialects.mysql.ENUM") - MySQL-specific type **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.__init__) , [create()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.create) , [drop()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.drop) **Class signature** class [`sqlalchemy.types.Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") (`sqlalchemy.types.Emulated`, [`sqlalchemy.types.String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") , [`sqlalchemy.types.SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "sqlalchemy.types.SchemaType") ) _method_ [`sqlalchemy.types.Enum.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum) \_\_init\_\_(_\*enums_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.__init__ "Link to this definition") Construct an enum. Keyword arguments which don’t apply to a specific backend are ignored by that backend. Parameters: * **\*enums**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.*enums) – either exactly one PEP-435 compliant enumerated type or one or more string labels. Added in version 1.1: a PEP-435 style enumerated class may be passed. * **convert\_unicode**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.convert_unicode) – Enable unicode-aware bind parameter and result-set processing for this Enum’s data under Python 2 only. Under Python 2, this is set automatically based on the presence of unicode label strings. This flag will be removed in SQLAlchemy 2.0. * **create\_constraint**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.create_constraint) – defaults to False. When creating a non-native enumerated type, also build a CHECK constraint on the database against the valid values. Note it is strongly recommended that the CHECK constraint have an explicit name in order to support schema-management concerns. This can be established either by setting the [`Enum.name`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.name "sqlalchemy.types.Enum") parameter or by setting up an appropriate naming convention; see [Configuring Constraint Naming Conventions](https://docs.sqlalchemy.org/en/14/core/constraints.html#constraint-naming-conventions) for background. Changed in version 1.4: \- this flag now defaults to False, meaning no CHECK constraint is generated for a non-native enumerated type. * **metadata**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.metadata) – Associate this type directly with a `MetaData` object. For types that exist on the target database as an independent schema construct (PostgreSQL), this type will be created and dropped within `create_all()` and `drop_all()` operations. If the type is not associated with any `MetaData` object, it will associate itself with each `Table` in which it is used, and will be created when any of those individual tables are created, after a check is performed for its existence. The type is only dropped when `drop_all()` is called for that `Table` object’s metadata, however. The value of the [`MetaData.schema`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.params.schema "sqlalchemy.schema.MetaData") parameter of the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") object, if set, will be used as the default value of the [`Enum.schema`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.schema "sqlalchemy.types.Enum") on this object if an explicit value is not otherwise supplied. Changed in version 1.4.12: [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") inherits the [`MetaData.schema`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.params.schema "sqlalchemy.schema.MetaData") parameter of the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") object if present, when passed using the [`Enum.metadata`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.metadata "sqlalchemy.types.Enum") parameter. * **name**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.name) – The name of this type. This is required for PostgreSQL and any future supported database which requires an explicitly named type, or an explicitly named constraint in order to generate the type and/or a table that uses it. If a PEP-435 enumerated class was used, its name (converted to lower case) is used by default. * **native\_enum**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.native_enum) – Use the database’s native ENUM type when available. Defaults to True. When False, uses VARCHAR + check constraint for all backends. When False, the VARCHAR length can be controlled with [`Enum.length`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.length "sqlalchemy.types.Enum") ; currently “length” is ignored if native\_enum=True. * **length**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.length) – Allows specifying a custom length for the VARCHAR when [`Enum.native_enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.native_enum "sqlalchemy.types.Enum") is False. By default it uses the length of the longest value. Added in version 1.3.16. * **schema**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.schema) – Schema name of this type. For types that exist on the target database as an independent schema construct (PostgreSQL), this parameter specifies the named schema in which the type is present. If not present, the schema name will be taken from the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") collection if passed as [`Enum.metadata`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.metadata "sqlalchemy.types.Enum") , for a [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") that includes the [`MetaData.schema`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.params.schema "sqlalchemy.schema.MetaData") parameter. Changed in version 1.4.12: [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") inherits the [`MetaData.schema`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.params.schema "sqlalchemy.schema.MetaData") parameter of the [`MetaData`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData "sqlalchemy.schema.MetaData") object if present, when passed using the [`Enum.metadata`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.metadata "sqlalchemy.types.Enum") parameter. Otherwise, if the [`Enum.inherit_schema`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema "sqlalchemy.types.Enum") flag is set to `True`, the schema will be inherited from the associated [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") object if any; when [`Enum.inherit_schema`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema "sqlalchemy.types.Enum") is at its default of `False`, the owning table’s schema is **not** used. * **quote**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.quote) – Set explicit quoting preferences for the type’s name. * **inherit\_schema**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.inherit_schema) – When `True`, the “schema” from the owning [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") will be copied to the “schema” attribute of this [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") , replacing whatever value was passed for the `schema` attribute. This also takes effect when using the [`Table.to_metadata()`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table.to_metadata "sqlalchemy.schema.Table.to_metadata") operation. * **validate\_strings**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.validate_strings) – when True, string values that are being passed to the database in a SQL statement will be checked for validity against the list of enumerated values. Unrecognized values will result in a `LookupError` being raised. Added in version 1.1.0b2. * **values\_callable**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.values_callable) – A callable which will be passed the PEP-435 compliant enumerated type, which should then return a list of string values to be persisted. This allows for alternate usages such as using the string value of an enum to be persisted to the database instead of its name. Added in version 1.2.3. * **sort\_key\_function**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.sort_key_function) – a Python callable which may be used as the “key” argument in the Python `sorted()` built-in. The SQLAlchemy ORM requires that primary key columns which are mapped must be sortable in some way. When using an unsortable enumeration object such as a Python 3 `Enum` object, this parameter may be used to set a default sort key function for the objects. By default, the database value of the enumeration is used as the sorting function. Added in version 1.3.8. * **omit\_aliases**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.params.omit_aliases) – A boolean that when true will remove aliases from pep 435 enums. For backward compatibility it defaults to `False`. A deprecation warning is raised if the enum has aliases and this flag was not set. Added in version 1.4.5. Deprecated since version 1.4: The default will be changed to `True` in SQLAlchemy 2.0. _method_ [`sqlalchemy.types.Enum.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum) create(_bind\=None_, _checkfirst\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.create "Link to this definition") _inherited from the_ [`SchemaType.create()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.create "sqlalchemy.types.SchemaType.create") _method of_ [`SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "sqlalchemy.types.SchemaType") Issue CREATE DDL for this type, if applicable. _method_ [`sqlalchemy.types.Enum.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum) drop(_bind\=None_, _checkfirst\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum.drop "Link to this definition") _inherited from the_ [`SchemaType.drop()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.drop "sqlalchemy.types.SchemaType.drop") _method of_ [`SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "sqlalchemy.types.SchemaType") Issue DROP DDL for this type, if applicable. _class_ sqlalchemy.types.Float(_precision\=None_, _asdecimal\=False_, _decimal\_return\_scale\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float "Link to this definition") Type representing floating point types, such as `FLOAT` or `REAL`. This type returns Python `float` objects by default, unless the [`Float.asdecimal`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.params.asdecimal "sqlalchemy.types.Float") flag is set to True, in which case they are coerced to `decimal.Decimal` objects. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.__init__) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor) **Class signature** class [`sqlalchemy.types.Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float "sqlalchemy.types.Float") ([`sqlalchemy.types.Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") ) _method_ [`sqlalchemy.types.Float.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float) \_\_init\_\_(_precision\=None_, _asdecimal\=False_, _decimal\_return\_scale\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.__init__ "Link to this definition") Construct a Float. Parameters: * **precision**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.params.precision) – the numeric precision for use in DDL `CREATE TABLE`. * **asdecimal**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.params.asdecimal) – the same flag as that of [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") , but defaults to `False`. Note that setting this flag to `True` results in floating point conversion. * **decimal\_return\_scale**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.params.decimal_return_scale) – Default scale to use when converting from floats to Python decimals. Floating point values will typically be much longer due to decimal inaccuracy, and most floating point database types don’t have a notion of “scale”, so by default the float type looks for the first ten decimal places when converting. Specifying this value will override that length. Note that the MySQL float types, which do include “scale”, will use “scale” as the default for decimal\_return\_scale, if not otherwise specified. Added in version 0.9.0. _method_ [`sqlalchemy.types.Float.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _class_ sqlalchemy.types.Integer[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "Link to this definition") A type for `int` integers. **Members** [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.literal_processor) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.python_type) **Class signature** class [`sqlalchemy.types.Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") (`sqlalchemy.types._LookupExpressionAdapter`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _method_ [`sqlalchemy.types.Integer.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _method_ [`sqlalchemy.types.Integer.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.literal_processor "Link to this definition") Return a conversion function for processing literal values that are to be rendered directly without using binds. This function is used when the compiler makes use of the “literal\_binds” flag, typically used in DDL generation as well as in certain scenarios where backends don’t accept bound parameters. Returns a callable which will receive a literal Python value as the sole positional argument and will return a string representation to be rendered in a SQL statement. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) _attribute_ [`sqlalchemy.types.Integer.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer.python_type "Link to this definition") _class_ sqlalchemy.types.Interval(_native\=True_, _second\_precision\=None_, _day\_precision\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval "Link to this definition") A type for `datetime.timedelta()` objects. The Interval type deals with `datetime.timedelta` objects. In PostgreSQL, the native `INTERVAL` type is used; for others, the value is stored as a date which is relative to the “epoch” (Jan. 1, 1970). Note that the `Interval` type does not currently provide date arithmetic operations on platforms which do not support interval types natively. Such operations usually require transformation of both sides of the expression (such as, conversion of both sides into integer epoch values first) which currently is a manual procedure (such as via [`expression.func`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.func "sqlalchemy.sql.expression.func") ). **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.__init__) , [adapt\_to\_emulated()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.bind_processor) , [cache\_ok](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.cache_ok) , [impl](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.impl) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.python_type) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.result_processor) **Class signature** class [`sqlalchemy.types.Interval`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval "sqlalchemy.types.Interval") (`sqlalchemy.types.Emulated`, `sqlalchemy.types._AbstractInterval`, [`sqlalchemy.types.TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") ) _method_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) \_\_init\_\_(_native\=True_, _second\_precision\=None_, _day\_precision\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.__init__ "Link to this definition") Construct an Interval object. Parameters: * **native**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.params.native) – when True, use the actual INTERVAL type provided by the database, if supported (currently PostgreSQL, Oracle). Otherwise, represent the interval data as an epoch value regardless. * **second\_precision**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.params.second_precision) – For native interval types which support a “fractional seconds precision” parameter, i.e. Oracle and PostgreSQL * **day\_precision**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.params.day_precision) – for native interval types which support a “day precision” parameter, i.e. Oracle. _method_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) adapt\_to\_emulated(_impltype_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.adapt_to_emulated "Link to this definition") Given an impl class, adapt this type to the impl assuming “emulated”. The impl should also be an “emulated” version of this type, most likely the same class as this type itself. e.g.: sqltypes.Enum adapts to the Enum class. _method_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.bind_processor.params.dialect) – Dialect instance in use. _attribute_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) cache\_ok _\= True_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.cache_ok "Link to this definition") Indicate if statements using this [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") are “safe to cache”. The default value `None` will emit a warning and then not allow caching of a statement which includes this type. Set to `False` to disable statements using this type from being cached at all without a warning. When set to `True`, the object’s class and selected elements from its state will be used as part of the cache key. For example, using a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") : class MyType(TypeDecorator): impl \= String cache\_ok \= True def \_\_init\_\_(self, choices): self.choices \= tuple(choices) self.internal\_only \= True The cache key for the above type would be equivalent to: \>>> MyType(\["a", "b", "c"\]).\_static\_cache\_key (, ('choices', ('a', 'b', 'c'))) The caching scheme will extract attributes from the type that correspond to the names of parameters in the `__init__()` method. Above, the “choices” attribute becomes part of the cache key but “internal\_only” does not, because there is no parameter named “internal\_only”. The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value. To accommodate for datatypes that refer to unhashable structures such as dictionaries, sets and lists, these objects can be made “cacheable” by assigning hashable structures to the attributes whose names correspond with the names of the arguments. For example, a datatype which accepts a dictionary of lookup values may publish this as a sorted series of tuples. Given a previously un-cacheable type as: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. this is the non-cacheable version, as "self.lookup" is not hashable. ''' def \_\_init\_\_(self, lookup): self.lookup \= lookup def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.lookup" ... Where “lookup” is a dictionary. The type will not be able to generate a cache key: \>>> type\_ \= LookupType({"a": 10, "b": 20}) \>>> type\_.\_static\_cache\_key :1: SAWarning: UserDefinedType LookupType({'a': 10, 'b': 20}) will not produce a cache key because the \`\`cache\_ok\`\` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning. symbol('no\_cache') If we **did** set up such a cache key, it wouldn’t be usable. We would get a tuple structure that contains a dictionary inside of it, which cannot itself be used as a key in a “cache dictionary” such as SQLAlchemy’s statement cache, since Python dictionaries aren’t hashable: \>>> \# set cache\_ok = True \>>> type\_.cache\_ok \= True \>>> \# this is the cache key it would generate \>>> key \= type\_.\_static\_cache\_key \>>> key (, ('lookup', {'a': 10, 'b': 20})) \>>> \# however this key is not hashable, will fail when used with \>>> \# SQLAlchemy statement cache \>>> some\_cache \= {key: "some sql value"} Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'dict' The type may be made cacheable by assigning a sorted tuple of tuples to the “.lookup” attribute: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. The dictionary is stored both as itself in a private variable, and published in a public variable as a sorted tuple of tuples, which is hashable and will also return the same value for any two equivalent dictionaries. Note it assumes the keys and values of the dictionary are themselves hashable. ''' cache\_ok \= True def \_\_init\_\_(self, lookup): self.\_lookup \= lookup \# assume keys/values of "lookup" are hashable; otherwise \# they would also need to be converted in some way here self.lookup \= tuple( (key, lookup\[key\]) for key in sorted(lookup) ) def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.\_lookup" ... Where above, the cache key for `LookupType({"a": 10, "b": 20})` will be: \>>> LookupType({"a": 10, "b": 20}).\_static\_cache\_key (, ('lookup', (('a', 10), ('b', 20)))) Added in version 1.4.14: \- added the `cache_ok` flag to allow some configurability of caching for [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes. Added in version 1.4.28: \- added the [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") mixin which generalizes the `cache_ok` flag to both the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") and [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") classes. See also [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) _attribute_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) impl[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.impl "Link to this definition") alias of [`DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.sql.sqltypes.DateTime") _attribute_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.python_type "Link to this definition") _method_ [`sqlalchemy.types.Interval.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Interval.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _class_ sqlalchemy.types.LargeBinary(_length\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "Link to this definition") A type for large binary byte data. The [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.types.LargeBinary") type corresponds to a large and/or unlengthed binary type for the target platform, such as BLOB on MySQL and BYTEA for PostgreSQL. It also handles the necessary conversions for the DBAPI. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary.__init__) **Class signature** class [`sqlalchemy.types.LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.types.LargeBinary") (`sqlalchemy.types._Binary`) _method_ [`sqlalchemy.types.LargeBinary.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary) \_\_init\_\_(_length\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary.__init__ "Link to this definition") Construct a LargeBinary type. Parameters: **length**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary.params.length) – optional, a length for the column for use in DDL statements, for those binary types that accept a length, such as the MySQL BLOB type. _class_ sqlalchemy.types.MatchType(_create\_constraint\=False_, _name\=None_, _\_create\_events\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.MatchType "Link to this definition") Refers to the return type of the MATCH operator. As the [`ColumnOperators.match()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.match "sqlalchemy.sql.expression.ColumnOperators.match") is probably the most open-ended operator in generic SQLAlchemy Core, we can’t assume the return type at SQL evaluation time, as MySQL returns a floating point, not a boolean, and other backends might do something different. So this type acts as a placeholder, currently subclassing [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") . The type allows dialects to inject result-processing functionality if needed, and on MySQL will return floating-point values. Added in version 1.0.0. **Class signature** class [`sqlalchemy.types.MatchType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.MatchType "sqlalchemy.types.MatchType") ([`sqlalchemy.types.Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") ) _class_ sqlalchemy.types.Numeric(_precision\=None_, _scale\=None_, _decimal\_return\_scale\=None_, _asdecimal\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "Link to this definition") Base for non-integer numeric types, such as `NUMERIC`, `FLOAT`, `DECIMAL`, and other variants. The [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") datatype when used directly will render DDL corresponding to precision numerics if available, such as `NUMERIC(precision, scale)`. The [`Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float "sqlalchemy.types.Float") subclass will attempt to render a floating-point datatype such as `FLOAT(precision)`. [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") returns Python `decimal.Decimal` objects by default, based on the default value of `True` for the [`Numeric.asdecimal`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.params.asdecimal "sqlalchemy.types.Numeric") parameter. If this parameter is set to False, returned values are coerced to Python `float` objects. The [`Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float "sqlalchemy.types.Float") subtype, being more specific to floating point, defaults the [`Float.asdecimal`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float.params.asdecimal "sqlalchemy.types.Float") flag to False so that the default Python datatype is `float`. Note When using a [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") datatype against a database type that returns Python floating point values to the driver, the accuracy of the decimal conversion indicated by [`Numeric.asdecimal`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.params.asdecimal "sqlalchemy.types.Numeric") may be limited. The behavior of specific numeric/floating point datatypes is a product of the SQL datatype in use, the Python [DBAPI](https://docs.sqlalchemy.org/en/14/glossary.html#term-DBAPI) in use, as well as strategies that may be present within the SQLAlchemy dialect in use. Users requiring specific precision/ scale are encouraged to experiment with the available datatypes in order to determine the best results. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.__init__) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.bind_processor) , [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.get_dbapi_type) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.literal_processor) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.python_type) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.result_processor) **Class signature** class [`sqlalchemy.types.Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") (`sqlalchemy.types._LookupExpressionAdapter`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _method_ [`sqlalchemy.types.Numeric.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) \_\_init\_\_(_precision\=None_, _scale\=None_, _decimal\_return\_scale\=None_, _asdecimal\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.__init__ "Link to this definition") Construct a Numeric. Parameters: * **precision**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.params.precision) – the numeric precision for use in DDL `CREATE TABLE`. * **scale**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.params.scale) – the numeric scale for use in DDL `CREATE TABLE`. * **asdecimal**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.params.asdecimal) – default True. Return whether or not values should be sent as Python Decimal objects, or as floats. Different DBAPIs send one or the other based on datatypes - the Numeric type will ensure that return values are one or the other across DBAPIs consistently. * **decimal\_return\_scale**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.params.decimal_return_scale) – Default scale to use when converting from floats to Python decimals. Floating point values will typically be much longer due to decimal inaccuracy, and most floating point database types don’t have a notion of “scale”, so by default the float type looks for the first ten decimal places when converting. Specifying this value will override that length. Types which do include an explicit “.scale” value, such as the base [`Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") as well as the MySQL float types, will use the value of “.scale” as the default for decimal\_return\_scale, if not otherwise specified. When using the `Numeric` type, care should be taken to ensure that the asdecimal setting is appropriate for the DBAPI in use - when Numeric applies a conversion from Decimal->float or float-> Decimal, this conversion incurs an additional performance overhead for all result columns received. DBAPIs that return Decimal natively (e.g. psycopg2) will have better accuracy and higher performance with a setting of `True`, as the native translation to Decimal reduces the amount of floating- point issues at play, and the Numeric type itself doesn’t need to apply any further conversions. However, another DBAPI which returns floats natively _will_ incur an additional conversion overhead, and is still subject to floating point data loss - in which case `asdecimal=False` will at least remove the extra conversion overhead. _method_ [`sqlalchemy.types.Numeric.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.bind_processor.params.dialect) – Dialect instance in use. _method_ [`sqlalchemy.types.Numeric.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _method_ [`sqlalchemy.types.Numeric.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.literal_processor "Link to this definition") Return a conversion function for processing literal values that are to be rendered directly without using binds. This function is used when the compiler makes use of the “literal\_binds” flag, typically used in DDL generation as well as in certain scenarios where backends don’t accept bound parameters. Returns a callable which will receive a literal Python value as the sole positional argument and will return a string representation to be rendered in a SQL statement. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) _attribute_ [`sqlalchemy.types.Numeric.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.python_type "Link to this definition") _method_ [`sqlalchemy.types.Numeric.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _class_ sqlalchemy.types.PickleType(_protocol\=5_, _pickler\=None_, _comparator\=None_, _impl\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "Link to this definition") Holds Python objects, which are serialized using pickle. PickleType builds upon the Binary type to apply Python’s `pickle.dumps()` to incoming objects, and `pickle.loads()` on the way out, allowing any pickleable Python object to be stored as a serialized binary field. To allow ORM change events to propagate for elements associated with [`PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") , see [Mutation Tracking](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html) . **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.__init__) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.bind_processor) , [cache\_ok](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok) , [compare\_values()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.compare_values) , [impl](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.impl) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.result_processor) **Class signature** class [`sqlalchemy.types.PickleType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType "sqlalchemy.types.PickleType") ([`sqlalchemy.types.TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") ) _method_ [`sqlalchemy.types.PickleType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) \_\_init\_\_(_protocol\=5_, _pickler\=None_, _comparator\=None_, _impl\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.__init__ "Link to this definition") Construct a PickleType. Parameters: * **protocol**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.protocol) – defaults to `pickle.HIGHEST_PROTOCOL`. * **pickler**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.pickler) – defaults to cPickle.pickle or pickle.pickle if cPickle is not available. May be any object with pickle-compatible `dumps` and `loads` methods. * **comparator**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.comparator) – a 2-arg callable predicate used to compare values of this type. If left as `None`, the Python “equals” operator is used to compare values. * **impl**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.params.impl) – A binary-storing [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class or instance to use in place of the default [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.types.LargeBinary") . For example the :class: \_mysql.LONGBLOB class may be more effective when using MySQL. Added in version 1.4.20. _method_ [`sqlalchemy.types.PickleType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.bind_processor "Link to this definition") Provide a bound value processing function for the given [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") . This is the method that fulfills the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") contract for bound value conversion which normally occurs via the [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method. Note User-defined subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should **not** implement this method, and should instead implement [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") so that the “inner” processing provided by the implementing type is maintained. Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.bind_processor.params.dialect) – Dialect instance in use. _attribute_ [`sqlalchemy.types.PickleType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) cache\_ok _\= True_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.cache_ok "Link to this definition") Indicate if statements using this [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") are “safe to cache”. The default value `None` will emit a warning and then not allow caching of a statement which includes this type. Set to `False` to disable statements using this type from being cached at all without a warning. When set to `True`, the object’s class and selected elements from its state will be used as part of the cache key. For example, using a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") : class MyType(TypeDecorator): impl \= String cache\_ok \= True def \_\_init\_\_(self, choices): self.choices \= tuple(choices) self.internal\_only \= True The cache key for the above type would be equivalent to: \>>> MyType(\["a", "b", "c"\]).\_static\_cache\_key (, ('choices', ('a', 'b', 'c'))) The caching scheme will extract attributes from the type that correspond to the names of parameters in the `__init__()` method. Above, the “choices” attribute becomes part of the cache key but “internal\_only” does not, because there is no parameter named “internal\_only”. The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value. To accommodate for datatypes that refer to unhashable structures such as dictionaries, sets and lists, these objects can be made “cacheable” by assigning hashable structures to the attributes whose names correspond with the names of the arguments. For example, a datatype which accepts a dictionary of lookup values may publish this as a sorted series of tuples. Given a previously un-cacheable type as: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. this is the non-cacheable version, as "self.lookup" is not hashable. ''' def \_\_init\_\_(self, lookup): self.lookup \= lookup def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.lookup" ... Where “lookup” is a dictionary. The type will not be able to generate a cache key: \>>> type\_ \= LookupType({"a": 10, "b": 20}) \>>> type\_.\_static\_cache\_key :1: SAWarning: UserDefinedType LookupType({'a': 10, 'b': 20}) will not produce a cache key because the \`\`cache\_ok\`\` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning. symbol('no\_cache') If we **did** set up such a cache key, it wouldn’t be usable. We would get a tuple structure that contains a dictionary inside of it, which cannot itself be used as a key in a “cache dictionary” such as SQLAlchemy’s statement cache, since Python dictionaries aren’t hashable: \>>> \# set cache\_ok = True \>>> type\_.cache\_ok \= True \>>> \# this is the cache key it would generate \>>> key \= type\_.\_static\_cache\_key \>>> key (, ('lookup', {'a': 10, 'b': 20})) \>>> \# however this key is not hashable, will fail when used with \>>> \# SQLAlchemy statement cache \>>> some\_cache \= {key: "some sql value"} Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'dict' The type may be made cacheable by assigning a sorted tuple of tuples to the “.lookup” attribute: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. The dictionary is stored both as itself in a private variable, and published in a public variable as a sorted tuple of tuples, which is hashable and will also return the same value for any two equivalent dictionaries. Note it assumes the keys and values of the dictionary are themselves hashable. ''' cache\_ok \= True def \_\_init\_\_(self, lookup): self.\_lookup \= lookup \# assume keys/values of "lookup" are hashable; otherwise \# they would also need to be converted in some way here self.lookup \= tuple( (key, lookup\[key\]) for key in sorted(lookup) ) def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.\_lookup" ... Where above, the cache key for `LookupType({"a": 10, "b": 20})` will be: \>>> LookupType({"a": 10, "b": 20}).\_static\_cache\_key (, ('lookup', (('a', 10), ('b', 20)))) Added in version 1.4.14: \- added the `cache_ok` flag to allow some configurability of caching for [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes. Added in version 1.4.28: \- added the [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") mixin which generalizes the `cache_ok` flag to both the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") and [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") classes. See also [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) _method_ [`sqlalchemy.types.PickleType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) compare\_values(_x_, _y_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.compare_values "Link to this definition") Given two values, compare them for equality. By default this calls upon [`TypeEngine.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values "sqlalchemy.types.TypeEngine.compare_values") of the underlying “impl”, which in turn usually uses the Python equals operator `==`. This function is used by the ORM to compare an original-loaded value with an intercepted “changed” value, to determine if a net change has occurred. _attribute_ [`sqlalchemy.types.PickleType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) impl[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.impl "Link to this definition") alias of [`LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.sql.sqltypes.LargeBinary") _method_ [`sqlalchemy.types.PickleType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.result_processor "Link to this definition") Provide a result value processing function for the given [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") . This is the method that fulfills the [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") contract for bound value conversion which normally occurs via the [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method. Note User-defined subclasses of [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") should **not** implement this method, and should instead implement [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") so that the “inner” processing provided by the implementing type is maintained. Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.PickleType.result_processor.params.coltype) – A SQLAlchemy data type _class_ sqlalchemy.types.SchemaType(_name\=None_, _schema\=None_, _metadata\=None_, _inherit\_schema\=False_, _quote\=None_, _\_create\_events\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "Link to this definition") Mark a type as possibly requiring schema-level DDL for usage. Supports types that must be explicitly created/dropped (i.e. PG ENUM type) as well as types that are complimented by table or schema level constraints, triggers, and other rules. [`SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "sqlalchemy.types.SchemaType") classes can also be targets for the [`DDLEvents.before_parent_attach()`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.before_parent_attach "sqlalchemy.events.DDLEvents.before_parent_attach") and [`DDLEvents.after_parent_attach()`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents.after_parent_attach "sqlalchemy.events.DDLEvents.after_parent_attach") events, where the events fire off surrounding the association of the type object with a parent [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") . See also [`Enum`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Enum "sqlalchemy.types.Enum") [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") **Members** [adapt()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.adapt) , [bind](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.bind) , [copy()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.copy) , [create()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.create) , [drop()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.drop) **Class signature** class [`sqlalchemy.types.SchemaType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType "sqlalchemy.types.SchemaType") (`sqlalchemy.sql.expression.SchemaEventTarget`) _method_ [`sqlalchemy.types.SchemaType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) adapt(_impltype_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.adapt "Link to this definition") _attribute_ [`sqlalchemy.types.SchemaType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) bind[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.bind "Link to this definition") _method_ [`sqlalchemy.types.SchemaType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) copy(_\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.copy "Link to this definition") _method_ [`sqlalchemy.types.SchemaType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) create(_bind\=None_, _checkfirst\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.create "Link to this definition") Issue CREATE DDL for this type, if applicable. _method_ [`sqlalchemy.types.SchemaType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType) drop(_bind\=None_, _checkfirst\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SchemaType.drop "Link to this definition") Issue DROP DDL for this type, if applicable. _class_ sqlalchemy.types.SmallInteger[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger "Link to this definition") A type for smaller `int` integers. Typically generates a `SMALLINT` in DDL, and otherwise acts like a normal [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") on the Python side. **Class signature** class [`sqlalchemy.types.SmallInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger "sqlalchemy.types.SmallInteger") ([`sqlalchemy.types.Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") ) _class_ sqlalchemy.types.String(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "Link to this definition") The base for all string and character types. In SQL, corresponds to VARCHAR. Can also take Python unicode objects and encode to the database’s encoding in bind params (and the reverse for result sets.) The length field is usually required when the String type is used within a CREATE TABLE statement, as VARCHAR requires a length on most databases. **Members** [RETURNS\_BYTES](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES) , [RETURNS\_CONDITIONAL](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL) , [RETURNS\_UNICODE](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNICODE) , [RETURNS\_UNKNOWN](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNKNOWN) , [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.__init__) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.bind_processor) , [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.get_dbapi_type) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.literal_processor) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.python_type) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.result_processor) **Class signature** class [`sqlalchemy.types.String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") ([`sqlalchemy.types.Concatenable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable "sqlalchemy.types.Concatenable") , [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _attribute_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) RETURNS\_BYTES _\= symbol('RETURNS\_BYTES')_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_BYTES "Link to this definition") _attribute_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) RETURNS\_CONDITIONAL _\= symbol('RETURNS\_CONDITIONAL')_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_CONDITIONAL "Link to this definition") _attribute_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) RETURNS\_UNICODE _\= symbol('RETURNS\_UNICODE')_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNICODE "Link to this definition") _attribute_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) RETURNS\_UNKNOWN _\= symbol('RETURNS\_UNKNOWN')_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.RETURNS_UNKNOWN "Link to this definition") _method_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) \_\_init\_\_(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.__init__ "Link to this definition") Create a string-holding type. Parameters: * **length**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.length) – optional, a length for the column for use in DDL and CAST expressions. May be safely omitted if no `CREATE TABLE` will be issued. Certain databases may require a `length` for use in DDL, and will raise an exception when the `CREATE TABLE` DDL is issued if a `VARCHAR` with no length is included. Whether the value is interpreted as bytes or characters is database specific. * **collation**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.collation) – Optional, a column-level collation for use in DDL and CAST expressions. Renders using the COLLATE keyword supported by SQLite, MySQL, and PostgreSQL. E.g.: \>>> from sqlalchemy import cast, select, String \>>> print(select(cast('some string', String(collation\='utf8')))) SELECT CAST(:param\_1 AS VARCHAR COLLATE utf8) AS anon\_1 * **convert\_unicode**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.convert_unicode) – When set to `True`, the [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") type will assume that input is to be passed as Python Unicode objects under Python 2, and results returned as Python Unicode objects. In the rare circumstance that the DBAPI does not support Python unicode under Python 2, SQLAlchemy will use its own encoder/decoder functionality on strings, referring to the value of the [`create_engine.encoding`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.encoding "sqlalchemy.create_engine") parameter parameter passed to [`create_engine()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine "sqlalchemy.create_engine") as the encoding. For the extremely rare case that Python Unicode is to be encoded/decoded by SQLAlchemy on a backend that _does_ natively support Python Unicode, the string value `"force"` can be passed here which will cause SQLAlchemy’s encode/decode services to be used unconditionally. Note SQLAlchemy’s unicode-conversion flags and features only apply to Python 2; in Python 3, all string objects are Unicode objects. For this reason, as well as the fact that virtually all modern DBAPIs now support Unicode natively even under Python 2, the [`String.convert_unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.convert_unicode "sqlalchemy.types.String") flag is inherently a legacy feature. Note In the vast majority of cases, the [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") or [`UnicodeText`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText "sqlalchemy.types.UnicodeText") datatypes should be used for a [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") that expects to store non-ascii data. These datatypes will ensure that the correct types are used on the database side as well as set up the correct Unicode behaviors under Python 2. See also [`create_engine.convert_unicode`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.convert_unicode "sqlalchemy.create_engine") - [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") \-wide parameter * **unicode\_error**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.unicode_error) – Optional, a method to use to handle Unicode conversion errors. Behaves like the `errors` keyword argument to the standard library’s `string.decode()` functions, requires that [`String.convert_unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.convert_unicode "sqlalchemy.types.String") is set to `"force"` _method_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.bind_processor.params.dialect) – Dialect instance in use. _method_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _method_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.literal_processor "Link to this definition") Return a conversion function for processing literal values that are to be rendered directly without using binds. This function is used when the compiler makes use of the “literal\_binds” flag, typically used in DDL generation as well as in certain scenarios where backends don’t accept bound parameters. Returns a callable which will receive a literal Python value as the sole positional argument and will return a string representation to be rendered in a SQL statement. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) _attribute_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.python_type "Link to this definition") _method_ [`sqlalchemy.types.String.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _class_ sqlalchemy.types.Text(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text "Link to this definition") A variably sized string type. In SQL, usually corresponds to CLOB or TEXT. Can also take Python unicode objects and encode to the database’s encoding in bind params (and the reverse for result sets.) In general, TEXT objects do not have a length; while some databases will accept a length argument here, it will be rejected by others. **Class signature** class [`sqlalchemy.types.Text`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text "sqlalchemy.types.Text") ([`sqlalchemy.types.String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") ) _class_ sqlalchemy.types.Time(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time "Link to this definition") A type for `datetime.time()` objects. **Members** [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.get_dbapi_type) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.python_type) **Class signature** class [`sqlalchemy.types.Time`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time "sqlalchemy.types.Time") (`sqlalchemy.types._LookupExpressionAdapter`, [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _method_ [`sqlalchemy.types.Time.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _attribute_ [`sqlalchemy.types.Time.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time.python_type "Link to this definition") _class_ sqlalchemy.types.Unicode(_length\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "Link to this definition") A variable length Unicode string type. The [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") type is a [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") subclass that assumes input and output strings that may contain non-ASCII characters, and for some backends implies an underlying column type that is explicitly supporting of non-ASCII data, such as `NVARCHAR` on Oracle and SQL Server. This will impact the output of `CREATE TABLE` statements and `CAST` functions at the dialect level, and also in some cases will indicate different behavior in the DBAPI itself in how it handles bound parameters. The character encoding used by the [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") type that is used to transmit and receive data to the database is usually determined by the DBAPI itself. All modern DBAPIs accommodate non-ASCII strings but may have different methods of managing database encodings; if necessary, this encoding should be configured as detailed in the notes for the target DBAPI in the [Dialects](https://docs.sqlalchemy.org/en/14/dialects/index.html) section. In modern SQLAlchemy, use of the [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") datatype does not typically imply any encoding/decoding behavior within SQLAlchemy itself. Historically, when DBAPIs did not support Python `unicode` objects under Python 2, SQLAlchemy handled unicode encoding/decoding services itself which would be controlled by the flag [`String.convert_unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.convert_unicode "sqlalchemy.types.String") ; this flag is deprecated as it is no longer needed for Python 3. When using Python 2, data that is passed to columns that use the [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") datatype must be of type `unicode`, and not `str` which in Python 2 is equivalent to `bytes`. In Python 3, all data passed to columns that use the [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") datatype should be of type `str`. See the flag [`String.convert_unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.convert_unicode "sqlalchemy.types.String") for more discussion of unicode encode/decode behavior under Python 2. Warning Some database backends, particularly SQL Server with pyodbc, are known to have undesirable behaviors regarding data that is noted as being of `NVARCHAR` type as opposed to `VARCHAR`, including datatype mismatch errors and non-use of indexes. See the section on [`DialectEvents.do_setinputsizes()`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_setinputsizes "sqlalchemy.events.DialectEvents.do_setinputsizes") for background on working around unicode character issues for backends like SQL Server with pyodbc as well as cx\_Oracle. See also [`UnicodeText`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText "sqlalchemy.types.UnicodeText") - unlengthed textual counterpart to [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") . [`String.convert_unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String.params.convert_unicode "sqlalchemy.types.String") [`DialectEvents.do_setinputsizes()`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents.do_setinputsizes "sqlalchemy.events.DialectEvents.do_setinputsizes") **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode.__init__) **Class signature** class [`sqlalchemy.types.Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") ([`sqlalchemy.types.String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") ) _method_ [`sqlalchemy.types.Unicode.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode) \_\_init\_\_(_length\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode.__init__ "Link to this definition") Create a [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") object. Parameters are the same as that of [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") , with the exception that `convert_unicode` defaults to `True`. _class_ sqlalchemy.types.UnicodeText(_length\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText "Link to this definition") An unbounded-length Unicode string type. See [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") for details on the unicode behavior of this object. Like [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") , usage the [`UnicodeText`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText "sqlalchemy.types.UnicodeText") type implies a unicode-capable type being used on the backend, such as `NCLOB`, `NTEXT`. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText.__init__) **Class signature** class [`sqlalchemy.types.UnicodeText`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText "sqlalchemy.types.UnicodeText") ([`sqlalchemy.types.Text`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text "sqlalchemy.types.Text") ) _method_ [`sqlalchemy.types.UnicodeText.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText) \_\_init\_\_(_length\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.UnicodeText.__init__ "Link to this definition") Create a Unicode-converting Text type. Parameters are the same as that of [`TextClause`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.TextClause "sqlalchemy.sql.expression.TextClause") , with the exception that `convert_unicode` defaults to `True`. SQL Standard and Multiple Vendor “UPPERCASE” Types[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sql-standard-and-multiple-vendor-uppercase-types "Link to this heading") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This category of types refers to types that are either part of the SQL standard, or are potentially found within a subset of database backends. Unlike the “generic” types, the SQL standard/multi-vendor types have **no** guarantee of working on all backends, and will only work on those backends that explicitly support them by name. That is, the type will always emit its exact name in DDL with `CREATE TABLE` is issued. | Object Name | Description | | --- | --- | | [ARRAY](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) | Represent a SQL Array type. | | [BIGINT](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BIGINT) | The SQL BIGINT type. | | [BINARY](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY) | The SQL BINARY type. | | [BLOB](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB) | The SQL BLOB type. | | [BOOLEAN](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BOOLEAN) | The SQL BOOLEAN type. | | [CHAR](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CHAR) | The SQL CHAR type. | | [CLOB](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CLOB) | The CLOB type. | | [DATE](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATE) | The SQL DATE type. | | [DATETIME](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATETIME) | The SQL DATETIME type. | | [DECIMAL](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DECIMAL) | The SQL DECIMAL type. | | [FLOAT](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.FLOAT) | The SQL FLOAT type. | | [INT](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INT) | alias of [`INTEGER`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER "sqlalchemy.sql.sqltypes.INTEGER") | | [INTEGER](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER) | The SQL INT or INTEGER type. | | [JSON](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) | Represent a SQL JSON type. | | [NCHAR](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NCHAR) | The SQL NCHAR type. | | [NUMERIC](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC) | The SQL NUMERIC type. | | [NVARCHAR](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NVARCHAR) | The SQL NVARCHAR type. | | [REAL](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.REAL) | The SQL REAL type. | | [SMALLINT](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SMALLINT) | The SQL SMALLINT type. | | [TEXT](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TEXT) | The SQL TEXT type. | | [TIME](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIME) | The SQL TIME type. | | [TIMESTAMP](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP) | The SQL TIMESTAMP type. | | [VARBINARY](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARBINARY) | The SQL VARBINARY type. | | [VARCHAR](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR) | The SQL VARCHAR type. | _class_ sqlalchemy.types.ARRAY(_item\_type_, _as\_tuple\=False_, _dimensions\=None_, _zero\_indexes\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "Link to this definition") Represent a SQL Array type. Note This type serves as the basis for all ARRAY operations. However, currently **only the PostgreSQL backend has support for SQL arrays in SQLAlchemy**. It is recommended to use the PostgreSQL-specific [`sqlalchemy.dialects.postgresql.ARRAY`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY "sqlalchemy.dialects.postgresql.ARRAY") type directly when using ARRAY types with PostgreSQL, as it provides additional operators specific to that backend. [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") is part of the Core in support of various SQL standard functions such as [`array_agg`](https://docs.sqlalchemy.org/en/14/core/functions.html#sqlalchemy.sql.functions.array_agg "sqlalchemy.sql.functions.array_agg") which explicitly involve arrays; however, with the exception of the PostgreSQL backend and possibly some third-party dialects, no other SQLAlchemy built-in dialect has support for this type. An [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") type is constructed given the “type” of element: mytable \= Table("mytable", metadata, Column("data", ARRAY(Integer)) ) The above type represents an N-dimensional array, meaning a supporting backend such as PostgreSQL will interpret values with any number of dimensions automatically. To produce an INSERT construct that passes in a 1-dimensional array of integers: connection.execute( mytable.insert(), {"data": \[1,2,3\]} ) The [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") type can be constructed given a fixed number of dimensions: mytable \= Table("mytable", metadata, Column("data", ARRAY(Integer, dimensions\=2)) ) Sending a number of dimensions is optional, but recommended if the datatype is to represent arrays of more than one dimension. This number is used: * When emitting the type declaration itself to the database, e.g. `INTEGER[][]` * When translating Python values to database values, and vice versa, e.g. an ARRAY of [`Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") objects uses this number to efficiently access the string values inside of array structures without resorting to per-row type inspection * When used with the Python `getitem` accessor, the number of dimensions serves to define the kind of type that the `[]` operator should return, e.g. for an ARRAY of INTEGER with two dimensions: \>>> expr \= table.c.column\[5\] \# returns ARRAY(Integer, dimensions=1) \>>> expr \= expr\[6\] \# returns Integer For 1-dimensional arrays, an [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") instance with no dimension parameter will generally assume single-dimensional behaviors. SQL expressions of type [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") have support for “index” and “slice” behavior. The Python `[]` operator works normally here, given integer indexes or slices. Arrays default to 1-based indexing. The operator produces binary expression constructs which will produce the appropriate SQL, both for SELECT statements: select(mytable.c.data\[5\], mytable.c.data\[2:7\]) as well as UPDATE statements when the [`Update.values()`](https://docs.sqlalchemy.org/en/14/core/dml.html#sqlalchemy.sql.expression.Update.values "sqlalchemy.sql.expression.Update.values") method is used: mytable.update().values({ mytable.c.data\[5\]: 7, mytable.c.data\[2:7\]: \[1, 2, 3\] }) The [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") type also provides for the operators [`Comparator.any()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any "sqlalchemy.types.ARRAY.Comparator.any") and [`Comparator.all()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all "sqlalchemy.types.ARRAY.Comparator.all") . The PostgreSQL-specific version of [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") also provides additional operators. **Detecting Changes in ARRAY columns when using the ORM** The [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") type, when used with the SQLAlchemy ORM, does not detect in-place mutations to the array. In order to detect these, the [`sqlalchemy.ext.mutable`](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#module-sqlalchemy.ext.mutable "sqlalchemy.ext.mutable") extension must be used, using the [`MutableList`](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableList "sqlalchemy.ext.mutable.MutableList") class: from sqlalchemy import ARRAY from sqlalchemy.ext.mutable import MutableList class SomeOrmClass(Base): \# ... data \= Column(MutableList.as\_mutable(ARRAY(Integer))) This extension will allow “in-place” changes such to the array such as `.append()` to produce events which will be detected by the unit of work. Note that changes to elements **inside** the array, including subarrays that are mutated in place, are **not** detected. Alternatively, assigning a new array value to an ORM element that replaces the old one will always trigger a change event. Added in version 1.1.0. See also [`sqlalchemy.dialects.postgresql.ARRAY`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY "sqlalchemy.dialects.postgresql.ARRAY") **Members** [all()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all) , [any()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any) , [contains()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.contains) , [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.__init__) , [comparator\_factory](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.comparator_factory) , [compare\_values()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.compare_values) , [hashable](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.hashable) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.python_type) , [zero\_indexes](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.zero_indexes) **Class signature** class [`sqlalchemy.types.ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") (`sqlalchemy.sql.expression.SchemaEventTarget`, [`sqlalchemy.types.Indexable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") , [`sqlalchemy.types.Concatenable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable "sqlalchemy.types.Concatenable") , [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _class_ Comparator(_expr_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator "Link to this definition") Define comparison operations for [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") . More operators are available on the dialect-specific form of this type. See [`Comparator`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY.Comparator "sqlalchemy.dialects.postgresql.ARRAY.Comparator") . **Class signature** class [`sqlalchemy.types.ARRAY.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator "sqlalchemy.types.ARRAY.Comparator") (`sqlalchemy.types.Comparator`, `sqlalchemy.types.Comparator`) _method_ [`sqlalchemy.types.ARRAY.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator) all(_other_, _operator\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all "Link to this definition") Return `other operator ALL (array)` clause. Note This method is an [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") - specific construct that is now superseded by the [`any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.any_ "sqlalchemy.sql.expression.any_") function, which features a different calling style. The [`any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.any_ "sqlalchemy.sql.expression.any_") function is also mirrored at the method level via the [`ColumnOperators.any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.any_ "sqlalchemy.sql.expression.ColumnOperators.any_") method. Usage of array-specific [`Comparator.all()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all "sqlalchemy.types.ARRAY.Comparator.all") is as follows: from sqlalchemy.sql import operators conn.execute( select(table.c.data).where( table.c.data.all(7, operator\=operators.lt) ) ) Parameters: * **other**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all.params.other) – expression to be compared * **operator**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all.params.operator) – an operator object from the `sqlalchemy.sql.operators` package, defaults to `eq()`. See also [`all_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.all_ "sqlalchemy.sql.expression.all_") [`Comparator.any()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any "sqlalchemy.types.ARRAY.Comparator.any") _method_ [`sqlalchemy.types.ARRAY.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator) any(_other_, _operator\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any "Link to this definition") Return `other operator ANY (array)` clause. Note This method is an [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") - specific construct that is now superseded by the [`any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.any_ "sqlalchemy.sql.expression.any_") function, which features a different calling style. The [`any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.any_ "sqlalchemy.sql.expression.any_") function is also mirrored at the method level via the [`ColumnOperators.any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators.any_ "sqlalchemy.sql.expression.ColumnOperators.any_") method. Usage of array-specific [`Comparator.any()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any "sqlalchemy.types.ARRAY.Comparator.any") is as follows: from sqlalchemy.sql import operators conn.execute( select(table.c.data).where( table.c.data.any(7, operator\=operators.lt) ) ) Parameters: * **other**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any.params.other) – expression to be compared * **operator**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.any.params.operator) – an operator object from the `sqlalchemy.sql.operators` package, defaults to `eq()`. See also [`any_()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.any_ "sqlalchemy.sql.expression.any_") [`Comparator.all()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.all "sqlalchemy.types.ARRAY.Comparator.all") _method_ [`sqlalchemy.types.ARRAY.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator) contains(_\*arg_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator.contains "Link to this definition") `ARRAY.contains()` not implemented for the base ARRAY type. Use the dialect-specific ARRAY type. See also [`ARRAY`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.ARRAY "sqlalchemy.dialects.postgresql.ARRAY") - PostgreSQL specific version. _method_ [`sqlalchemy.types.ARRAY.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) \_\_init\_\_(_item\_type_, _as\_tuple\=False_, _dimensions\=None_, _zero\_indexes\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.__init__ "Link to this definition") Construct an [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") . E.g.: Column('myarray', ARRAY(Integer)) Arguments are: Parameters: * **item\_type**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.item_type) – The data type of items of this array. Note that dimensionality is irrelevant here, so multi-dimensional arrays like `INTEGER[][]`, are constructed as `ARRAY(Integer)`, not as `ARRAY(ARRAY(Integer))` or such. * **as\_tuple=False**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.as_tuple) – Specify whether return results should be converted to tuples from lists. This parameter is not generally needed as a Python list corresponds well to a SQL array. * **dimensions**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.dimensions) – if non-None, the ARRAY will assume a fixed number of dimensions. This impacts how the array is declared on the database, how it goes about interpreting Python and result values, as well as how expression behavior in conjunction with the “getitem” operator works. See the description at [`ARRAY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY "sqlalchemy.types.ARRAY") for additional detail. * **zero\_indexes=False**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.params.zero_indexes) – when True, index values will be converted between Python zero-based and SQL one-based indexes, e.g. a value of one will be added to all index values before passing to the database. _attribute_ [`sqlalchemy.types.ARRAY.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) comparator\_factory[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.comparator_factory "Link to this definition") alias of [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.Comparator "sqlalchemy.sql.sqltypes.ARRAY.Comparator") _method_ [`sqlalchemy.types.ARRAY.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) compare\_values(_x_, _y_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.compare_values "Link to this definition") Compare two values for equality. _attribute_ [`sqlalchemy.types.ARRAY.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) hashable[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.hashable "Link to this definition") Flag, if False, means values from this type aren’t hashable. Used by the ORM when uniquing result lists. _attribute_ [`sqlalchemy.types.ARRAY.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.python_type "Link to this definition") _attribute_ [`sqlalchemy.types.ARRAY.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY) zero\_indexes _\= False_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.ARRAY.zero_indexes "Link to this definition") If True, Python zero-based indexes should be interpreted as one-based on the SQL expression side. _class_ sqlalchemy.types.BIGINT[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BIGINT "Link to this definition") The SQL BIGINT type. **Class signature** class [`sqlalchemy.types.BIGINT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BIGINT "sqlalchemy.types.BIGINT") ([`sqlalchemy.types.BigInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BigInteger "sqlalchemy.types.BigInteger") ) _class_ sqlalchemy.types.BINARY(_length\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY "Link to this definition") The SQL BINARY type. **Class signature** class [`sqlalchemy.types.BINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BINARY "sqlalchemy.types.BINARY") (`sqlalchemy.types._Binary`) _class_ sqlalchemy.types.BLOB(_length\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB "Link to this definition") The SQL BLOB type. **Class signature** class [`sqlalchemy.types.BLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BLOB "sqlalchemy.types.BLOB") ([`sqlalchemy.types.LargeBinary`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.LargeBinary "sqlalchemy.types.LargeBinary") ) _class_ sqlalchemy.types.BOOLEAN(_create\_constraint\=False_, _name\=None_, _\_create\_events\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BOOLEAN "Link to this definition") The SQL BOOLEAN type. **Class signature** class [`sqlalchemy.types.BOOLEAN`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.BOOLEAN "sqlalchemy.types.BOOLEAN") ([`sqlalchemy.types.Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") ) _class_ sqlalchemy.types.CHAR(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CHAR "Link to this definition") The SQL CHAR type. **Class signature** class [`sqlalchemy.types.CHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CHAR "sqlalchemy.types.CHAR") ([`sqlalchemy.types.String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") ) _class_ sqlalchemy.types.CLOB(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CLOB "Link to this definition") The CLOB type. This type is found in Oracle and Informix. **Class signature** class [`sqlalchemy.types.CLOB`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.CLOB "sqlalchemy.types.CLOB") ([`sqlalchemy.types.Text`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text "sqlalchemy.types.Text") ) _class_ sqlalchemy.types.DATE[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATE "Link to this definition") The SQL DATE type. **Class signature** class [`sqlalchemy.types.DATE`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATE "sqlalchemy.types.DATE") ([`sqlalchemy.types.Date`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Date "sqlalchemy.types.Date") ) _class_ sqlalchemy.types.DATETIME(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATETIME "Link to this definition") The SQL DATETIME type. **Class signature** class [`sqlalchemy.types.DATETIME`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DATETIME "sqlalchemy.types.DATETIME") ([`sqlalchemy.types.DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.types.DateTime") ) _class_ sqlalchemy.types.DECIMAL(_precision\=None_, _scale\=None_, _decimal\_return\_scale\=None_, _asdecimal\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DECIMAL "Link to this definition") The SQL DECIMAL type. **Class signature** class [`sqlalchemy.types.DECIMAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DECIMAL "sqlalchemy.types.DECIMAL") ([`sqlalchemy.types.Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") ) _class_ sqlalchemy.types.FLOAT(_precision\=None_, _asdecimal\=False_, _decimal\_return\_scale\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.FLOAT "Link to this definition") The SQL FLOAT type. **Class signature** class [`sqlalchemy.types.FLOAT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.FLOAT "sqlalchemy.types.FLOAT") ([`sqlalchemy.types.Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float "sqlalchemy.types.Float") ) _attribute_ [`sqlalchemy.types..`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.) sqlalchemy.types.INT[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INT "Link to this definition") alias of [`INTEGER`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER "sqlalchemy.sql.sqltypes.INTEGER") _class_ sqlalchemy.types.JSON(_none\_as\_null\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "Link to this definition") Represent a SQL JSON type. Note [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") is provided as a facade for vendor-specific JSON types. Since it supports JSON SQL operations, it only works on backends that have an actual JSON type, currently: * PostgreSQL - see [`sqlalchemy.dialects.postgresql.JSON`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON "sqlalchemy.dialects.postgresql.JSON") and [`sqlalchemy.dialects.postgresql.JSONB`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB "sqlalchemy.dialects.postgresql.JSONB") for backend-specific notes * MySQL - see [`sqlalchemy.dialects.mysql.JSON`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.JSON "sqlalchemy.dialects.mysql.JSON") for backend-specific notes * SQLite as of version 3.9 - see [`sqlalchemy.dialects.sqlite.JSON`](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.JSON "sqlalchemy.dialects.sqlite.JSON") for backend-specific notes * Microsoft SQL Server 2016 and later - see [`sqlalchemy.dialects.mssql.JSON`](https://docs.sqlalchemy.org/en/14/dialects/mssql.html#sqlalchemy.dialects.mssql.JSON "sqlalchemy.dialects.mssql.JSON") for backend-specific notes [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") is part of the Core in support of the growing popularity of native JSON datatypes. The [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") type stores arbitrary JSON format data, e.g.: data\_table \= Table('data\_table', metadata, Column('id', Integer, primary\_key\=True), Column('data', JSON) ) with engine.connect() as conn: conn.execute( data\_table.insert(), {"data": {"key1": "value1", "key2": "value2"}} ) **JSON-Specific Expression Operators** The [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") datatype provides these additional SQL operations: * Keyed index operations: data\_table.c.data\['some key'\] * Integer index operations: data\_table.c.data\[3\] * Path index operations: data\_table.c.data\[('key\_1', 'key\_2', 5, ..., 'key\_n')\] * Data casters for specific JSON element types, subsequent to an index or path operation being invoked: data\_table.c.data\["some key"\].as\_integer() Added in version 1.3.11. Additional operations may be available from the dialect-specific versions of [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") , such as [`sqlalchemy.dialects.postgresql.JSON`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON "sqlalchemy.dialects.postgresql.JSON") and [`sqlalchemy.dialects.postgresql.JSONB`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB "sqlalchemy.dialects.postgresql.JSONB") which both offer additional PostgreSQL-specific operations. **Casting JSON Elements to Other Types** Index operations, i.e. those invoked by calling upon the expression using the Python bracket operator as in `some_column['some key']`, return an expression object whose type defaults to [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") by default, so that further JSON-oriented instructions may be called upon the result type. However, it is likely more common that an index operation is expected to return a specific scalar element, such as a string or integer. In order to provide access to these elements in a backend-agnostic way, a series of data casters are provided: * [`Comparator.as_string()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string "sqlalchemy.types.JSON.Comparator.as_string") - return the element as a string * [`Comparator.as_boolean()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean "sqlalchemy.types.JSON.Comparator.as_boolean") - return the element as a boolean * [`Comparator.as_float()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float "sqlalchemy.types.JSON.Comparator.as_float") - return the element as a float * [`Comparator.as_integer()`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer "sqlalchemy.types.JSON.Comparator.as_integer") - return the element as an integer These data casters are implemented by supporting dialects in order to assure that comparisons to the above types will work as expected, such as: \# integer comparison data\_table.c.data\["some\_integer\_key"\].as\_integer() \== 5 \# boolean comparison data\_table.c.data\["some\_boolean"\].as\_boolean() \== True Added in version 1.3.11: Added type-specific casters for the basic JSON data element types. Note The data caster functions are new in version 1.3.11, and supersede the previous documented approaches of using CAST; for reference, this looked like: from sqlalchemy import cast, type\_coerce from sqlalchemy import String, JSON cast( data\_table.c.data\['some\_key'\], String ) \== type\_coerce(55, JSON) The above case now works directly as: data\_table.c.data\['some\_key'\].as\_integer() \== 5 For details on the previous comparison approach within the 1.3.x series, see the documentation for SQLAlchemy 1.2 or the included HTML files in the doc/ directory of the version’s distribution. **Detecting Changes in JSON columns when using the ORM** The [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") type, when used with the SQLAlchemy ORM, does not detect in-place mutations to the structure. In order to detect these, the [`sqlalchemy.ext.mutable`](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#module-sqlalchemy.ext.mutable "sqlalchemy.ext.mutable") extension must be used, most typically using the [`MutableDict`](https://docs.sqlalchemy.org/en/14/orm/extensions/mutable.html#sqlalchemy.ext.mutable.MutableDict "sqlalchemy.ext.mutable.MutableDict") class. This extension will allow “in-place” changes to the datastructure to produce events which will be detected by the unit of work. See the example at [`HSTORE`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.HSTORE "sqlalchemy.dialects.postgresql.HSTORE") for a simple example involving a dictionary. Alternatively, assigning a JSON structure to an ORM element that replaces the old one will always trigger a change event. **Support for JSON null vs. SQL NULL** When working with NULL values, the [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") type recommends the use of two specific constants in order to differentiate between a column that evaluates to SQL NULL, e.g. no value, vs. the JSON-encoded string of `"null"`. To insert or select against a value that is SQL NULL, use the constant [`null()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null") . This symbol may be passed as a parameter value specifically when using the [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") datatype, which contains special logic that interprets this symbol to mean that the column value should be SQL NULL as opposed to JSON `"null"`: from sqlalchemy import null conn.execute(table.insert(), {"json\_value": null()}) To insert or select against a value that is JSON `"null"`, use the constant [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") : conn.execute(table.insert(), {"json\_value": JSON.NULL}) The [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") type supports a flag [`JSON.none_as_null`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null "sqlalchemy.types.JSON") which when set to True will result in the Python constant `None` evaluating to the value of SQL NULL, and when set to False results in the Python constant `None` evaluating to the value of JSON `"null"`. The Python value `None` may be used in conjunction with either [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") and [`null()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null") in order to indicate NULL values, but care must be taken as to the value of the [`JSON.none_as_null`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null "sqlalchemy.types.JSON") in these cases. **Customizing the JSON Serializer** The JSON serializer and deserializer used by [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") defaults to Python’s `json.dumps` and `json.loads` functions; in the case of the psycopg2 dialect, psycopg2 may be using its own custom loader function. In order to affect the serializer / deserializer, they are currently configurable at the [`create_engine()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine "sqlalchemy.create_engine") level via the [`create_engine.json_serializer`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.json_serializer "sqlalchemy.create_engine") and [`create_engine.json_deserializer`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine.params.json_deserializer "sqlalchemy.create_engine") parameters. For example, to turn off `ensure_ascii`: engine \= create\_engine( "sqlite://", json\_serializer\=lambda obj: json.dumps(obj, ensure\_ascii\=False)) Changed in version 1.3.7: SQLite dialect’s `json_serializer` and `json_deserializer` parameters renamed from `_json_serializer` and `_json_deserializer`. See also [`sqlalchemy.dialects.postgresql.JSON`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON "sqlalchemy.dialects.postgresql.JSON") [`sqlalchemy.dialects.postgresql.JSONB`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSONB "sqlalchemy.dialects.postgresql.JSONB") [`sqlalchemy.dialects.mysql.JSON`](https://docs.sqlalchemy.org/en/14/dialects/mysql.html#sqlalchemy.dialects.mysql.JSON "sqlalchemy.dialects.mysql.JSON") [`sqlalchemy.dialects.sqlite.JSON`](https://docs.sqlalchemy.org/en/14/dialects/sqlite.html#sqlalchemy.dialects.sqlite.JSON "sqlalchemy.dialects.sqlite.JSON") Added in version 1.1. **Members** [as\_boolean()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean) , [as\_float()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float) , [as\_integer()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer) , [as\_json()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json) , [as\_numeric()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric) , [as\_string()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.bind_processor) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.literal_processor) , [NULL](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL) , [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.__init__) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.bind_processor) , [comparator\_factory](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.comparator_factory) , [hashable](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.hashable) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.python_type) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.result_processor) , [should\_evaluate\_none](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none) **Class signature** class [`sqlalchemy.types.JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") ([`sqlalchemy.types.Indexable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable "sqlalchemy.types.Indexable") , [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _class_ Comparator(_expr_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator "Link to this definition") Define comparison operations for [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") . **Class signature** class [`sqlalchemy.types.JSON.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator "sqlalchemy.types.JSON.Comparator") (`sqlalchemy.types.Comparator`, `sqlalchemy.types.Comparator`) _method_ [`sqlalchemy.types.JSON.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) as\_boolean()[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_boolean "Link to this definition") Cast an indexed value as boolean. e.g.: stmt \= select( mytable.c.json\_column\['some\_data'\].as\_boolean() ).where( mytable.c.json\_column\['some\_data'\].as\_boolean() \== True ) Added in version 1.3.11. _method_ [`sqlalchemy.types.JSON.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) as\_float()[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_float "Link to this definition") Cast an indexed value as float. e.g.: stmt \= select( mytable.c.json\_column\['some\_data'\].as\_float() ).where( mytable.c.json\_column\['some\_data'\].as\_float() \== 29.75 ) Added in version 1.3.11. _method_ [`sqlalchemy.types.JSON.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) as\_integer()[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_integer "Link to this definition") Cast an indexed value as integer. e.g.: stmt \= select( mytable.c.json\_column\['some\_data'\].as\_integer() ).where( mytable.c.json\_column\['some\_data'\].as\_integer() \== 5 ) Added in version 1.3.11. _method_ [`sqlalchemy.types.JSON.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) as\_json()[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_json "Link to this definition") Cast an indexed value as JSON. e.g.: stmt \= select(mytable.c.json\_column\['some\_data'\].as\_json()) This is typically the default behavior of indexed elements in any case. Note that comparison of full JSON structures may not be supported by all backends. Added in version 1.3.11. _method_ [`sqlalchemy.types.JSON.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) as\_numeric(_precision_, _scale_, _asdecimal\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_numeric "Link to this definition") Cast an indexed value as numeric/decimal. e.g.: stmt \= select( mytable.c.json\_column\['some\_data'\].as\_numeric(10, 6) ).where( mytable.c. json\_column\['some\_data'\].as\_numeric(10, 6) \== 29.75 ) Added in version 1.4.0b2. _method_ [`sqlalchemy.types.JSON.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator) as\_string()[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator.as_string "Link to this definition") Cast an indexed value as string. e.g.: stmt \= select( mytable.c.json\_column\['some\_data'\].as\_string() ).where( mytable.c.json\_column\['some\_data'\].as\_string() \== 'some string' ) Added in version 1.3.11. _class_ JSONElementType[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType "Link to this definition") Common function for index / path elements in a JSON expression. **Class signature** class [`sqlalchemy.types.JSON.JSONElementType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType "sqlalchemy.types.JSON.JSONElementType") ([`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _method_ [`sqlalchemy.types.JSON.JSONElementType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.bind_processor.params.dialect) – Dialect instance in use. _method_ [`sqlalchemy.types.JSON.JSONElementType.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONElementType.literal_processor "Link to this definition") Return a conversion function for processing literal values that are to be rendered directly without using binds. This function is used when the compiler makes use of the “literal\_binds” flag, typically used in DDL generation as well as in certain scenarios where backends don’t accept bound parameters. Returns a callable which will receive a literal Python value as the sole positional argument and will return a string representation to be rendered in a SQL statement. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) _class_ JSONIndexType[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType "Link to this definition") Placeholder for the datatype of a JSON index value. This allows execution-time processing of JSON index values for special syntaxes. **Class signature** class [`sqlalchemy.types.JSON.JSONIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIndexType "sqlalchemy.types.JSON.JSONIndexType") (`sqlalchemy.types.JSONElementType`) _class_ JSONIntIndexType[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType "Link to this definition") Placeholder for the datatype of a JSON index value. This allows execution-time processing of JSON index values for special syntaxes. **Class signature** class [`sqlalchemy.types.JSON.JSONIntIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONIntIndexType "sqlalchemy.types.JSON.JSONIntIndexType") (`sqlalchemy.types.JSONIndexType`) _class_ JSONPathType[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType "Link to this definition") Placeholder type for JSON path operations. This allows execution-time processing of a path-based index value into a specific SQL syntax. **Class signature** class [`sqlalchemy.types.JSON.JSONPathType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONPathType "sqlalchemy.types.JSON.JSONPathType") (`sqlalchemy.types.JSONElementType`) _class_ JSONStrIndexType[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType "Link to this definition") Placeholder for the datatype of a JSON index value. This allows execution-time processing of JSON index values for special syntaxes. **Class signature** class [`sqlalchemy.types.JSON.JSONStrIndexType`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.JSONStrIndexType "sqlalchemy.types.JSON.JSONStrIndexType") (`sqlalchemy.types.JSONIndexType`) _attribute_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) NULL _\= symbol('JSON\_NULL')_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "Link to this definition") Describe the json value of NULL. This value is used to force the JSON value of `"null"` to be used as the value. A value of Python `None` will be recognized either as SQL NULL or JSON `"null"`, based on the setting of the [`JSON.none_as_null`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null "sqlalchemy.types.JSON") flag; the [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") constant can be used to always resolve to JSON `"null"` regardless of this setting. This is in contrast to the [`null()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null") construct, which always resolves to SQL NULL. E.g.: from sqlalchemy import null from sqlalchemy.dialects.postgresql import JSON \# will \*always\* insert SQL NULL obj1 \= MyObject(json\_value\=null()) \# will \*always\* insert JSON string "null" obj2 \= MyObject(json\_value\=JSON.NULL) session.add\_all(\[obj1, obj2\]) session.commit() In order to set JSON NULL as a default value for a column, the most transparent method is to use [`text()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.text "sqlalchemy.sql.expression.text") : Table( 'my\_table', metadata, Column('json\_data', JSON, default\=text("'null'")) ) While it is possible to use [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") in this context, the [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") value will be returned as the value of the column, which in the context of the ORM or other repurposing of the default value, may not be desirable. Using a SQL expression means the value will be re-fetched from the database within the context of retrieving generated defaults. _method_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) \_\_init\_\_(_none\_as\_null\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.__init__ "Link to this definition") Construct a [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") type. Parameters: **none\_as\_null=False**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null) – if True, persist the value `None` as a SQL NULL value, not the JSON encoding of `null`. Note that when this flag is False, the [`null()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null") construct can still be used to persist a NULL value, which may be passed directly as a parameter value that is specially interpreted by the [`JSON`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON "sqlalchemy.types.JSON") type as SQL NULL: from sqlalchemy import null conn.execute(table.insert(), {"data": null()}) Note [`JSON.none_as_null`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null "sqlalchemy.types.JSON") does **not** apply to the values passed to [`Column.default`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.default "sqlalchemy.schema.Column") and [`Column.server_default`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.server_default "sqlalchemy.schema.Column") ; a value of `None` passed for these parameters means “no default present”. Additionally, when used in SQL comparison expressions, the Python value `None` continues to refer to SQL null, and not JSON NULL. The [`JSON.none_as_null`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.params.none_as_null "sqlalchemy.types.JSON") flag refers explicitly to the **persistence** of the value within an INSERT or UPDATE statement. The [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") value should be used for SQL expressions that wish to compare to JSON null. See also [`JSON.NULL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.NULL "sqlalchemy.types.JSON.NULL") _method_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.bind_processor.params.dialect) – Dialect instance in use. _attribute_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) comparator\_factory[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.comparator_factory "Link to this definition") alias of [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.Comparator "sqlalchemy.sql.sqltypes.JSON.Comparator") _attribute_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) hashable _\= False_[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.hashable "Link to this definition") Flag, if False, means values from this type aren’t hashable. Used by the ORM when uniquing result lists. _attribute_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.python_type "Link to this definition") _method_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _attribute_ [`sqlalchemy.types.JSON.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON) should\_evaluate\_none[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.JSON.should_evaluate_none "Link to this definition") If True, the Python constant `None` is considered to be handled explicitly by this type. The ORM uses this flag to indicate that a positive value of `None` is passed to the column in an INSERT statement, rather than omitting the column from the INSERT statement which has the effect of firing off column-level defaults. It also allows types which have special behavior for Python None, such as a JSON type, to indicate that they’d like to handle the None value explicitly. To set this flag on an existing type, use the [`TypeEngine.evaluates_none()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none "sqlalchemy.types.TypeEngine.evaluates_none") method. See also [`TypeEngine.evaluates_none()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none "sqlalchemy.types.TypeEngine.evaluates_none") Added in version 1.1. _class_ sqlalchemy.types.INTEGER[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER "Link to this definition") The SQL INT or INTEGER type. **Class signature** class [`sqlalchemy.types.INTEGER`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.INTEGER "sqlalchemy.types.INTEGER") ([`sqlalchemy.types.Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") ) _class_ sqlalchemy.types.NCHAR(_length\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NCHAR "Link to this definition") The SQL NCHAR type. **Class signature** class [`sqlalchemy.types.NCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NCHAR "sqlalchemy.types.NCHAR") ([`sqlalchemy.types.Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") ) _class_ sqlalchemy.types.NVARCHAR(_length\=None_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NVARCHAR "Link to this definition") The SQL NVARCHAR type. **Class signature** class [`sqlalchemy.types.NVARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NVARCHAR "sqlalchemy.types.NVARCHAR") ([`sqlalchemy.types.Unicode`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Unicode "sqlalchemy.types.Unicode") ) _class_ sqlalchemy.types.NUMERIC(_precision\=None_, _scale\=None_, _decimal\_return\_scale\=None_, _asdecimal\=True_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC "Link to this definition") The SQL NUMERIC type. **Class signature** class [`sqlalchemy.types.NUMERIC`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.NUMERIC "sqlalchemy.types.NUMERIC") ([`sqlalchemy.types.Numeric`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Numeric "sqlalchemy.types.Numeric") ) _class_ sqlalchemy.types.REAL(_precision\=None_, _asdecimal\=False_, _decimal\_return\_scale\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.REAL "Link to this definition") The SQL REAL type. **Class signature** class [`sqlalchemy.types.REAL`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.REAL "sqlalchemy.types.REAL") ([`sqlalchemy.types.Float`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Float "sqlalchemy.types.Float") ) _class_ sqlalchemy.types.SMALLINT[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SMALLINT "Link to this definition") The SQL SMALLINT type. **Class signature** class [`sqlalchemy.types.SMALLINT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SMALLINT "sqlalchemy.types.SMALLINT") ([`sqlalchemy.types.SmallInteger`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.SmallInteger "sqlalchemy.types.SmallInteger") ) _class_ sqlalchemy.types.TEXT(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TEXT "Link to this definition") The SQL TEXT type. **Class signature** class [`sqlalchemy.types.TEXT`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TEXT "sqlalchemy.types.TEXT") ([`sqlalchemy.types.Text`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Text "sqlalchemy.types.Text") ) _class_ sqlalchemy.types.TIME(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIME "Link to this definition") The SQL TIME type. **Class signature** class [`sqlalchemy.types.TIME`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIME "sqlalchemy.types.TIME") ([`sqlalchemy.types.Time`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Time "sqlalchemy.types.Time") ) _class_ sqlalchemy.types.TIMESTAMP(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "Link to this definition") The SQL TIMESTAMP type. [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "sqlalchemy.types.TIMESTAMP") datatypes have support for timezone storage on some backends, such as PostgreSQL and Oracle. Use the `TIMESTAMP.timezone` argument in order to enable “TIMESTAMP WITH TIMEZONE” for these backends. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.__init__) , [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.get_dbapi_type) **Class signature** class [`sqlalchemy.types.TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "sqlalchemy.types.TIMESTAMP") ([`sqlalchemy.types.DateTime`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.DateTime "sqlalchemy.types.DateTime") ) _method_ [`sqlalchemy.types.TIMESTAMP.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP) \_\_init\_\_(_timezone\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.__init__ "Link to this definition") Construct a new [`TIMESTAMP`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP "sqlalchemy.types.TIMESTAMP") . Parameters: **timezone**[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.params.timezone) – boolean. Indicates that the TIMESTAMP type should enable timezone support, if available on the target database. On a per-dialect basis is similar to “TIMESTAMP WITH TIMEZONE”. If the target database does not support timezones, this flag is ignored. _method_ [`sqlalchemy.types.TIMESTAMP.`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.TIMESTAMP.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _class_ sqlalchemy.types.VARBINARY(_length\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARBINARY "Link to this definition") The SQL VARBINARY type. **Class signature** class [`sqlalchemy.types.VARBINARY`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARBINARY "sqlalchemy.types.VARBINARY") (`sqlalchemy.types._Binary`) _class_ sqlalchemy.types.VARCHAR(_length\=None_, _collation\=None_, _convert\_unicode\=False_, _unicode\_error\=None_, _\_warn\_on\_bytestring\=False_, _\_expect\_unicode\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR "Link to this definition") The SQL VARCHAR type. **Class signature** class [`sqlalchemy.types.VARCHAR`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.VARCHAR "sqlalchemy.types.VARCHAR") ([`sqlalchemy.types.String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") ) Previous: [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html "previous chapter") Next: [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Base Type API — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * [The Type Hierarchy](https://docs.sqlalchemy.org/en/14/core/type_basics.html) * [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html) * **Base Type API**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#) * [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) * [`TypeEngine.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator) * [`TypeEngine.Comparator.operate()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate) * [`TypeEngine.Comparator.reverse_operate()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.reverse_operate) * [`TypeEngine.adapt()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.adapt) * [`TypeEngine.as_generic()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic) * [`TypeEngine.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression) * [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor) * [`TypeEngine.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value) * [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression) * [`TypeEngine.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory) * [`TypeEngine.compare_against_backend()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend) * [`TypeEngine.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values) * [`TypeEngine.compile()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compile) * [`TypeEngine.dialect_impl()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl) * [`TypeEngine.evaluates_none()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none) * [`TypeEngine.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.get_dbapi_type) * [`TypeEngine.hashable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.hashable) * [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor) * [`TypeEngine.python_type`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.python_type) * [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor) * [`TypeEngine.should_evaluate_none`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none) * [`TypeEngine.sort_key_function`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function) * [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant) * [`Concatenable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable) * [`Concatenable.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.Comparator) * [`Concatenable.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.comparator_factory) * [`Indexable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable) * [`Indexable.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.Comparator) * [`Indexable.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.comparator_factory) * [`NullType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType) * [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType) * [`ExternalType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok) * [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant) * [`Variant.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.__init__) * [`Variant.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant) * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html "previous chapter") * **Next:** [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html "SQL Datatype Objects") * **On this page:** * [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html#base-type-api) * [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) * [`TypeEngine.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator) * [`TypeEngine.Comparator.operate()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate) * [`TypeEngine.Comparator.reverse_operate()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.reverse_operate) * [`TypeEngine.adapt()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.adapt) * [`TypeEngine.as_generic()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic) * [`TypeEngine.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression) * [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor) * [`TypeEngine.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value) * [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression) * [`TypeEngine.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory) * [`TypeEngine.compare_against_backend()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend) * [`TypeEngine.compare_values()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values) * [`TypeEngine.compile()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compile) * [`TypeEngine.dialect_impl()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl) * [`TypeEngine.evaluates_none()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none) * [`TypeEngine.get_dbapi_type()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.get_dbapi_type) * [`TypeEngine.hashable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.hashable) * [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor) * [`TypeEngine.python_type`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.python_type) * [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor) * [`TypeEngine.should_evaluate_none`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none) * [`TypeEngine.sort_key_function`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function) * [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant) * [`Concatenable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable) * [`Concatenable.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.Comparator) * [`Concatenable.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.comparator_factory) * [`Indexable`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable) * [`Indexable.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.Comparator) * [`Indexable.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.comparator_factory) * [`NullType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType) * [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType) * [`ExternalType.cache_ok`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok) * [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant) * [`Variant.__init__()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.__init__) * [`Variant.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant) Base Type API[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#base-type-api "Link to this heading") ============================================================================================================ | Object Name | Description | | --- | --- | | [Concatenable](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable) | A mixin that marks a type as supporting ‘concatenation’, typically strings. | | [ExternalType](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType) | mixin that defines attributes and behaviors specific to third-party datatypes. | | [Indexable](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable) | A mixin that marks a type as supporting indexing operations, such as array or JSON structures. | | [NullType](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType) | An unknown type. | | [TypeEngine](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) | The ultimate base class for all SQL datatypes. | | [Variant](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant) | A wrapping type that selects among a variety of implementations based on dialect in use. | _class_ sqlalchemy.types.TypeEngine[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "Link to this definition") The ultimate base class for all SQL datatypes. Common subclasses of [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") include [`String`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.String "sqlalchemy.types.String") , [`Integer`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Integer "sqlalchemy.types.Integer") , and [`Boolean`](https://docs.sqlalchemy.org/en/14/core/type_basics.html#sqlalchemy.types.Boolean "sqlalchemy.types.Boolean") . For an overview of the SQLAlchemy typing system, see [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) . See also [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) **Members** [operate()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate) , [reverse\_operate()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.reverse_operate) , [adapt()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.adapt) , [as\_generic()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic) , [bind\_expression()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression) , [bind\_processor()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor) , [coerce\_compared\_value()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value) , [column\_expression()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression) , [comparator\_factory](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory) , [compare\_against\_backend()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend) , [compare\_values()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values) , [compile()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compile) , [dialect\_impl()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl) , [evaluates\_none()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none) , [get\_dbapi\_type()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.get_dbapi_type) , [hashable](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.hashable) , [literal\_processor()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor) , [python\_type](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.python_type) , [result\_processor()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor) , [should\_evaluate\_none](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none) , [sort\_key\_function](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function) , [with\_variant()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant) **Class signature** class [`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ([`sqlalchemy.sql.visitors.Traversible`](https://docs.sqlalchemy.org/en/14/core/visitors.html#sqlalchemy.sql.visitors.Traversible "sqlalchemy.sql.visitors.Traversible") ) _class_ Comparator(_expr_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "Link to this definition") Base class for custom comparison operations defined at the type level. See [`TypeEngine.comparator_factory`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory "sqlalchemy.types.TypeEngine.comparator_factory") . **Class signature** class [`sqlalchemy.types.TypeEngine.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.types.TypeEngine.Comparator") ([`sqlalchemy.sql.expression.ColumnOperators`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators "sqlalchemy.sql.expression.ColumnOperators") ) _method_ [`sqlalchemy.types.TypeEngine.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator) operate(_op_, _\*other_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate "Link to this definition") Operate on an argument. This is the lowest level of operation, raises `NotImplementedError` by default. Overriding this on a subclass can allow common behavior to be applied to all operations. For example, overriding [`ColumnOperators`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnOperators "sqlalchemy.sql.expression.ColumnOperators") to apply `func.lower()` to the left and right side: class MyComparator(ColumnOperators): def operate(self, op, other, \*\*kwargs): return op(func.lower(self), func.lower(other), \*\*kwargs) Parameters: * **op**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate.params.op) – Operator callable. * **\*other**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate.params.*other) – the ‘other’ side of the operation. Will be a single scalar for most operations. * **\*\*kwargs**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate.params.**kwargs) – modifiers. These may be passed by special operators such as `ColumnOperators.contains()`. _method_ [`sqlalchemy.types.TypeEngine.Comparator.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator) reverse\_operate(_op_, _other_, _\*\*kwargs_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.reverse_operate "Link to this definition") Reverse operate on an argument. Usage is the same as [`operate()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator.operate "sqlalchemy.types.TypeEngine.Comparator.operate") . _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) adapt(_cls_, _\*\*kw_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.adapt "Link to this definition") Produce an “adapted” form of this type, given an “impl” class to work with. This method is used internally to associate generic types with “implementation” types that are specific to a particular dialect. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) as\_generic(_allow\_nulltype\=False_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic "Link to this definition") Return an instance of the generic type corresponding to this type using heuristic rule. The method may be overridden if this heuristic rule is not sufficient. \>>> from sqlalchemy.dialects.mysql import INTEGER \>>> INTEGER(display\_width\=4).as\_generic() Integer() \>>> from sqlalchemy.dialects.mysql import NVARCHAR \>>> NVARCHAR(length\=100).as\_generic() Unicode(length=100) Added in version 1.4.0b2. See also [Reflecting with Database-Agnostic Types](https://docs.sqlalchemy.org/en/14/core/reflection.html#metadata-reflection-dbagnostic-types) - describes the use of [`TypeEngine.as_generic()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.as_generic "sqlalchemy.types.TypeEngine.as_generic") in conjunction with the `DDLEvents.column_reflect()` event, which is its intended use. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) bind\_expression(_bindvalue_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression "Link to this definition") Given a bind value (i.e. a [`BindParameter`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.BindParameter "sqlalchemy.sql.expression.BindParameter") instance), return a SQL expression in its place. This is typically a SQL function that wraps the existing bound parameter within the statement. It is used for special data types that require literals being wrapped in some special database function in order to coerce an application-level value into a database-specific format. It is the SQL analogue of the [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method. This method is called during the **SQL compilation** phase of a statement, when rendering a SQL string. It is **not** called against specific values. Note that this method, when implemented, should always return the exact same structure, without any conditional logic, as it may be used in an executemany() call against an arbitrary number of bound parameter sets. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression "sqlalchemy.types.TypeEngine.bind_expression") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_expression "sqlalchemy.types.TypeEngine.bind_expression") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.bind_expression()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.bind_expression "sqlalchemy.types.TypeDecorator.bind_expression") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) See also [Applying SQL-level Bind/Result Processing](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-sql-value-processing) _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) bind\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "Link to this definition") Return a conversion function for processing bind values. Returns a callable which will receive a bind parameter value as the sole positional argument and will return a value to send to the DB-API. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.bind_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor "sqlalchemy.types.TypeEngine.bind_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_bind_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_bind_param "sqlalchemy.types.TypeDecorator.process_bind_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.bind_processor.params.dialect) – Dialect instance in use. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) coerce\_compared\_value(_op_, _value_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.coerce_compared_value "Link to this definition") Suggest a type for a ‘coerced’ Python value in an expression. Given an operator and value, gives the type a chance to return a type which the value should be coerced into. The default behavior here is conservative; if the right-hand side is already coerced into a SQL type based on its Python type, it is usually left alone. End-user functionality extension here should generally be via [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") , which provides more liberal behavior in that it defaults to coercing the other side of the expression into this type, thus applying special Python conversions above and beyond those needed by the DBAPI to both ides. It also provides the public method [`TypeDecorator.coerce_compared_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.coerce_compared_value "sqlalchemy.types.TypeDecorator.coerce_compared_value") which is intended for end-user customization of this behavior. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) column\_expression(_colexpr_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression "Link to this definition") Given a SELECT column expression, return a wrapping SQL expression. This is typically a SQL function that wraps a column expression as rendered in the columns clause of a SELECT statement. It is used for special data types that require columns to be wrapped in some special database function in order to coerce the value before being sent back to the application. It is the SQL analogue of the [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method. This method is called during the **SQL compilation** phase of a statement, when rendering a SQL string. It is **not** called against specific values. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression "sqlalchemy.types.TypeEngine.column_expression") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.column_expression()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.column_expression "sqlalchemy.types.TypeEngine.column_expression") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.column_expression()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.column_expression "sqlalchemy.types.TypeDecorator.column_expression") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) See also [Applying SQL-level Bind/Result Processing](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-sql-value-processing) _attribute_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) comparator\_factory[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.comparator_factory "Link to this definition") alias of [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.Comparator "sqlalchemy.sql.type_api.TypeEngine.Comparator") _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) compare\_against\_backend(_dialect_, _conn\_type_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend "Link to this definition") Compare this type against the given backend type. This function is currently not implemented for SQLAlchemy types, and for all built in types will return `None`. However, it can be implemented by a user-defined type where it can be consumed by schema comparison tools such as Alembic autogenerate. A future release of SQLAlchemy will potentially implement this method for builtin types as well. The function should return True if this type is equivalent to the given type; the type is typically reflected from the database so should be database specific. The dialect in use is also passed. It can also return False to assert that the type is not equivalent. Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend.params.dialect) – a [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") that is involved in the comparison. * **conn\_type**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_against_backend.params.conn_type) – the type object reflected from the backend. Added in version 1.0.3. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) compare\_values(_x_, _y_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compare_values "Link to this definition") Compare two values for equality. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) compile(_dialect\=None_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compile "Link to this definition") Produce a string-compiled form of this [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") . When called with no arguments, uses a “default” dialect to produce a string result. Parameters: **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.compile.params.dialect) – a [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") instance. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) dialect\_impl(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.dialect_impl "Link to this definition") Return a dialect-specific implementation for this [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") . _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) evaluates\_none()[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none "Link to this definition") Return a copy of this type which has the [`should_evaluate_none`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none "sqlalchemy.types.TypeEngine.should_evaluate_none") flag set to True. E.g.: Table( 'some\_table', metadata, Column( String(50).evaluates\_none(), nullable\=True, server\_default\='no value') ) The ORM uses this flag to indicate that a positive value of `None` is passed to the column in an INSERT statement, rather than omitting the column from the INSERT statement which has the effect of firing off column-level defaults. It also allows for types which have special behavior associated with the Python None value to indicate that the value doesn’t necessarily translate into SQL NULL; a prime example of this is a JSON type which may wish to persist the JSON value `'null'`. In all cases, the actual NULL SQL value can be always be persisted in any column by using the [`null`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.null "sqlalchemy.sql.expression.null") SQL construct in an INSERT statement or associated with an ORM-mapped attribute. Note The “evaluates none” flag does **not** apply to a value of `None` passed to [`Column.default`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.default "sqlalchemy.schema.Column") or [`Column.server_default`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column.params.server_default "sqlalchemy.schema.Column") ; in these cases, `None` still means “no default”. Added in version 1.1. See also [Forcing NULL on a column with a default](https://docs.sqlalchemy.org/en/14/orm/persistence_techniques.html#session-forcing-null) - in the ORM documentation [`JSON.none_as_null`](https://docs.sqlalchemy.org/en/14/dialects/postgresql.html#sqlalchemy.dialects.postgresql.JSON.params.none_as_null "sqlalchemy.dialects.postgresql.JSON") - PostgreSQL JSON interaction with this flag. [`TypeEngine.should_evaluate_none`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none "sqlalchemy.types.TypeEngine.should_evaluate_none") - class-level flag _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) get\_dbapi\_type(_dbapi_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.get_dbapi_type "Link to this definition") Return the corresponding type object from the underlying DB-API, if any. This can be useful for calling `setinputsizes()`, for example. _attribute_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) hashable _\= True_[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.hashable "Link to this definition") Flag, if False, means values from this type aren’t hashable. Used by the ORM when uniquing result lists. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) literal\_processor(_dialect_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "Link to this definition") Return a conversion function for processing literal values that are to be rendered directly without using binds. This function is used when the compiler makes use of the “literal\_binds” flag, typically used in DDL generation as well as in certain scenarios where backends don’t accept bound parameters. Returns a callable which will receive a literal Python value as the sole positional argument and will return a string representation to be rendered in a SQL statement. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.literal_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.literal_processor "sqlalchemy.types.TypeEngine.literal_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_literal_param()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_literal_param "sqlalchemy.types.TypeDecorator.process_literal_param") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) _attribute_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) python\_type[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.python_type "Link to this definition") Return the Python type object expected to be returned by instances of this type, if known. Basically, for those types which enforce a return type, or are known across the board to do such for all common DBAPIs (like `int` for example), will return that type. If a return type is not defined, raises `NotImplementedError`. Note that any type also accommodates NULL in SQL which means you can also get back `None` from any type in practice. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) result\_processor(_dialect_, _coltype_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "Link to this definition") Return a conversion function for processing result row values. Returns a callable which will receive a result row column value as the sole positional argument and will return a value to return to the user. If processing is not necessary, the method should return `None`. Note This method is only called relative to a **dialect specific type object**, which is often **private to a dialect in use** and is not the same type object as the public facing one, which means it’s not feasible to subclass a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") class in order to provide an alternate [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") method, unless subclassing the [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") class explicitly. To provide alternate behavior for [`TypeEngine.result_processor()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor "sqlalchemy.types.TypeEngine.result_processor") , implement a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") class and provide an implementation of [`TypeDecorator.process_result_value()`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator.process_result_value "sqlalchemy.types.TypeDecorator.process_result_value") . See also [Augmenting Existing Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html#types-typedecorator) Parameters: * **dialect**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor.params.dialect) – Dialect instance in use. * **coltype**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.result_processor.params.coltype) – DBAPI coltype argument received in cursor.description. _attribute_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) should\_evaluate\_none _\= False_[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.should_evaluate_none "Link to this definition") If True, the Python constant `None` is considered to be handled explicitly by this type. The ORM uses this flag to indicate that a positive value of `None` is passed to the column in an INSERT statement, rather than omitting the column from the INSERT statement which has the effect of firing off column-level defaults. It also allows types which have special behavior for Python None, such as a JSON type, to indicate that they’d like to handle the None value explicitly. To set this flag on an existing type, use the [`TypeEngine.evaluates_none()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none "sqlalchemy.types.TypeEngine.evaluates_none") method. See also [`TypeEngine.evaluates_none()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.evaluates_none "sqlalchemy.types.TypeEngine.evaluates_none") Added in version 1.1. _attribute_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) sort\_key\_function _\= None_[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.sort_key_function "Link to this definition") A sorting function that can be passed as the key to sorted. The default value of `None` indicates that the values stored by this type are self-sorting. Added in version 1.3.8. _method_ [`sqlalchemy.types.TypeEngine.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine) with\_variant(_type\__, _dialect\_name_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "Link to this definition") Produce a new type object that will utilize the given type when applied to the dialect of the given name. e.g.: from sqlalchemy.types import String from sqlalchemy.dialects import mysql s \= String() s \= s.with\_variant(mysql.VARCHAR(collation\='foo'), 'mysql') The construction of [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") is always from the “fallback” type to that which is dialect specific. The returned type is an instance of [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "sqlalchemy.types.Variant") , which itself provides a [`Variant.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant "sqlalchemy.types.Variant.with_variant") that can be called repeatedly. Parameters: * **type\_**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant.params.type_) – a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") that will be selected as a variant from the originating type, when a dialect of the given name is in use. * **dialect\_name**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant.params.dialect_name) – base name of the dialect which uses this type. (i.e. `'postgresql'`, `'mysql'`, etc.) See also [Using “UPPERCASE” and Backend-specific types for multiple backends](https://docs.sqlalchemy.org/en/14/core/type_basics.html#types-with-variant) - illustrates the use of [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") . _class_ sqlalchemy.types.Concatenable[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable "Link to this definition") **Members** [comparator\_factory](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.comparator_factory) A mixin that marks a type as supporting ‘concatenation’, typically strings. _class_ Comparator(_expr_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.Comparator "Link to this definition") **Class signature** class [`sqlalchemy.types.Concatenable.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.Comparator "sqlalchemy.types.Concatenable.Comparator") (`sqlalchemy.types.Comparator`) _attribute_ [`sqlalchemy.types.Concatenable.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable) comparator\_factory[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.comparator_factory "Link to this definition") alias of [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Concatenable.Comparator "sqlalchemy.sql.sqltypes.Concatenable.Comparator") _class_ sqlalchemy.types.Indexable[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable "Link to this definition") A mixin that marks a type as supporting indexing operations, such as array or JSON structures. **Members** [comparator\_factory](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.comparator_factory) Added in version 1.1.0. _class_ Comparator(_expr_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.Comparator "Link to this definition") **Class signature** class [`sqlalchemy.types.Indexable.Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.Comparator "sqlalchemy.types.Indexable.Comparator") (`sqlalchemy.types.Comparator`) _attribute_ [`sqlalchemy.types.Indexable.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable) comparator\_factory[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.comparator_factory "Link to this definition") alias of [`Comparator`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Indexable.Comparator "sqlalchemy.sql.sqltypes.Indexable.Comparator") _class_ sqlalchemy.types.NullType[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType "Link to this definition") An unknown type. [`NullType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType "sqlalchemy.types.NullType") is used as a default type for those cases where a type cannot be determined, including: * During table reflection, when the type of a column is not recognized by the [`Dialect`](https://docs.sqlalchemy.org/en/14/core/internals.html#sqlalchemy.engine.Dialect "sqlalchemy.engine.Dialect") * When constructing SQL expressions using plain Python objects of unknown types (e.g. `somecolumn == my_special_object`) * When a new [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") is created, and the given type is passed as `None` or is not passed at all. The [`NullType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType "sqlalchemy.types.NullType") can be used within SQL expression invocation without issue, it just has no behavior either at the expression construction level or at the bind-parameter/result processing level. [`NullType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType "sqlalchemy.types.NullType") will result in a [`CompileError`](https://docs.sqlalchemy.org/en/14/core/exceptions.html#sqlalchemy.exc.CompileError "sqlalchemy.exc.CompileError") if the compiler is asked to render the type itself, such as if it is used in a [`cast()`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.cast "sqlalchemy.sql.expression.cast") operation or within a schema creation operation such as that invoked by [`MetaData.create_all()`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.create_all "sqlalchemy.schema.MetaData.create_all") or the [`CreateTable`](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.CreateTable "sqlalchemy.schema.CreateTable") construct. **Class signature** class [`sqlalchemy.types.NullType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.NullType "sqlalchemy.types.NullType") ([`sqlalchemy.types.TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") ) _class_ sqlalchemy.types.ExternalType[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "Link to this definition") mixin that defines attributes and behaviors specific to third-party datatypes. “Third party” refers to datatypes that are defined outside the scope of SQLAlchemy within either end-user application code or within external extensions to SQLAlchemy. Subclasses currently include [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") and [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") . **Members** [cache\_ok](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok) Added in version 1.4.28. _attribute_ [`sqlalchemy.types.ExternalType.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType) cache\_ok _\= None_[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType.cache_ok "Link to this definition") Indicate if statements using this [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") are “safe to cache”. The default value `None` will emit a warning and then not allow caching of a statement which includes this type. Set to `False` to disable statements using this type from being cached at all without a warning. When set to `True`, the object’s class and selected elements from its state will be used as part of the cache key. For example, using a [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") : class MyType(TypeDecorator): impl \= String cache\_ok \= True def \_\_init\_\_(self, choices): self.choices \= tuple(choices) self.internal\_only \= True The cache key for the above type would be equivalent to: \>>> MyType(\["a", "b", "c"\]).\_static\_cache\_key (, ('choices', ('a', 'b', 'c'))) The caching scheme will extract attributes from the type that correspond to the names of parameters in the `__init__()` method. Above, the “choices” attribute becomes part of the cache key but “internal\_only” does not, because there is no parameter named “internal\_only”. The requirements for cacheable elements is that they are hashable and also that they indicate the same SQL rendered for expressions using this type every time for a given cache value. To accommodate for datatypes that refer to unhashable structures such as dictionaries, sets and lists, these objects can be made “cacheable” by assigning hashable structures to the attributes whose names correspond with the names of the arguments. For example, a datatype which accepts a dictionary of lookup values may publish this as a sorted series of tuples. Given a previously un-cacheable type as: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. this is the non-cacheable version, as "self.lookup" is not hashable. ''' def \_\_init\_\_(self, lookup): self.lookup \= lookup def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.lookup" ... Where “lookup” is a dictionary. The type will not be able to generate a cache key: \>>> type\_ \= LookupType({"a": 10, "b": 20}) \>>> type\_.\_static\_cache\_key :1: SAWarning: UserDefinedType LookupType({'a': 10, 'b': 20}) will not produce a cache key because the \`\`cache\_ok\`\` flag is not set to True. Set this flag to True if this type object's state is safe to use in a cache key, or False to disable this warning. symbol('no\_cache') If we **did** set up such a cache key, it wouldn’t be usable. We would get a tuple structure that contains a dictionary inside of it, which cannot itself be used as a key in a “cache dictionary” such as SQLAlchemy’s statement cache, since Python dictionaries aren’t hashable: \>>> \# set cache\_ok = True \>>> type\_.cache\_ok \= True \>>> \# this is the cache key it would generate \>>> key \= type\_.\_static\_cache\_key \>>> key (, ('lookup', {'a': 10, 'b': 20})) \>>> \# however this key is not hashable, will fail when used with \>>> \# SQLAlchemy statement cache \>>> some\_cache \= {key: "some sql value"} Traceback (most recent call last): File "", line 1, in TypeError: unhashable type: 'dict' The type may be made cacheable by assigning a sorted tuple of tuples to the “.lookup” attribute: class LookupType(UserDefinedType): '''a custom type that accepts a dictionary as a parameter. The dictionary is stored both as itself in a private variable, and published in a public variable as a sorted tuple of tuples, which is hashable and will also return the same value for any two equivalent dictionaries. Note it assumes the keys and values of the dictionary are themselves hashable. ''' cache\_ok \= True def \_\_init\_\_(self, lookup): self.\_lookup \= lookup \# assume keys/values of "lookup" are hashable; otherwise \# they would also need to be converted in some way here self.lookup \= tuple( (key, lookup\[key\]) for key in sorted(lookup) ) def get\_col\_spec(self, \*\*kw): return "VARCHAR(255)" def bind\_processor(self, dialect): \# ... works with "self.\_lookup" ... Where above, the cache key for `LookupType({"a": 10, "b": 20})` will be: \>>> LookupType({"a": 10, "b": 20}).\_static\_cache\_key (, ('lookup', (('a', 10), ('b', 20)))) Added in version 1.4.14: \- added the `cache_ok` flag to allow some configurability of caching for [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") classes. Added in version 1.4.28: \- added the [`ExternalType`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.ExternalType "sqlalchemy.types.ExternalType") mixin which generalizes the `cache_ok` flag to both the [`TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") and [`UserDefinedType`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.UserDefinedType "sqlalchemy.types.UserDefinedType") classes. See also [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-caching) _class_ sqlalchemy.types.Variant(_base_, _mapping_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "Link to this definition") A wrapping type that selects among a variety of implementations based on dialect in use. The [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "sqlalchemy.types.Variant") type is typically constructed using the [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") method. See also [`TypeEngine.with_variant()`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine.with_variant "sqlalchemy.types.TypeEngine.with_variant") for an example of use. **Members** [\_\_init\_\_()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.__init__) , [with\_variant()](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant) **Class signature** class [`sqlalchemy.types.Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "sqlalchemy.types.Variant") ([`sqlalchemy.types.TypeDecorator`](https://docs.sqlalchemy.org/en/14/core/custom_types.html#sqlalchemy.types.TypeDecorator "sqlalchemy.types.TypeDecorator") ) _method_ [`sqlalchemy.types.Variant.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant) \_\_init\_\_(_base_, _mapping_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.__init__ "Link to this definition") Construct a new [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "sqlalchemy.types.Variant") . Parameters: * **base**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.params.base) – the base ‘fallback’ type * **mapping**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.params.mapping) – dictionary of string dialect names to [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") instances. _method_ [`sqlalchemy.types.Variant.`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant) with\_variant(_type\__, _dialect\_name_)[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant "Link to this definition") Return a new [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "sqlalchemy.types.Variant") which adds the given type + dialect name to the mapping, in addition to the mapping present in this [`Variant`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant "sqlalchemy.types.Variant") . Parameters: * **type\_**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant.params.type_) – a [`TypeEngine`](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.TypeEngine "sqlalchemy.types.TypeEngine") that will be selected as a variant from the originating type, when a dialect of the given name is in use. * **dialect\_name**[¶](https://docs.sqlalchemy.org/en/14/core/type_api.html#sqlalchemy.types.Variant.with_variant.params.dialect_name) – base name of the dialect which uses this type. (i.e. `'postgresql'`, `'mysql'`, etc.) Previous: [Custom Types](https://docs.sqlalchemy.org/en/14/core/custom_types.html "previous chapter") Next: [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Engine and Connection Use — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * [SQL Expression Language Tutorial (1.x API)](https://docs.sqlalchemy.org/en/14/core/tutorial.html) * [SQL Statements and Expressions API](https://docs.sqlalchemy.org/en/14/core/expression_api.html) * [Schema Definition Language](https://docs.sqlalchemy.org/en/14/core/schema.html) * [SQL Datatype Objects](https://docs.sqlalchemy.org/en/14/core/types.html) * **Engine and Connection Use**[¶](https://docs.sqlalchemy.org/en/14/core/engines_connections.html#) * [Engine Configuration](https://docs.sqlalchemy.org/en/14/core/engines.html) * [Working with Engines and Connections](https://docs.sqlalchemy.org/en/14/core/connections.html) * [Connection Pooling](https://docs.sqlalchemy.org/en/14/core/pooling.html) * [Core Events](https://docs.sqlalchemy.org/en/14/core/events.html) * [Core API Basics](https://docs.sqlalchemy.org/en/14/core/api_basics.html) * [SQLAlchemy 2.0 Future (Core)](https://docs.sqlalchemy.org/en/14/core/future.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html "previous chapter") * **Next:** [Engine Configuration](https://docs.sqlalchemy.org/en/14/core/engines.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [SQLAlchemy Core](https://docs.sqlalchemy.org/en/14/core/index.html "SQLAlchemy Core") * **On this page:** * [Engine and Connection Use](https://docs.sqlalchemy.org/en/14/core/engines_connections.html#engine-and-connection-use) Engine and Connection Use[¶](https://docs.sqlalchemy.org/en/14/core/engines_connections.html#engine-and-connection-use "Link to this heading") =============================================================================================================================================== * [Engine Configuration](https://docs.sqlalchemy.org/en/14/core/engines.html) * [Supported Databases](https://docs.sqlalchemy.org/en/14/core/engines.html#supported-databases) * [Database URLs](https://docs.sqlalchemy.org/en/14/core/engines.html#database-urls) * [Escaping Special Characters such as @ signs in Passwords](https://docs.sqlalchemy.org/en/14/core/engines.html#escaping-special-characters-such-as-signs-in-passwords) * [Creating URLs Programmatically](https://docs.sqlalchemy.org/en/14/core/engines.html#creating-urls-programmatically) * [Backend-Specific URLs](https://docs.sqlalchemy.org/en/14/core/engines.html#backend-specific-urls) * [Engine Creation API](https://docs.sqlalchemy.org/en/14/core/engines.html#engine-creation-api) * [`create_engine()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_engine) * [`engine_from_config()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine_from_config) * [`create_mock_engine()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_mock_engine) * [`make_url()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.make_url) * [`URL`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.engine.URL) * [Pooling](https://docs.sqlalchemy.org/en/14/core/engines.html#pooling) * [Custom DBAPI connect() arguments / on-connect routines](https://docs.sqlalchemy.org/en/14/core/engines.html#custom-dbapi-connect-arguments-on-connect-routines) * [Special Keyword Arguments Passed to dbapi.connect()](https://docs.sqlalchemy.org/en/14/core/engines.html#special-keyword-arguments-passed-to-dbapi-connect) * [Controlling how parameters are passed to the DBAPI connect() function](https://docs.sqlalchemy.org/en/14/core/engines.html#controlling-how-parameters-are-passed-to-the-dbapi-connect-function) * [Modifying the DBAPI connection after connect, or running commands after connect](https://docs.sqlalchemy.org/en/14/core/engines.html#modifying-the-dbapi-connection-after-connect-or-running-commands-after-connect) * [Fully Replacing the DBAPI `connect()` function](https://docs.sqlalchemy.org/en/14/core/engines.html#fully-replacing-the-dbapi-connect-function) * [Configuring Logging](https://docs.sqlalchemy.org/en/14/core/engines.html#configuring-logging) * [More on the Echo Flag](https://docs.sqlalchemy.org/en/14/core/engines.html#more-on-the-echo-flag) * [Setting the Logging Name](https://docs.sqlalchemy.org/en/14/core/engines.html#setting-the-logging-name) * [Setting Per-Connection / Sub-Engine Tokens](https://docs.sqlalchemy.org/en/14/core/engines.html#setting-per-connection-sub-engine-tokens) * [Hiding Parameters](https://docs.sqlalchemy.org/en/14/core/engines.html#hiding-parameters) * [Working with Engines and Connections](https://docs.sqlalchemy.org/en/14/core/connections.html) * [Basic Usage](https://docs.sqlalchemy.org/en/14/core/connections.html#basic-usage) * [Using Transactions](https://docs.sqlalchemy.org/en/14/core/connections.html#using-transactions) * [Nesting of Transaction Blocks](https://docs.sqlalchemy.org/en/14/core/connections.html#nesting-of-transaction-blocks) * [Library Level (e.g. emulated) Autocommit](https://docs.sqlalchemy.org/en/14/core/connections.html#library-level-e-g-emulated-autocommit) * [Setting Transaction Isolation Levels including DBAPI Autocommit](https://docs.sqlalchemy.org/en/14/core/connections.html#setting-transaction-isolation-levels-including-dbapi-autocommit) * [Understanding the DBAPI-Level Autocommit Isolation Level](https://docs.sqlalchemy.org/en/14/core/connections.html#understanding-the-dbapi-level-autocommit-isolation-level) * [Using Server Side Cursors (a.k.a. stream results)](https://docs.sqlalchemy.org/en/14/core/connections.html#using-server-side-cursors-a-k-a-stream-results) * [Streaming with a fixed buffer via yield\_per](https://docs.sqlalchemy.org/en/14/core/connections.html#streaming-with-a-fixed-buffer-via-yield-per) * [Streaming with a dynamically growing buffer using stream\_results](https://docs.sqlalchemy.org/en/14/core/connections.html#streaming-with-a-dynamically-growing-buffer-using-stream-results) * [Connectionless Execution, Implicit Execution](https://docs.sqlalchemy.org/en/14/core/connections.html#connectionless-execution-implicit-execution) * [Translation of Schema Names](https://docs.sqlalchemy.org/en/14/core/connections.html#translation-of-schema-names) * [SQL Compilation Caching](https://docs.sqlalchemy.org/en/14/core/connections.html#sql-compilation-caching) * [Configuration](https://docs.sqlalchemy.org/en/14/core/connections.html#configuration) * [Estimating Cache Performance Using Logging](https://docs.sqlalchemy.org/en/14/core/connections.html#estimating-cache-performance-using-logging) * [How much memory does the cache use?](https://docs.sqlalchemy.org/en/14/core/connections.html#how-much-memory-does-the-cache-use) * [Disabling or using an alternate dictionary to cache some (or all) statements](https://docs.sqlalchemy.org/en/14/core/connections.html#disabling-or-using-an-alternate-dictionary-to-cache-some-or-all-statements) * [Caching for Third Party Dialects](https://docs.sqlalchemy.org/en/14/core/connections.html#caching-for-third-party-dialects) * [Using Lambdas to add significant speed gains to statement production](https://docs.sqlalchemy.org/en/14/core/connections.html#using-lambdas-to-add-significant-speed-gains-to-statement-production) * [Engine Disposal](https://docs.sqlalchemy.org/en/14/core/connections.html#engine-disposal) * [Working with Driver SQL and Raw DBAPI Connections](https://docs.sqlalchemy.org/en/14/core/connections.html#working-with-driver-sql-and-raw-dbapi-connections) * [Invoking SQL strings directly to the driver](https://docs.sqlalchemy.org/en/14/core/connections.html#invoking-sql-strings-directly-to-the-driver) * [Working with the DBAPI cursor directly](https://docs.sqlalchemy.org/en/14/core/connections.html#working-with-the-dbapi-cursor-directly) * [Calling Stored Procedures and User Defined Functions](https://docs.sqlalchemy.org/en/14/core/connections.html#calling-stored-procedures-and-user-defined-functions) * [Multiple Result Sets](https://docs.sqlalchemy.org/en/14/core/connections.html#multiple-result-sets) * [Registering New Dialects](https://docs.sqlalchemy.org/en/14/core/connections.html#registering-new-dialects) * [Registering Dialects In-Process](https://docs.sqlalchemy.org/en/14/core/connections.html#registering-dialects-in-process) * [Connection / Engine API](https://docs.sqlalchemy.org/en/14/core/connections.html#connection-engine-api) * [`Connection`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Connection) * [`CreateEnginePlugin`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CreateEnginePlugin) * [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine) * [`ExceptionContext`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ExceptionContext) * [`NestedTransaction`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.NestedTransaction) * [`RootTransaction`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RootTransaction) * [`Transaction`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Transaction) * [`TwoPhaseTransaction`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.TwoPhaseTransaction) * [Result Set API](https://docs.sqlalchemy.org/en/14/core/connections.html#result-set-api) * [`BaseCursorResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.BaseCursorResult) * [`ChunkedIteratorResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ChunkedIteratorResult) * [`FilterResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FilterResult) * [`FrozenResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.FrozenResult) * [`IteratorResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.IteratorResult) * [`LegacyRow`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyRow) * [`MergedResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MergedResult) * [`Result`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Result) * [`ScalarResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.ScalarResult) * [`MappingResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.MappingResult) * [`CursorResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult) * [`LegacyCursorResult`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.LegacyCursorResult) * [`Row`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Row) * [`RowMapping`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.RowMapping) * [Connection Pooling](https://docs.sqlalchemy.org/en/14/core/pooling.html) * [Connection Pool Configuration](https://docs.sqlalchemy.org/en/14/core/pooling.html#connection-pool-configuration) * [Switching Pool Implementations](https://docs.sqlalchemy.org/en/14/core/pooling.html#switching-pool-implementations) * [Using a Custom Connection Function](https://docs.sqlalchemy.org/en/14/core/pooling.html#using-a-custom-connection-function) * [Constructing a Pool](https://docs.sqlalchemy.org/en/14/core/pooling.html#constructing-a-pool) * [Reset On Return](https://docs.sqlalchemy.org/en/14/core/pooling.html#reset-on-return) * [Disabling Reset on Return for non-transactional connections](https://docs.sqlalchemy.org/en/14/core/pooling.html#disabling-reset-on-return-for-non-transactional-connections) * [Custom Reset-on-Return Schemes](https://docs.sqlalchemy.org/en/14/core/pooling.html#custom-reset-on-return-schemes) * [Logging reset-on-return events](https://docs.sqlalchemy.org/en/14/core/pooling.html#logging-reset-on-return-events) * [Pool Events](https://docs.sqlalchemy.org/en/14/core/pooling.html#pool-events) * [Dealing with Disconnects](https://docs.sqlalchemy.org/en/14/core/pooling.html#dealing-with-disconnects) * [Disconnect Handling - Pessimistic](https://docs.sqlalchemy.org/en/14/core/pooling.html#disconnect-handling-pessimistic) * [Disconnect Handling - Optimistic](https://docs.sqlalchemy.org/en/14/core/pooling.html#disconnect-handling-optimistic) * [More on Invalidation](https://docs.sqlalchemy.org/en/14/core/pooling.html#more-on-invalidation) * [Using FIFO vs. LIFO](https://docs.sqlalchemy.org/en/14/core/pooling.html#using-fifo-vs-lifo) * [Using Connection Pools with Multiprocessing or os.fork()](https://docs.sqlalchemy.org/en/14/core/pooling.html#using-connection-pools-with-multiprocessing-or-os-fork) * [API Documentation - Available Pool Implementations](https://docs.sqlalchemy.org/en/14/core/pooling.html#api-documentation-available-pool-implementations) * [`Pool`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.Pool) * [`QueuePool`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.QueuePool) * [`SingletonThreadPool`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.SingletonThreadPool) * [`AssertionPool`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.AssertionPool) * [`NullPool`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.NullPool) * [`StaticPool`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool.StaticPool) * [`_ConnectionFairy`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionFairy) * [`_ConnectionRecord`](https://docs.sqlalchemy.org/en/14/core/pooling.html#sqlalchemy.pool._ConnectionRecord) * [Core Events](https://docs.sqlalchemy.org/en/14/core/events.html) * [`Events`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.event.base.Events) * [Connection Pool Events](https://docs.sqlalchemy.org/en/14/core/events.html#connection-pool-events) * [`PoolEvents`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.PoolEvents) * [SQL Execution and Connection Events](https://docs.sqlalchemy.org/en/14/core/events.html#sql-execution-and-connection-events) * [`ConnectionEvents`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.ConnectionEvents) * [`DialectEvents`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DialectEvents) * [Schema Events](https://docs.sqlalchemy.org/en/14/core/events.html#schema-events) * [`DDLEvents`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.DDLEvents) * [`SchemaEventTarget`](https://docs.sqlalchemy.org/en/14/core/events.html#sqlalchemy.events.SchemaEventTarget) Previous: [Base Type API](https://docs.sqlalchemy.org/en/14/core/type_api.html "previous chapter") Next: [Engine Configuration](https://docs.sqlalchemy.org/en/14/core/engines.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Installation — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * **Installation**[¶](https://docs.sqlalchemy.org/en/14/faq/installation.html#) * [I’m getting an error about greenlet not being installed when I try to use asyncio](https://docs.sqlalchemy.org/en/14/faq/installation.html#i-m-getting-an-error-about-greenlet-not-being-installed-when-i-try-to-use-asyncio) * [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "previous chapter") * **Next:** [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * **On this page:** * [Installation](https://docs.sqlalchemy.org/en/14/faq/installation.html#installation) * [I’m getting an error about greenlet not being installed when I try to use asyncio](https://docs.sqlalchemy.org/en/14/faq/installation.html#i-m-getting-an-error-about-greenlet-not-being-installed-when-i-try-to-use-asyncio) Installation[¶](https://docs.sqlalchemy.org/en/14/faq/installation.html#installation "Link to this heading") ============================================================================================================= I’m getting an error about greenlet not being installed when I try to use asyncio[¶](https://docs.sqlalchemy.org/en/14/faq/installation.html#i-m-getting-an-error-about-greenlet-not-being-installed-when-i-try-to-use-asyncio "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The `greenlet` dependency does not install by default for CPU architectures for which `greenlet` does not supply a [pre-built binary wheel](https://pypi.org/project/greenlet/#files) . Notably, **this includes Apple M1**. To install including `greenlet`, add the `asyncio` [setuptools extra](https://packaging.python.org/en/latest/tutorials/installing-packages/#installing-setuptools-extras) to the `pip install` command: pip install sqlalchemy\[asyncio\] For more background, see [Asyncio Platform Installation Notes (Including Apple M1)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#asyncio-install) . See also [Asyncio Platform Installation Notes (Including Apple M1)](https://docs.sqlalchemy.org/en/14/orm/extensions/asyncio.html#asyncio-install) Previous: [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "previous chapter") Next: [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # MetaData / Schema — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * [Installation](https://docs.sqlalchemy.org/en/14/faq/installation.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html) * **MetaData / Schema**[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#) * [My program is hanging when I say `table.drop()` / `metadata.drop_all()`](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#my-program-is-hanging-when-i-say-table-drop-metadata-drop-all) * [Does SQLAlchemy support ALTER TABLE, CREATE VIEW, CREATE TRIGGER, Schema Upgrade Functionality?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#does-sqlalchemy-support-alter-table-create-view-create-trigger-schema-upgrade-functionality) * [How can I sort Table objects in order of their dependency?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-sort-table-objects-in-order-of-their-dependency) * [How can I get the CREATE TABLE/ DROP TABLE output as a string?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-get-the-create-table-drop-table-output-as-a-string) * [How can I subclass Table/Column to provide certain behaviors/configurations?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-subclass-table-column-to-provide-certain-behaviors-configurations) * [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html "previous chapter") * **Next:** [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * **On this page:** * [MetaData / Schema](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#metadata-schema) * [My program is hanging when I say `table.drop()` / `metadata.drop_all()`](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#my-program-is-hanging-when-i-say-table-drop-metadata-drop-all) * [Does SQLAlchemy support ALTER TABLE, CREATE VIEW, CREATE TRIGGER, Schema Upgrade Functionality?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#does-sqlalchemy-support-alter-table-create-view-create-trigger-schema-upgrade-functionality) * [How can I sort Table objects in order of their dependency?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-sort-table-objects-in-order-of-their-dependency) * [How can I get the CREATE TABLE/ DROP TABLE output as a string?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-get-the-create-table-drop-table-output-as-a-string) * [How can I subclass Table/Column to provide certain behaviors/configurations?](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-subclass-table-column-to-provide-certain-behaviors-configurations) MetaData / Schema[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#metadata-schema "Link to this heading") ======================================================================================================================== My program is hanging when I say `table.drop()` / `metadata.drop_all()`[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#my-program-is-hanging-when-i-say-table-drop-metadata-drop-all "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This usually corresponds to two conditions: 1. using PostgreSQL, which is really strict about table locks, and 2. you have a connection still open which contains locks on the table and is distinct from the connection being used for the DROP statement. Heres the most minimal version of the pattern: connection \= engine.connect() result \= connection.execute(mytable.select()) mytable.drop(engine) Above, a connection pool connection is still checked out; furthermore, the result object above also maintains a link to this connection. If “implicit execution” is used, the result will hold this connection opened until the result object is closed or all rows are exhausted. The call to `mytable.drop(engine)` attempts to emit DROP TABLE on a second connection procured from the [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") which will lock. The solution is to close out all connections before emitting DROP TABLE: connection \= engine.connect() result \= connection.execute(mytable.select()) \# fully read result sets result.fetchall() \# close connections connection.close() \# now locks are removed mytable.drop(engine) Does SQLAlchemy support ALTER TABLE, CREATE VIEW, CREATE TRIGGER, Schema Upgrade Functionality?[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#does-sqlalchemy-support-alter-table-create-view-create-trigger-schema-upgrade-functionality "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- General ALTER support isn’t present in SQLAlchemy directly. For special DDL on an ad-hoc basis, the [`DDL`](https://docs.sqlalchemy.org/en/14/core/ddl.html#sqlalchemy.schema.DDL "sqlalchemy.schema.DDL") and related constructs can be used. See [Customizing DDL](https://docs.sqlalchemy.org/en/14/core/ddl.html) for a discussion on this subject. A more comprehensive option is to use schema migration tools, such as Alembic or SQLAlchemy-Migrate; see [Altering Database Objects through Migrations](https://docs.sqlalchemy.org/en/14/core/metadata.html#schema-migrations) for discussion on this. How can I sort Table objects in order of their dependency?[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-sort-table-objects-in-order-of-their-dependency "Link to this heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This is available via the [`MetaData.sorted_tables`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.MetaData.sorted_tables "sqlalchemy.schema.MetaData.sorted_tables") function: metadata\_obj \= MetaData() \# ... add Table objects to metadata ti \= metadata\_obj.sorted\_tables: for t in ti: print(t) How can I get the CREATE TABLE/ DROP TABLE output as a string?[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-get-the-create-table-drop-table-output-as-a-string "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Modern SQLAlchemy has clause constructs which represent DDL operations. These can be rendered to strings like any other SQL expression: from sqlalchemy.schema import CreateTable print(CreateTable(mytable)) To get the string specific to a certain engine: print(CreateTable(mytable).compile(engine)) There’s also a special form of [`Engine`](https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.Engine "sqlalchemy.engine.Engine") available via [`create_mock_engine()`](https://docs.sqlalchemy.org/en/14/core/engines.html#sqlalchemy.create_mock_engine "sqlalchemy.create_mock_engine") that allows one to dump an entire metadata creation sequence as a string, using this recipe: from sqlalchemy import create\_mock\_engine def dump(sql, \*multiparams, \*\*params): print(sql.compile(dialect\=engine.dialect)) engine \= create\_mock\_engine("postgresql://", dump) metadata\_obj.create\_all(engine, checkfirst\=False) The [Alembic](https://alembic.sqlalchemy.org/) tool also supports an “offline” SQL generation mode that renders database migrations as SQL scripts. How can I subclass Table/Column to provide certain behaviors/configurations?[¶](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html#how-can-i-subclass-table-column-to-provide-certain-behaviors-configurations "Link to this heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") and [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") are not good targets for direct subclassing. However, there are simple ways to get on-construction behaviors using creation functions, and behaviors related to the linkages between schema objects such as constraint conventions or naming conventions using attachment events. An example of many of these techniques can be seen at [Naming Conventions](https://www.sqlalchemy.org/trac/wiki/UsageRecipes/NamingConventions) . Previous: [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html "previous chapter") Next: [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # Third Party Integration Issues — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * [Installation](https://docs.sqlalchemy.org/en/14/faq/installation.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html) * [ORM Configuration](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html) * [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html) * **Third Party Integration Issues**[¶](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#) * [I’m getting errors related to “`numpy.int64`”, “`numpy.bool_`”, etc.](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#i-m-getting-errors-related-to-numpy-int64-numpy-bool-etc) * [SQL expression for WHERE/HAVING role expected, got True](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#sql-expression-for-where-having-role-expected-got-true) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html "previous chapter") * **Next:** [Error Messages](https://docs.sqlalchemy.org/en/14/errors.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * **On this page:** * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#third-party-integration-issues) * [I’m getting errors related to “`numpy.int64`”, “`numpy.bool_`”, etc.](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#i-m-getting-errors-related-to-numpy-int64-numpy-bool-etc) * [SQL expression for WHERE/HAVING role expected, got True](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#sql-expression-for-where-having-role-expected-got-true) Third Party Integration Issues[¶](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#third-party-integration-issues "Link to this heading") =============================================================================================================================================== I’m getting errors related to “`numpy.int64`”, “`numpy.bool_`”, etc.[¶](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#i-m-getting-errors-related-to-numpy-int64-numpy-bool-etc "Link to this heading") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The [numpy](https://numpy.org/) package has its own numeric datatypes that extend from Python’s numeric types, but contain some behaviors that in some cases make them impossible to reconcile with some of SQLAlchemy’s behaviors, as well as in some cases with those of the underlying DBAPI driver in use. Two errors which can occur are `ProgrammingError: can't adapt type 'numpy.int64'` on a backend such as psycopg2, and `ArgumentError: SQL expression object expected, got object of type instead`; in more recent versions of SQLAlchemy this may be `ArgumentError: SQL expression for WHERE/HAVING role expected, got True`. In the first case, the issue is due to psycopg2 not having an appropriate lookup entry for the `int64` datatype such that it is not accepted directly by queries. This may be illustrated from code based on the following: import numpy class A(Base): \_\_tablename\_\_ \= "a" id \= Column(Integer, primary\_key\=True) data \= Column(Integer) \# .. later session.add(A(data\=numpy.int64(10))) session.commit() In the latter case, the issue is due to the `numpy.int64` datatype overriding the `__eq__()` method and enforcing that the return type of an expression is `numpy.True` or `numpy.False`, which breaks SQLAlchemy’s expression language behavior that expects to return [`ColumnElement`](https://docs.sqlalchemy.org/en/14/core/sqlelement.html#sqlalchemy.sql.expression.ColumnElement "sqlalchemy.sql.expression.ColumnElement") expressions from Python equality comparisons: \>>> import numpy \>>> from sqlalchemy import column, Integer \>>> print(column("x", Integer) \== numpy.int64(10)) \# works x = :x\_1 \>>> print(numpy.int64(10) \== column("x", Integer)) \# breaks False These errors are both solved in the same way, which is that special numpy datatypes need to be replaced with regular Python values. Examples include applying the Python `int()` function to types like `numpy.int32` and `numpy.int64` and the Python `float()` function to `numpy.float32`: data \= numpy.int64(10) session.add(A(data\=int(data))) result \= session.execute(select(A.data).where(int(data) \== A.data)) session.commit() SQL expression for WHERE/HAVING role expected, got True[¶](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#sql-expression-for-where-having-role-expected-got-true "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ See [I’m getting errors related to “numpy.int64”, “numpy.bool\_”, etc.](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html#numpy-int64) . Previous: [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html "previous chapter") Next: [Error Messages](https://docs.sqlalchemy.org/en/14/errors.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT --- # ORM Configuration — SQLAlchemy 1.4 Documentation Release: 1.4.54 legacy version | Release Date: September 5, 2024 [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) ============================================================================= ### [SQLAlchemy 1.4 Documentation](https://docs.sqlalchemy.org/en/14/index.html) legacy version [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) Search terms: ### [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * [Installation](https://docs.sqlalchemy.org/en/14/faq/installation.html) * [Connections / Engines](https://docs.sqlalchemy.org/en/14/faq/connections.html) * [MetaData / Schema](https://docs.sqlalchemy.org/en/14/faq/metadata_schema.html) * [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html) * **ORM Configuration**[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#) * [How do I map a table that has no primary key?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-map-a-table-that-has-no-primary-key) * [How do I configure a Column that is a Python reserved word or similar?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-configure-a-column-that-is-a-python-reserved-word-or-similar) * [How do I get a list of all columns, relationships, mapped attributes, etc. given a mapped class?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-get-a-list-of-all-columns-relationships-mapped-attributes-etc-given-a-mapped-class) * [I’m getting a warning or error about “Implicitly combining column X under attribute Y”](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#i-m-getting-a-warning-or-error-about-implicitly-combining-column-x-under-attribute-y) * [I’m using Declarative and setting primaryjoin/secondaryjoin using an `and_()` or `or_()`, and I am getting an error message about foreign keys.](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#i-m-using-declarative-and-setting-primaryjoin-secondaryjoin-using-an-and-or-or-and-i-am-getting-an-error-message-about-foreign-keys) * [Why is `ORDER BY` recommended with `LIMIT` (especially with `subqueryload()`)?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#why-is-order-by-recommended-with-limit-especially-with-subqueryload) * [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html) * [Sessions / Queries](https://docs.sqlalchemy.org/en/14/faq/sessions.html) * [Third Party Integration Issues](https://docs.sqlalchemy.org/en/14/faq/thirdparty.html) #### Project Versions * [1.4.54](https://docs.sqlalchemy.org/en/14/index.html) Search terms: [Home](https://docs.sqlalchemy.org/en/14/index.html) | [Download this Documentation](https://docs.sqlalchemy.org/14/sqlalchemy_14.zip) * **Previous:** [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html "previous chapter") * **Next:** [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html "next chapter") * **Up:** [Home](https://docs.sqlalchemy.org/en/14/index.html) * [Frequently Asked Questions](https://docs.sqlalchemy.org/en/14/faq/index.html "Frequently Asked Questions") * **On this page:** * [ORM Configuration](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#orm-configuration) * [How do I map a table that has no primary key?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-map-a-table-that-has-no-primary-key) * [How do I configure a Column that is a Python reserved word or similar?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-configure-a-column-that-is-a-python-reserved-word-or-similar) * [How do I get a list of all columns, relationships, mapped attributes, etc. given a mapped class?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-get-a-list-of-all-columns-relationships-mapped-attributes-etc-given-a-mapped-class) * [I’m getting a warning or error about “Implicitly combining column X under attribute Y”](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#i-m-getting-a-warning-or-error-about-implicitly-combining-column-x-under-attribute-y) * [I’m using Declarative and setting primaryjoin/secondaryjoin using an `and_()` or `or_()`, and I am getting an error message about foreign keys.](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#i-m-using-declarative-and-setting-primaryjoin-secondaryjoin-using-an-and-or-or-and-i-am-getting-an-error-message-about-foreign-keys) * [Why is `ORDER BY` recommended with `LIMIT` (especially with `subqueryload()`)?](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#why-is-order-by-recommended-with-limit-especially-with-subqueryload) ORM Configuration[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#orm-configuration "Link to this heading") =========================================================================================================================== How do I map a table that has no primary key?[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-map-a-table-that-has-no-primary-key "Link to this heading") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- The SQLAlchemy ORM, in order to map to a particular table, needs there to be at least one column denoted as a primary key column; multiple-column, i.e. composite, primary keys are of course entirely feasible as well. These columns do **not** need to be actually known to the database as primary key columns, though it’s a good idea that they are. It’s only necessary that the columns _behave_ as a primary key does, e.g. as a unique and not nullable identifier for a row. Most ORMs require that objects have some kind of primary key defined because the object in memory must correspond to a uniquely identifiable row in the database table; at the very least, this allows the object can be targeted for UPDATE and DELETE statements which will affect only that object’s row and no other. However, the importance of the primary key goes far beyond that. In SQLAlchemy, all ORM-mapped objects are at all times linked uniquely within a [`Session`](https://docs.sqlalchemy.org/en/14/orm/session_api.html#sqlalchemy.orm.Session "sqlalchemy.orm.Session") to their specific database row using a pattern called the [identity map](https://docs.sqlalchemy.org/en/14/glossary.html#term-identity-map) , a pattern that’s central to the unit of work system employed by SQLAlchemy, and is also key to the most common (and not-so-common) patterns of ORM usage. Note It’s important to note that we’re only talking about the SQLAlchemy ORM; an application which builds on Core and deals only with [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") objects, [`select()`](https://docs.sqlalchemy.org/en/14/core/selectable.html#sqlalchemy.sql.expression.select "sqlalchemy.sql.expression.select") constructs and the like, **does not** need any primary key to be present on or associated with a table in any way (though again, in SQL, all tables should really have some kind of primary key, lest you need to actually update or delete specific rows). In almost all cases, a table does have a so-called [candidate key](https://docs.sqlalchemy.org/en/14/glossary.html#term-candidate-key) , which is a column or series of columns that uniquely identify a row. If a table truly doesn’t have this, and has actual fully duplicate rows, the table is not corresponding to [first normal form](https://en.wikipedia.org/wiki/First_normal_form) and cannot be mapped. Otherwise, whatever columns comprise the best candidate key can be applied directly to the mapper: class SomeClass(Base): \_\_table\_\_ \= some\_table\_with\_no\_pk \_\_mapper\_args\_\_ \= { "primary\_key": \[some\_table\_with\_no\_pk.c.uid, some\_table\_with\_no\_pk.c.bar\] } Better yet is when using fully declared table metadata, use the `primary_key=True` flag on those columns: class SomeClass(Base): \_\_tablename\_\_ \= "some\_table\_with\_no\_pk" uid \= Column(Integer, primary\_key\=True) bar \= Column(String, primary\_key\=True) All tables in a relational database should have primary keys. Even a many-to-many association table - the primary key would be the composite of the two association columns: CREATE TABLE my\_association ( user\_id INTEGER REFERENCES user(id), account\_id INTEGER REFERENCES account(id), PRIMARY KEY (user\_id, account\_id) ) How do I configure a Column that is a Python reserved word or similar?[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-configure-a-column-that-is-a-python-reserved-word-or-similar "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Column-based attributes can be given any name desired in the mapping. See [Naming Columns Distinctly from Attribute Names](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#mapper-column-distinct-names) . How do I get a list of all columns, relationships, mapped attributes, etc. given a mapped class?[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#how-do-i-get-a-list-of-all-columns-relationships-mapped-attributes-etc-given-a-mapped-class "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ This information is all available from the [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") object. To get at the [`Mapper`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper "sqlalchemy.orm.Mapper") for a particular mapped class, call the [`inspect()`](https://docs.sqlalchemy.org/en/14/core/inspection.html#sqlalchemy.inspect "sqlalchemy.inspect") function on it: from sqlalchemy import inspect mapper \= inspect(MyClass) From there, all information about the class can be accessed through properties such as: * [`Mapper.attrs`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.attrs "sqlalchemy.orm.Mapper.attrs") - a namespace of all mapped attributes. The attributes themselves are instances of [`MapperProperty`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.MapperProperty "sqlalchemy.orm.MapperProperty") , which contain additional attributes that can lead to the mapped SQL expression or column, if applicable. * [`Mapper.column_attrs`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.column_attrs "sqlalchemy.orm.Mapper.column_attrs") - the mapped attribute namespace limited to column and SQL expression attributes. You might want to use [`Mapper.columns`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.columns "sqlalchemy.orm.Mapper.columns") to get at the [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") objects directly. * [`Mapper.relationships`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.relationships "sqlalchemy.orm.Mapper.relationships") - namespace of all [`RelationshipProperty`](https://docs.sqlalchemy.org/en/14/orm/internals.html#sqlalchemy.orm.RelationshipProperty "sqlalchemy.orm.RelationshipProperty") attributes. * [`Mapper.all_orm_descriptors`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.all_orm_descriptors "sqlalchemy.orm.Mapper.all_orm_descriptors") - namespace of all mapped attributes, plus user-defined attributes defined using systems such as [`hybrid_property`](https://docs.sqlalchemy.org/en/14/orm/extensions/hybrid.html#sqlalchemy.ext.hybrid.hybrid_property "sqlalchemy.ext.hybrid.hybrid_property") , [`AssociationProxy`](https://docs.sqlalchemy.org/en/14/orm/extensions/associationproxy.html#sqlalchemy.ext.associationproxy.AssociationProxy "sqlalchemy.ext.associationproxy.AssociationProxy") and others. * [`Mapper.columns`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.columns "sqlalchemy.orm.Mapper.columns") - A namespace of [`Column`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Column "sqlalchemy.schema.Column") objects and other named SQL expressions associated with the mapping. * [`Mapper.mapped_table`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.mapped_table "sqlalchemy.orm.Mapper.mapped_table") - The [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") or other selectable to which this mapper is mapped. * [`Mapper.local_table`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.local_table "sqlalchemy.orm.Mapper.local_table") - The [`Table`](https://docs.sqlalchemy.org/en/14/core/metadata.html#sqlalchemy.schema.Table "sqlalchemy.schema.Table") that is “local” to this mapper; this differs from [`Mapper.mapped_table`](https://docs.sqlalchemy.org/en/14/orm/mapping_api.html#sqlalchemy.orm.Mapper.mapped_table "sqlalchemy.orm.Mapper.mapped_table") in the case of a mapper mapped using inheritance to a composed selectable. I’m getting a warning or error about “Implicitly combining column X under attribute Y”[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#i-m-getting-a-warning-or-error-about-implicitly-combining-column-x-under-attribute-y "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- This condition refers to when a mapping contains two columns that are being mapped under the same attribute name due to their name, but there’s no indication that this is intentional. A mapped class needs to have explicit names for every attribute that is to store an independent value; when two columns have the same name and aren’t disambiguated, they fall under the same attribute and the effect is that the value from one column is **copied** into the other, based on which column was assigned to the attribute first. This behavior is often desirable and is allowed without warning in the case where the two columns are linked together via a foreign key relationship within an inheritance mapping. When the warning or exception occurs, the issue can be resolved by either assigning the columns to differently-named attributes, or if combining them together is desired, by using [`column_property()`](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property "sqlalchemy.orm.column_property") to make this explicit. Given the example as follows: from sqlalchemy import Integer, Column, ForeignKey from sqlalchemy.ext.declarative import declarative\_base Base \= declarative\_base() class A(Base): \_\_tablename\_\_ \= "a" id \= Column(Integer, primary\_key\=True) class B(A): \_\_tablename\_\_ \= "b" id \= Column(Integer, primary\_key\=True) a\_id \= Column(Integer, ForeignKey("a.id")) As of SQLAlchemy version 0.9.5, the above condition is detected, and will warn that the `id` column of `A` and `B` is being combined under the same-named attribute `id`, which above is a serious issue since it means that a `B` object’s primary key will always mirror that of its `A`. A mapping which resolves this is as follows: class A(Base): \_\_tablename\_\_ \= "a" id \= Column(Integer, primary\_key\=True) class B(A): \_\_tablename\_\_ \= "b" b\_id \= Column("id", Integer, primary\_key\=True) a\_id \= Column(Integer, ForeignKey("a.id")) Suppose we did want `A.id` and `B.id` to be mirrors of each other, despite the fact that `B.a_id` is where `A.id` is related. We could combine them together using [`column_property()`](https://docs.sqlalchemy.org/en/14/orm/mapping_columns.html#sqlalchemy.orm.column_property "sqlalchemy.orm.column_property") : class A(Base): \_\_tablename\_\_ \= "a" id \= Column(Integer, primary\_key\=True) class B(A): \_\_tablename\_\_ \= "b" \# probably not what you want, but this is a demonstration id \= column\_property(Column(Integer, primary\_key\=True), A.id) a\_id \= Column(Integer, ForeignKey("a.id")) I’m using Declarative and setting primaryjoin/secondaryjoin using an `and_()` or `or_()`, and I am getting an error message about foreign keys.[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#i-m-using-declarative-and-setting-primaryjoin-secondaryjoin-using-an-and-or-or-and-i-am-getting-an-error-message-about-foreign-keys "Link to this heading") --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Are you doing this?: class MyClass(Base): \# .... foo \= relationship( "Dest", primaryjoin\=and\_("MyClass.id==Dest.foo\_id", "MyClass.foo==Dest.bar") ) That’s an `and_()` of two string expressions, which SQLAlchemy cannot apply any mapping towards. Declarative allows [`relationship()`](https://docs.sqlalchemy.org/en/14/orm/relationship_api.html#sqlalchemy.orm.relationship "sqlalchemy.orm.relationship") arguments to be specified as strings, which are converted into expression objects using `eval()`. But this doesn’t occur inside of an `and_()` expression - it’s a special operation declarative applies only to the _entirety_ of what’s passed to primaryjoin or other arguments as a string: class MyClass(Base): \# .... foo \= relationship( "Dest", primaryjoin\="and\_(MyClass.id==Dest.foo\_id, MyClass.foo==Dest.bar)" ) Or if the objects you need are already available, skip the strings: class MyClass(Base): \# .... foo \= relationship( Dest, primaryjoin\=and\_(MyClass.id \== Dest.foo\_id, MyClass.foo \== Dest.bar) ) The same idea applies to all the other arguments, such as `foreign_keys`: \# wrong ! foo \= relationship(Dest, foreign\_keys\=\["Dest.foo\_id", "Dest.bar\_id"\]) \# correct ! foo \= relationship(Dest, foreign\_keys\="\[Dest.foo\_id, Dest.bar\_id\]") \# also correct ! foo \= relationship(Dest, foreign\_keys\=\[Dest.foo\_id, Dest.bar\_id\]) \# if you're using columns from the class that you're inside of, just use the column objects ! class MyClass(Base): foo\_id \= Column(...) bar\_id \= Column(...) \# ... foo \= relationship(Dest, foreign\_keys\=\[foo\_id, bar\_id\]) Why is `ORDER BY` recommended with `LIMIT` (especially with `subqueryload()`)?[¶](https://docs.sqlalchemy.org/en/14/faq/ormconfiguration.html#why-is-order-by-recommended-with-limit-especially-with-subqueryload "Link to this heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ When ORDER BY is not used for a SELECT statement that returns rows, the relational database is free to returned matched rows in any arbitrary order. While this ordering very often corresponds to the natural order of rows within a table, this is not the case for all databases and all queries. The consequence of this is that any query that limits rows using `LIMIT` or `OFFSET`, or which merely selects the first row of the result, discarding the rest, will not be deterministic in terms of what result row is returned, assuming there’s more than one row that matches the query’s criteria. While we may not notice this for simple queries on databases that usually returns rows in their natural order, it becomes more of an issue if we also use [`subqueryload()`](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.subqueryload "sqlalchemy.orm.subqueryload") to load related collections, and we may not be loading the collections as intended. SQLAlchemy implements [`subqueryload()`](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.subqueryload "sqlalchemy.orm.subqueryload") by issuing a separate query, the results of which are matched up to the results from the first query. We see two queries emitted like this: \>>> session.query(User).options(subqueryload(User.addresses)).all() \-- the "main" query SELECT users.id AS users\_id FROM users \-- the "load" query issued by subqueryload SELECT addresses.id AS addresses\_id, addresses.user\_id AS addresses\_user\_id, anon\_1.users\_id AS anon\_1\_users\_id FROM (SELECT users.id AS users\_id FROM users) AS anon\_1 JOIN addresses ON anon\_1.users\_id \= addresses.user\_id ORDER BY anon\_1.users\_id The second query embeds the first query as a source of rows. When the inner query uses `OFFSET` and/or `LIMIT` without ordering, the two queries may not see the same results: \>>> user \= session.query(User).options(subqueryload(User.addresses)).first() \-- the "main" query SELECT users.id AS users\_id FROM users LIMIT 1 \-- the "load" query issued by subqueryload SELECT addresses.id AS addresses\_id, addresses.user\_id AS addresses\_user\_id, anon\_1.users\_id AS anon\_1\_users\_id FROM (SELECT users.id AS users\_id FROM users LIMIT 1) AS anon\_1 JOIN addresses ON anon\_1.users\_id \= addresses.user\_id ORDER BY anon\_1.users\_id Depending on database specifics, there is a chance we may get a result like the following for the two queries: \-- query #1 +--------+ |users\_id| +--------+ | 1| +--------+ \-- query #2 +------------+-----------------+---------------+ |addresses\_id|addresses\_user\_id|anon\_1\_users\_id| +------------+-----------------+---------------+ | 3| 2| 2| +------------+-----------------+---------------+ | 4| 2| 2| +------------+-----------------+---------------+ Above, we receive two `addresses` rows for `user.id` of 2, and none for 1. We’ve wasted two rows and failed to actually load the collection. This is an insidious error because without looking at the SQL and the results, the ORM will not show that there’s any issue; if we access the `addresses` for the `User` we have, it will emit a lazy load for the collection and we won’t see that anything actually went wrong. The solution to this problem is to always specify a deterministic sort order, so that the main query always returns the same set of rows. This generally means that you should [`Query.order_by()`](https://docs.sqlalchemy.org/en/14/orm/query.html#sqlalchemy.orm.Query.order_by "sqlalchemy.orm.Query.order_by") on a unique column on the table. The primary key is a good choice for this: session.query(User).options(subqueryload(User.addresses)).order\_by(User.id).first() Note that the [`joinedload()`](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.joinedload "sqlalchemy.orm.joinedload") eager loader strategy does not suffer from the same problem because only one query is ever issued, so the load query cannot be different from the main query. Similarly, the [`selectinload()`](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#sqlalchemy.orm.selectinload "sqlalchemy.orm.selectinload") eager loader strategy also does not have this issue as it links its collection loads directly to primary key values just loaded. See also [The Importance of Ordering](https://docs.sqlalchemy.org/en/14/orm/loading_relationships.html#subqueryload-ordering) Previous: [SQL Expressions](https://docs.sqlalchemy.org/en/14/faq/sqlexpressions.html "previous chapter") Next: [Performance](https://docs.sqlalchemy.org/en/14/faq/performance.html "next chapter") © [Copyright](https://docs.sqlalchemy.org/en/14/copyright.html) 2007-2025, the SQLAlchemy authors and contributors. **flambé!** the dragon and **_The Alchemist_** image designs created and generously donated by [Rotem Yaari](https://github.com/vmalloc) . Created using [Sphinx](https://www.sphinx-doc.org/) 8.2.3. Documentation last generated: Sat 16 Aug 2025 10:10:45 AM EDT ---