Skip to content

Support Matrix

Compatibility and feature support for sqlalchemy-cubrid releases.


Version Compatibility

SQLAlchemy

SQLAlchemy Version Status Notes
2.0.x ✅ Supported Minimum required version
2.1.x ✅ Supported Latest tested
≥ 2.2 ❌ Not supported Code uses private SA internals (see below)
< 2.0 ❌ Not supported SA 1.x API removed

Why <2.2? The dialect accesses private SQLAlchemy APIs that may change without notice:

Private API Location Usage
select._limit_clause compiler.py:81 LIMIT clause compilation
select._offset_clause compiler.py:82 OFFSET clause compilation
select._for_update_arg compiler.py:71 FOR UPDATE clause
coercions._is_literal compiler.py:144 Literal value detection
BindParameter._with_binary_element_type compiler.py:150-151 Binary parameter handling

These will be migrated to public APIs when SA 2.2 is released.

Python

Python Version Status
3.10 ✅ Supported
3.11 ✅ Supported
3.12 ✅ Supported
3.13 ✅ Supported
3.14 ✅ Supported
< 3.10 ❌ Not supported

CUBRID Server

CUBRID Version Status Notes
11.4 ✅ Supported Latest stable
11.2 ✅ Supported
11.0 ✅ Supported
10.2 ✅ Supported Minimum tested version
< 10.2 ❌ Not supported

Drivers

Driver Install URL Scheme Status
CUBRID-Python (CCI) pip install "sqlalchemy-cubrid[cubrid]" cubrid:// ✅ Supported
pycubrid (Pure Python) pip install "sqlalchemy-cubrid[pycubrid]" cubrid+pycubrid:// ✅ Supported

Feature Support

SQLAlchemy Core

Feature Status Notes
create_engine() Both cubrid:// and cubrid+pycubrid:// schemes
SQL compilation SELECT, INSERT, UPDATE, DELETE, JOIN, subqueries
DDL compilation CREATE TABLE, ALTER, DROP, AUTO_INCREMENT, COMMENT
Type system All CUBRID types mapped (see below)
Schema reflection Tables, columns, PKs, FKs, indexes, unique constraints, comments
Transaction management commit, rollback, savepoint (no RELEASE SAVEPOINT)
Connection pooling SA pool with pool_pre_ping, disconnect detection
Statement caching supports_statement_cache = True

SQLAlchemy ORM

Feature Status Notes
Declarative models
Relationships
Session / Unit of Work
Query API
Hybrid properties

Alembic

Feature Status Notes
Auto-discovery alembic.ddl entry point
Schema migrations CREATE, ALTER, DROP
Autogenerate Including collection types (SET, MULTISET, SEQUENCE)
Transactional DDL CUBRID auto-commits DDL

DML Extensions

Feature Status Notes
ON DUPLICATE KEY UPDATE Via sqlalchemy_cubrid.insert()
MERGE statement Via sqlalchemy_cubrid.merge()
REPLACE INTO Via sqlalchemy_cubrid.replace()
GROUP_CONCAT
TRUNCATE TABLE Autocommit detected
FOR UPDATE Including OF clause
Recursive CTE WITH RECURSIVE (CUBRID 11.x+)
Window functions ROW_NUMBER, RANK, LAG, LEAD, etc.
Index hints Via SA with_hint() / suffix_with()

Known Limitations

Feature Status Notes
JSON type CUBRID has JSON since 10.2, but not yet mapped in dialect
Native Enum CUBRID lacks ENUM — use VARCHAR + CHECK constraint
Interval type Not supported by CUBRID
RETURNING clause INSERT/UPDATE/DELETE ... RETURNING not supported
BOOLEAN ⚠️ Mapped to SMALLINT (0/1) — no native boolean
Sequences CUBRID uses AUTO_INCREMENT only
CHECK constraint reflection get_check_constraints() returns empty list
Multi-schema CUBRID has single-schema model
RELEASE SAVEPOINT No-op (CUBRID doesn't support it)
Lateral joins CUBRID lacks LATERAL subquery support
Full-text search No MATCH … AGAINST syntax
Async DBAPI CUBRID drivers have no async support

Type Mapping

CUBRID Type SQLAlchemy Type Python Type
INTEGER sa.Integer int
BIGINT sa.BigInteger int
SMALLINT sa.SmallInteger int
FLOAT sa.Float float
DOUBLE sa.Float float
NUMERIC / DECIMAL sa.Numeric decimal.Decimal
MONETARY MONETARY float
CHAR sa.CHAR str
VARCHAR sa.String str
NCHAR NCHAR str
NVARCHAR NVARCHAR str
STRING STRING str
DATE sa.Date datetime.date
TIME sa.Time datetime.time
DATETIME sa.DateTime datetime.datetime
TIMESTAMP sa.TIMESTAMP datetime.datetime
BIT BIT bytes
BLOB sa.LargeBinary bytes
CLOB CLOB str
SET SET Collection
MULTISET MULTISET Collection
SEQUENCE SEQUENCE Collection
OBJECT OBJECT OID reference

CI Matrix

Dimension Values
Python (offline) 3.10, 3.11, 3.12, 3.13
Python (integration) 3.10, 3.12
CUBRID (integration) 10.2, 11.0, 11.2, 11.4

Test Coverage

Metric Value
Offline tests 426
Integration tests 29
Line coverage 99.47%
Coverage threshold 95% (CI-enforced)

See also: Connection Guide · Type System · Feature Support · Driver Compatibility