graph LR
Base_Engine_Abstraction["Base Engine Abstraction"]
PostgreSQL_CockroachDB_Adapter["PostgreSQL/CockroachDB Adapter"]
SQLite_Adapter["SQLite Adapter"]
Postgres_Transaction["Postgres Transaction"]
SQLite_Transaction["SQLite Transaction"]
Query_Base["Query Base"]
Column_Defaults["Column Defaults"]
PostgreSQL_CockroachDB_Adapter -- "inherits from" --> Base_Engine_Abstraction
SQLite_Adapter -- "inherits from" --> Base_Engine_Abstraction
PostgreSQL_CockroachDB_Adapter -- "depends on" --> Query_Base
SQLite_Adapter -- "depends on" --> Query_Base
PostgreSQL_CockroachDB_Adapter -- "depends on" --> Column_Defaults
SQLite_Adapter -- "depends on" --> Column_Defaults
PostgreSQL_CockroachDB_Adapter -- "instantiates" --> Postgres_Transaction
SQLite_Adapter -- "instantiates" --> SQLite_Transaction
The Database Adapters subsystem provides a standardized interface for connecting to and interacting with various relational database systems (e.g., PostgreSQL, SQLite, CockroachDB). Its primary function is to abstract away database-specific details, allowing the ORM core and query engine to interact with different backends uniformly.
Defines the common interface and abstract methods for all database engines. It handles fundamental operations like connection pool management, database version checks, and general database preparation, ensuring a consistent contract for concrete adapters.
Related Classes/Methods:
Manages database-specific interactions for PostgreSQL and CockroachDB. This includes executing SQL queries (DDL and DML), handling transactions, managing connections, and adapting data types between Python and the database.
Related Classes/Methods:
Handles database-specific interactions for SQLite, including query execution, transaction management, connection handling, and operations specific to file-based databases.
Related Classes/Methods:
Manages the lifecycle of database transactions specifically for PostgreSQL and CockroachDB. It ensures atomicity, consistency, isolation, and durability (ACID properties) for database operations.
Related Classes/Methods:
Manages the lifecycle of database transactions specifically for SQLite. It ensures ACID properties for database operations within the SQLite environment.
Related Classes/Methods:
Provides foundational methods and utilities for obtaining database-agnostic SQL queries. It acts as a bridge between the ORM's high-level query definitions and the database-specific SQL generation.
Related Classes/Methods:
Handles data type conversions and manages default values for columns when interacting with the database. It ensures that Python data types are correctly mapped to database types and vice-versa.
Related Classes/Methods: