- Removed support for Python 3.8
- Support python 3.13
- Added support for the
REAL_VECTOR
type incl. various utility function
sqlalchemy_hana.errors
will 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.errors
will no longer extract an inner error if a savepoint was not found.
sqlalchemy_hana.errors
will now raise aSequenceLockTimeoutError
error for error messages a lock wait timeout error caused by a sequence- uuid types can now be backed by
VARBINARY
instead ofNVARCHAR
. For this use thesqlalchemy_hana.types.Uuid
type withas_varbinary=True
sqlalchemy.func.now
will be rendered asCURRENT_TIMESTAMP
sqlalchemy_hana.errors
will now raise aWriteInReadOnlyReplicationError
error for error messages indicating a write statement in a read-only replication
- Added basic JSON support (contributed by @Zahlii)
sqlalchemy_hana.errors
will now raise aDatabaseConnectNotPossibleError
error 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_oid
to 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_error
was removedwrap_hdbcli_error
was removedHANAError
now extendssqlalchemy.exc.DBAPIError
- Support
Identity
columns - Support additional cases for
StatementExecutionError
- Support
InvalidObjectNameError
insqlalchemy_hana.errors
- Add
convert_dbapi_error
tosqlalchemy_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
RENAME
table 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
,LONGDATE
andALPHANUM
- The module
sqlalchemy_hana.types
defines 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_from
is supported, but the dialect specifiedsupports_is_distinct_from=False
. The value was changed toTrue
- Fixed an issue causing
is_not_distinct_from
to fail with an SQL syntax error - Make sure that
Text
types are really rendered asUnicodeText
- Removed misleading
get_dbapi_type
fromBoolean
- By default native booleans are used. If integer based columns should be used, specify
use_native_boolean=False
increate_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
pyhdb
support becausepyhdb
is out of maintenance and the GitHub repository was archived. Please migrate tohdbcli
as 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_hana
package 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_from
operator through a SAP HANA compatible expression - Prefer dialect types in
get_columns
- Allow usage of additional options (e.g.
nowait
) inwith_for_update
when 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 usehdbcli
by 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