# Feature catalog — sqlalchemy/sqlalchemy

> Canonical page: https://codevetter.com/unpack/sqlalchemy/feature-catalog

# Feature catalog — sqlalchemy/sqlalchemy

Scanned commit 890d62f4337fe4af1afc36358fb536cf754fc231 (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Users interact through Python statement, schema, connection, mapping, and session APIs. Core supports compiled expressions and direct driver SQL, with results returned through row and scalar interfaces. ORM features include several mapping styles, object persistence, identity reuse, and relationship loading. Async connections add awaited execution and streaming over the same underlying engine architecture; the catalog groups the inspected capabilities rather than claiming exhaustive API coverage.
- Connection.execute accepts executable Select, Insert, Update, Delete, TextClause, and DDL constructs, with dictionaries or sequences of dictionaries supplying bound parameters. — [lib/sqlalchemy/engine/base.py#L1404-L1432](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/engine/base.py#L1404-L1432)
- exec_driver_sql sends SQL strings directly to the DBAPI without compilation and requires parameters in the driver's own paramstyle. — [lib/sqlalchemy/engine/base.py#L1692-L1711](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/engine/base.py#L1692-L1711)
- MetaData.create_all conditionally creates registered tables and accepts a subset; MetaData.reflect loads existing table definitions with schema, view, name-filter, and foreign-key options. — [lib/sqlalchemy/sql/schema.py#L6491-L6536](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/sql/schema.py#L6491-L6536) [lib/sqlalchemy/sql/schema.py#L6674-L6700](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/sql/schema.py#L6674-L6700)
- DeclarativeBase supports typed declarative models, while registry also offers generate_base, mapped decorators, and map_imperatively for classical mappings. — [lib/sqlalchemy/orm/decl_api.py#L856-L884](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/decl_api.py#L856-L884) [lib/sqlalchemy/orm/decl_api.py#L1169-L1191](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/decl_api.py#L1169-L1191)
- Session.add moves transient objects to pending state; flush writes creations, modifications, and deletions, and commit completes the transaction and normally expires objects. — [lib/sqlalchemy/orm/session.py#L3583-L3599](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/session.py#L3583-L3599) [lib/sqlalchemy/orm/session.py#L4504-L4516](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/session.py#L4504-L4516) [lib/sqlalchemy/orm/session.py#L2059-L2080](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/session.py#L2059-L2080)
- ORM row loading reuses objects by identity key; joinedload and subqueryload can require buffering or uniquing that is incompatible with yield_per, with selectinload suggested as an alternative. — [lib/sqlalchemy/orm/loading.py#L124-L132](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/loading.py#L124-L132) [lib/sqlalchemy/orm/loading.py#L1085-L1131](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/orm/loading.py#L1085-L1131)
- Connection context managers return DBAPI resources to the pool and roll back unfinished transactions; async transaction APIs expose commit, rollback, and nested savepoint behavior. — [lib/sqlalchemy/engine/base.py#L3237-L3252](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/engine/base.py#L3237-L3252) [test/ext/asyncio/test_engine.py#L712-L756](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/test/ext/asyncio/test_engine.py#L712-L756)
- create_async_engine requires an async-compatible dialect, AsyncConnection.execute returns buffered results, and streaming uses connection.stream rather than a global server_side_cursors option. — [lib/sqlalchemy/ext/asyncio/engine.py#L76-L106](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/ext/asyncio/engine.py#L76-L106) [lib/sqlalchemy/ext/asyncio/engine.py#L629-L637](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/ext/asyncio/engine.py#L629-L637) [lib/sqlalchemy/ext/asyncio/engine.py#L667-L674](https://github.com/sqlalchemy/sqlalchemy/blob/890d62f4337fe4af1afc36358fb536cf754fc231/lib/sqlalchemy/ext/asyncio/engine.py#L667-L674)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
