Changelog

View Source

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[2.17.1] - 2026-04-09

Fixed

  • Initialize strlen_or_indptr for unbound columns in alloc_column_buffer, preventing sporadic null returns for non-null values when the uninitialized memory happened to equal SQL_NULL_DATA
  • Use SQLCHAR with SQL_C_BIT instead of SQLINTEGER with SQL_C_TINYINT for boolean column retrieval, matching the ODBC spec and fixing portability issues on big-endian architectures
  • Widen encode_binary_or_string result length parameter from int to SQLLEN to avoid silent truncation of values larger than 2 GB
  • Map SQL_BINARY, SQL_VARBINARY, and SQL_LONGVARBINARY column types to SQL_C_BINARY for retrieval, returning raw bytes instead of hex strings. Binary data is now always returned as an Erlang binary regardless of the binary_strings connection option.

Added

  • Regression tests for NULL handling across all column types
  • Tests for multi-chunk binary retrieval and sql_longvarbinary param queries
  • PostgreSQL connections now use ByteaAsLongVarBinary=1, enabling native binary retrieval for bytea columns

[2.17.0] - 2026-04-09

Added

  • Compatibility with modern ODBC SQL Server drivers ({ODBC Driver 18 for SQL Server})

  • Thanks to the support for new SQL Server drivers, the application can now be used towards SQL Server on Linux and MacOS

  • Support for Variable-length types of Arbitrary Sizes The limitation of 8000 bytes (MAXCOLSIZE) has been removed and retrieval of variable-length types now supports arbitrary sizes. This uses chunking with a default set to 8192 bytes.

  • LONG VARBINARY (SQL_LONGVARBINARY) is now supported

  • The application now uses Rebar3 as its build tool

  • The Rebar3 plugin rebar3_ex_doc is used for the documentation

  • The test suite has been expanded that exercises the new capabilities

  • A docker-based test runner has been added for MSSQL and PostgreSQL

  • GitHub actions have been added for CI/CD

Fixed

  • Compatibility with SQL Server has been restored, following a breaking change in Erlang/OTP 26.

[2.16.1] - Unreleased

The ODBC application has been extracted from the Erlang/OTP repository following its deprecation in Erlang/OTP 29 and eventual removal in Erlang/OTP 30.