Python PEP-249 Conformity
Note
Conformance is a work in progress. This page reflects the current implementation status to provide transparent insight into Opteryx’s capabilities and development progress.
Opteryx is not a full DBMS and therefore aims only for conformance with PEP-249 (Python Database API Specification v2.0) for the subset of features it supports—primarily those related to querying data.
Overview
The implementation prioritizes compatibility with data analysis workflows, providing a familiar Python database interface for data scientists and analysts working with distributed data sources. As a read-only query engine, Opteryx does not support transactional operations like inserts, updates, or deletes.
Conformance Status
Module Interface
| Feature | Imperative | Supported |
|---|---|---|
| Module Interface | uknown | |
connect constructor |
must | unknown |
apilevel global |
must | unknown |
threadsafety global |
must | unknown |
paramstyle global |
must | unknown |
Warning exception |
should | unknown |
Error exception |
should | unknown |
InterfaceError exception |
should | unknown |
DatabaseError exception |
should | unknown |
DataError exception |
should | unknown |
OperationalError exception |
should | unknown |
IntegrityError exception |
should | unknown |
InternalError exception |
should | unknown |
ProgrammingError exception |
should | unknown |
NotSupportedError exception |
should | unknown |
| Connection Object | unknown | |
close method |
should | unknown |
commit method |
should | unknown |
rollback method |
should | unknown |
cursor method |
should | unknown |
messages attribute |
optional | no |
errorhandler attribute |
optional | no |
| Cursor Object | unknown | |
description attribute |
should | yes |
rowcount attribute |
should | yes |
callproc method |
optional | n/a |
close method |
should | unknown |
execute method |
should | yes |
executemany method |
should | no |
fetchmany method |
should | yes |
fetchall method |
should | yes |
nextset method |
optional | n/a |
arraysize attribute |
should | yes |
setinputsizes method |
should | no |
setoutputsize method |
should | no |
rownumber attribute |
optional | unknown |
connection attribute |
optional | unknown |
scroll method |
optional | no |
messages attribute |
optional | no |
next method |
optional | unknown |
__iter__ method |
optional | no |
lastrowid attribute |
optional | no |
errorhandler attribute |
optional | no |
| Type Constructors | unknown | |
Date |
optional | unknown |
Time |
optional | unknown |
Timestamp |
optional | unknown |
DateFromTicks |
optional | unknown |
TimeFromTicks |
optional | unknown |
TimestampFromTicks |
optional | unknown |
Binary |
optional | unknown |
STRING |
optional | unknown |
BINARY |
optional | unknown |
NUMBER |
optional | unknown |
DATETIME |
optional | unknown |
ROWID |
optional | unknown |
| Two-Phase Commit Extensions | n/a | |
xid method |
optional | n/a |
tpc_begin method |
optional | n/a |
tpc_prepare method |
optional | n/a |
tpc_commit method |
optional | n/a |
tpc_rollback method |
optional | n/a |
tpc_recover method |
optional | n/a |
Support statuses in this table:
- yes The feature is supported and conformance is part of the test suite.
- no The feature is not supported.
- partial Some features are supported.
- n/a The feature relates to functionality not supported by Opteryx (e.g., transactional operations).
- unknown No test exists to confirm conformance.
Key Supported Features
Opteryx implements the core features needed for read-only data analysis:
- Connection management via
connect()constructor - Cursor operations including
execute(),fetchall(),fetchmany(), andfetchone() - Result metadata through
descriptionandrowcountattributes - Parameterized queries for secure SQL execution
- Iterator protocol for efficient result processing
Features Not Supported
As a read-only query engine, Opteryx does not support:
- Transaction management (
commit,rollback, two-phase commit) - Data modification (
executemanyfor bulk operations) - Cursor positioning (
scroll,setinputsizes,setoutputsize)
These limitations align with Opteryx's design as an analytical query engine focused on reading and processing data rather than managing database state.