- Handle error code
-10735asClientConnectionError - Handle
HANA Database instance resize in progressasDatabaseConnectNotPossibleError
- Release of experimental asyncio support
- Added
NumberOfTransactionsExceededErrortosqlalchemy_hana.errors - Added
DistributedTransactionCommitFailureErrortosqlalchemy_hana.errors
- Handle
TransactionManager is not yet fully initializedasDatabaseConnectNotPossibleError
- Support python 3.14
- Add error handling of session context error
- Removed support for python 3.9
- Removed support for sqlalchemy 1.4
- Added
REAL_VECTORto__all__ofsqlalchemy_hana.types
3.0.2
- Fixed an issue causing issues with sqlalchemy 2.0.40
3.0.1
- Fixed an issue causing sqlalchemy_hana.elements.view to fail with sqlalchemy 2.0.38
- Removed support for Python 3.8
- Support python 3.13
- Added support for the
REAL_VECTORtype incl. various utility function
sqlalchemy_hana.errorswill now raise aStatementExecutionError``if the messages contains ``temp index not exists
- An error during a rollback to a savepoint is ignored, if the transaction was already
rolled back by SAP HANA.
Based on this feature,
sqlalchemy_hana.errorswill no longer extract an inner error if a savepoint was not found.
sqlalchemy_hana.errorswill now raise aSequenceLockTimeoutErrorerror for error messages a lock wait timeout error caused by a sequence- uuid types can now be backed by
VARBINARYinstead ofNVARCHAR. For this use thesqlalchemy_hana.types.Uuidtype withas_varbinary=True
sqlalchemy.func.nowwill be rendered asCURRENT_TIMESTAMP
sqlalchemy_hana.errorswill now raise aWriteInReadOnlyReplicationErrorerror for error messages indicating a write statement in a read-only replication
- Added basic JSON support (contributed by @Zahlii)
sqlalchemy_hana.errorswill now raise aDatabaseConnectNotPossibleErrorerror for hdbcli error code1888
- Add error handling for SAP HANA Cloud region maintenance error
- Add additional caching to reflection methods (contributed by @Masterchen09)
- Fixed an issue causing
get_table_oidto fails of the inspector was created based on an engine (contributed by @Masterchen09)
Reworked the sqlalchemy_hana.errors package so that it can be used inside a SQLAlchemy
handle_error event hook. Therefore
wrap_dbapi_errorwas removedwrap_hdbcli_errorwas removedHANAErrornow extendssqlalchemy.exc.DBAPIError
- Support
Identitycolumns - Support additional cases for
StatementExecutionError
- Support
InvalidObjectNameErrorinsqlalchemy_hana.errors - Add
convert_dbapi_errortosqlalchemy_hana.errors
- Fixed an issue causing the usage of ALPHANUM to result in an AttributeError
- Support CREATE and DROP of views
- Add limited UPSERT support
- Add support for exception wrapping by replacing hdbcli errors with more detailed ones if possible
- Fixed an issue causing the alembic dialect to render a
RENAMEtable statement wrongly
- The statement caching capabilities of SQLAlchemy are now supported
- Calculated/Computed columns are now officially supported
- The following SAP HANA types are now supported:
SECONDDATE,LONGDATEandALPHANUM - The module
sqlalchemy_hana.typesdefines now all SAP HANA native types - All camelcase types of SQLAlchemy are now supported. If SAP HANA does not support it, a similar type is used automatically
- sqlalchemy-hana will now expose the version information of the connected SAP HANA instance,
filling the dialect field
server_version_info
- During column reflection all types will expose their respective length, scale and precision
- Version 1.0.0 states that
is_distinct_fromis supported, but the dialect specifiedsupports_is_distinct_from=False. The value was changed toTrue - Fixed an issue causing
is_not_distinct_fromto fail with an SQL syntax error - Make sure that
Texttypes are really rendered asUnicodeText - Removed misleading
get_dbapi_typefromBoolean
- By default native booleans are used. If integer based columns should be used, specify
use_native_boolean=Falseincreate_engine - Columns of SQLAlchemy type String are now created with the SAP HANA SQL type NVARCHAR. The previously used SAP HANA SQL type VARCHAR has been only designed for 7-bit ASCII character data. Storing other non-ASCII characters in a different encoding like UTF-8 was sometimes possible but never intended or recommended It may cause unexpected behavior for certain database-side operations like sorting or failures with string functions With the introduction of SAP HANA Cloud, the SQL type VARCHAR is also only an alias for NVARCHAR.
- Columns of SQLAlchemy type Text are now created with the SAP HANA SQL type NCLOB instead of CLOB. Like the SAP HANA SQL type VARCHAR, CLOB was designed for 7-bit ASCII character data. This change also ensures consistency and compatibility with SAP HANA Cloud, where CLOB is just an alias for NCLOB
- Removed
pyhdbsupport becausepyhdbis out of maintenance and the GitHub repository was archived. Please migrate tohdbclias it also supports connections towards SAP HANA Cloud databases. - Removed support for Python versions below version 3.8
- Removed support for SQLAlchemy below version 1.4
- Removed support for hdbcli below version 2.10
- Removed the hidden and outdated feature
auto_convert_lobs
- Official support for SQLAlchemy 1.4 and 2.0
- Official support for Python 3.11 and 3.12
- Support the SAP HANA datatype
SMALLDECIMAL - Support native booleans (this is the new default)
- The
sqlalchemy_hanapackage is fully typed and exports its types - The Alembic dialect left the preview stage and is now included by default.
Please install sqlalchemy-hana with the alembic requirement like
pip install sqlchemy-hana[alembic]. Supported is Alembic 1.12 onwards. - Specified the SQLAlchemy statement caching support explicitly to false. Support might be added later (see #126)
- Support regexp_match and regexp_replace
- Allow usage of
is_distinct_fromoperator through a SAP HANA compatible expression - Prefer dialect types in
get_columns - Allow usage of additional options (e.g.
nowait) inwith_for_updatewhen usingread=True - Added CI with linters and testing utilizing the SQLAlchemy and Alembic test suite
- Fixed a bug with SQLAlchemy's custom AUTOCOMIT isolation level. If the user changed the isolation level from AUTOCOMMIT to something else, the dialect didn't notified the underlying database connection and it stayed in autocommit mode while the user expected the typical transaction behavior and the defined isolation level.
- Improved support for ''SELECT FOR UPDATE'' statements.
- Support for inspection of table oid
- Support for table comments
- Support for setting and reflecting isolation level
- Backward incompatible change: The
hana://DBURI schema will now usehdbcliby default. - Support of Python 3
- Support for check constraints
- Support for foreign key options and name
- Support for tenant specification in connect URL and automatic sql port discovery
- Support for autocommit
- Support for temporary tables
- Support of named constraints
- Reflection is now able to detect named constraints
- Fixed reflection of view columns with newer SAP HANA versions
- Allow construction of more complex SELECT FOR UPDATE statements
- Fixed bug with table argument hana_table_type that could lead to invalid CREATE TABLE statements
- Replace standard reserved words with SAP HANA reserved words in
HANAIdentifierPreparer
- Fix LOB handling with hdbcli driver
- Added basic support for hdbcli driver
- Allow specification of table type via
hana_table_type
- Cleanup of setup.py
- Release on PyPi
- Added support for LOBs
- Initial version