- updated documentation
- updated dependencies
- fixed README.me HANA client link
- updated dependencies
- fixed linter issues
- updated dependencies
- support of additional linter checks
- Changed 'prometheus' into own go module to reduce dependencies on go-hdb.
- fixed bug (panic) in sql trace output in case the sql trace is not switched on
- updated dependencies
- fixed bug in converting integer arguments to HANA boolean type
- fixed linter issues
- Added bulk insert via iterator (see example) for go versions >= go1.23.0
- Added net.KeepAliveConfig to connector (TCPKeepAliveConfig) and enable on default with default settings for go versions >= go1.23.0
- Added support of Go 1.23.
- Dropped support of Go language versions < Go 1.22.
- fixed bug (panic) in go-hdb/driver/stmt.go function execCall on calling stored procedures with table output parameters without providing arguments (args)
- updated dependencies
- fixed race condition closing transactions
- updated dependencies
- Added user switch on existing connection (see example).
- fixed race conditions on cancelled statement calls
- updated dependencies
- avoid race conditions due to lob scans
- updated dependencies
- added go1.23rc1 make
- changed go-mod go version back to go1.21
- fixed panic calling driver.DB.Close()
- updated dependencies
- updated dependencies
- replaced testing hook by context
- removed dependency
- switching SQL trace on / off including pooled connections
- performance improvements
- fixed race conditions
- performance improvements
- Added statement metadata (see example).
- Improved sql trace.
- updated README root certificate sections
- updated dependencies
- restructured examples
- added call procedure with input table example and test
- updated dependencies
- source code cleanups
- performance improvements
- experimental statement metadata
- changed minimal go version in go.mod to 1.21.0
- updated dependencies
- CWE-770 mitigation in bulkbench benchmark
- fixed minimal go version in go.mod to comply to the 1.N.P syntax (https://go.dev/doc/toolchain#version)
- fixed sql value conversion for integers and floats
- fixed race condition in writing metrics
- updated dependencies
- source code cleanups
- updated dependencies
- fixed typo
- fixed SQL datatype in StructScanner
- fixed regression on authentication refresh
- updated dependencies
- updated dependencies
- fixed github action issue
- source code cleanups
- performance improvements
- updated dependencies
- updated dependencies
- fixed github actions & CodeQL toolchain issues
- added toolchain
- Added support of Go 1.22.
- Dropped support of Go language versions < Go 1.21.
- None.
- updated dependencies
- updated github action versions
- bulkbench fixes
- go1.22 preparation
- fixed issue closing connection before concurrent db calls are finalized
- source code cleanups
- updated dependencies
- bulkbench refresh
- performance improvements
- updated dependencies
- test performance improvements
- updated dependencies
- go1.22 preparation
- Added driver support of scanning database rows into go structs.
- fixed github actions
- source code cleanups
- performance improvements
- CESU8 decoding performance improvement
- added time unit to stats
- updated dependencies
- source code cleanups
- source code cleanups
- fixed linter issues
- updated dependencies
- fixed linter issues
- updated dependencies
- fixed sqlscript parsing bug
- updated dependencies
- renamed sqlscript SplitFunc to ScanFunc
- Added experimental sqlscript package.
- updated dependencies
- fixed driver.OpenDB dial tcp: missing address
- updated dependencies
- performance improvements
- fixed race condition in connection conn and stmt methods in case of context cancelling
- updated dependencies
- Added support of tenant database connection via tenant database name:
- see new Connector method WithDatabase and
- new DSN parameter DSNDatabaseName
- updated dependencies
- added go1.22 database/sql Null[T any] support
- updated dependencies
- source code cleanups
- updated documentation
- updated dependencies
- fixed bug: connection retry in case refresh callback has new version
- updated dependencies
- Added support of Go 1.21.
- Dropped support of Go language versions < Go 1.20.
- None.
- updated dependencies
- fixed REUSE warnings
- preparation of go1.21 release
- updated dependencies
- source code cleanups
- fixed compiling bug due to incompatible changes in https://github.com/golang/exp/commit/302865e7556b4ae5de27248ce625d443ef4ad3ed
- updated dependencies
- fixed bug: deadlock if refresh is called concurrently
- fixed bug: connection retry even in case refresh callback would not provide updates
- fixed bug pinging the database to often on resetting a connection
- updated dependencies
- source code cleanups
- fixed authentication refresh issue when using more than one authentication method
- updated dependencies
- slog go1.19 support
- updated dependencies
- updated dependencies
- connection attribute logger instance getter and setter available for go1.20
- use slog LogAttrs to improve performance and provide context if available
go-hdb slog support. The slog package does provide structured logging and replaces the standard logging output including SQL and protocol traces.
- Logging output format changes, including SQL and protocol trace.
Most go-hdb users shouldn't be affected by these incompatible changes.
- updated dependencies
- fixed bug in cesu8 encoding
- updated dependencies
- fixed typo in constant
- updated dependencies
- removed outdated utf8 code in cesu8 encoding
- updated dependencies
- updated dependencies
- pipx reuse check in Makefile
- use errors.Join for go versions greater 1.19
- updated dependencies
This version is mainly about performance improvements and source code cleanups.
- Package driver/sqltrace was removed. For enabling / disabling connection SQL trace please use driver method driver.SetSQLTrace instead.
- Flag hdb.protocol.trace was renamed to hdb.protTrace.
Most go-hdb users shouldn't be affected by these incompatible changes.
- replaced build tag 'edan' by connector attribute EmptyDateAsNull
- fixed #113
- added build tag 'edan' to return NULL in case of empty dates for all data format versions
- removed old build tags from source code
- performance improvements
- updated dependencies
- updated dependencies
- updated dependencies
- fixed slice resize runtime error: slice bounds out of range
This version is mainly about performance improvements and source code cleanups.
Formerly with a ping interval defined the driver pinged all open connections periodically. Now a ping is executed only when an idle connection is reused and the time since the last connection access is greater than the ping interval. This avoids keeping idle connections to the server alive, improves performance and is a compatible change from a driver's usage perspective.
- upgraded dependencies
- test performance improvements
- added implicit instantiation of NullLob and NullDecimal owned references in respective Scan methods
- some minor performance improvements and additional test
- fixed blob bulk sql statement issue
- fixed panic in case of bulk sql statement execution error
- fixed scan type for 'nullable' database fields
- fixed go.mod Go version
- added Go 1.20 Unwrap() to driver.Error()
Removal of already deprecated driver.NullTime alias (please use sql.NullTime instead).
Bulk operations:
- The following bulk operations are no longer supported:
- via query ("bulk insert ...")
- via named arguments (Flush / NoFlush)
- via 'many' supporting one and two dimensional slices, arrays
- Please use the following bulk operations instead:
- via extended parameter list with (len(args)%'#of paramerters' == 0
- via function argument (func(args []any) error)
Stored procedures:
- Calling stored procedures with sql.Query methods are no longer supported.
- Please use sql.Exec methods instead and sql.Rows for table output parameters.
-
Stored procedures executed by sql.Exec with parameters do
-
Custom types for reading Lobs
Whereas string and []byte types are supported as Lob input parameters for output parameters and query results (scan) the driver.Lob type was needed. With the help of one of the following functions a string, []byte or io.Writer based custom type can now be used as well:
- driver.ScanLobBytes
- driver.ScanLobString
- driver.ScanLobWriter
Example:
// BytesLob defines a []byte based data type for scanning Lobs. type BytesLob []byte // Scan implements the database.sql.Scanner interface. func (b *BytesLob) Scan(arg any) error { return driver.ScanLobBytes(arg, (*[]byte)(b)) }