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.
0.30.0 - 2026-03-27
- [breaking] Add missing vairants to
InfoType. Thanks to @lfrancke.
0.29.0 - 2026-03-02
- Add SQLPrimaryKey and SQLPrimaryKeyW
USmallInttype alias has been removed. Use u16 instead.SmallInttype alias has been removed. Use i16 instead.UIntegertype alias has been removed. Use u32 instead.Integertype alias has been removed. Use i32 instead.
0.28.0 - 2025-11-30
- ConnectionAttribute is now a strict alias of
i32. This has been done to support driver specific Connection Attributes. E.g.SQL_COPT_SS_ACCESS_TOKENfor Microsoft SQL Server. If you are migrating from the previous version ofodbc-sysyou will find that each variant of the formerConnectionAttributeenumeration has an equivalent constant. E.g.ConnectionAttribute::PacketSizeis nowConnectionAttribute::PACKET_SIZE. - unixODBC build script early exits on windows. This makes it easier to use the vendored unix-odbc feature, because we won't need a separate configuration for windows systems anymore. As on windows like platforms unixODBC will be an empty crate instead of one which does not build. On top of that it makes the Rust Analyzer work again for contributers to
odbc-syson windows platforms.
- Improve doc comment for
Numeric
0.27.4 - 2025-10-25
- updated the following local packages: unix-odbc
0.27.3 - 2025-10-12
- unix-odbc crate, just does nothing than used with windows
- introduce compile time feature static_ltdl to allow for explicit
- [breaking] using the
staticfeature flag no longer implies libltdl is
- Prevent recreating configure script for unixODBC during build
- formattig
- Remove superfluous unixODBC tar.gz
- build from unixODBC source included verbatum
- Vendor source for unixODBC verbatum
- update vendor script to include source verbatum
- remove the need for cargo:rerun-if-env-changed
- Re-fix #64
- formattig
- auto format on ci
- install unixodbc on empty features in macos and linux
- no unixodbc feature
- make the ci script both simpler and more exhaustive
- Fix issue with vendored unixODBC build not linking dynamically
- build vendored-unix-odbc on mac os
0.27.2 - 2025-10-09
- An issue has been fixed which prevent the
vendored-unix-odbcfeature to build on Mac-OS
0.27.1 - 2025-10-08
- Introduce vendored-unix-odbc flag. This enables building and linking against unixODBC as part of cargo build
0.27.0 - 2025-09-08
- Remove
Sendfrom HStmt
0.26.3 - 2025-09-05
- adds
HDesc::as_handle
0.26.2 - 2025-09-05
- adds HDesc::null()
0.26.1 - 2025-09-05
HEnv,HDbcandHStmtnow have anas_handlemethod
0.26.0 - 2025-09-05
- [breaking] Opaque types referenced by handles are no longer represented by empty enums. Instead handles are strict aliases of
c_void. HEnv,HDbcandHStmtnow implement Send.
0.25.1 - 2025-08-16
- Install UnixODBC in test workflow
- Explain enum {} trick in handles
- extract handles into own module
- Automatically detect homebrew library path on Mac-OS
- Fix Typo
CDataType::TypeTimestampWithTimzoneis nowCDataType::TypeTimestampWithTimezone
- New handle type
DBC_INFO_TOKEN.
- Add
SQLSetPos
- Add
InfoType::ActiveEnvironments - Fix Typo
InfoType::MaxDiverConnectionsis nowInfoType::MaxDriverConnections
Thanks to @lfrancke
- Extend
InfoTypeto determine cursor capabilities. E.g.InfoType::ScrollOptions
- Add narrow
SQLForeignKeys
- Add
SQLNumParams
- Add
SQLColumns. Previously onlySQLColumnsWhad been declared.
- Add
SQLColAttribute. Previously onlySQLColAttributeWhad been declared.
- Add
SQLGetConnectAttr. Previously only wide version had been declared. - Removed
enum SqlAttributeStringLengthin favour of constants. - Update edition to 2012
- Add
StatementAttribute::MetadataId
- Update to Rust edition 2018
- Check for overflow in
len_data_at_exec.
- Improved documentation connection pooling.
- Add
SQLParamData
- Add
DATA_AT_EXEC - Add
fn len_data_at_exec
- Type of
NTSandNTSLis nowisize.
- Introduce
iodbcfeature for linking against iodbc on OS-X.
- Fix:
SqlReturn::INVALID_HANDLEis now correctly set to-2.
-
Remove constants and types specific to Microsoft SQL Server.
SS_LENGTH_UNLIMITEDSsTime2SsTimestampOffsetSS_VARIANTSS_UDTSS_XMLSS_TABLESS_TIME_2SS_TIMESTAMP_OFFSET
-
Renames
CDataType::UTinyIntyintoCDataType::UTinyInt. -
Renames
NullableintoNullability.
ULenis now a type alias forusize.Lenis now a type alias forisize.
Both changes do not change binary size of these on any platform, but are more likely to result in portable downstream code.
SQLDescribeParamsignature changed. The type of the last parameter has been changed to*mut Nullable.CDataTypehas new VariantsArdandApd.
field_identifierparameter type inSQLSetDescFieldandSQLSetDescFieldWchanged toDesc.
- Adds function
SQLSetDescFieldW.
- Rewrites enumeration
StatementAttribute. - Adds function
SQLGetStmtAttr. - Adds function
SQLSetDescField.
Numericmembers now all public.
- Derive
DefaultforNumeric.
- Derive
Debug,PartialEq,Eq,CloneandCopyforNumeric.
- Adds
SQLPutData. - Adds
Numeric.
- A type alias for
SChar.
- Breaking Change:
SqlDataTypehas been converted from an enumeration into a newtype integer.
Breaking Changes:
SQLColAttributeW:field_identifierparameter type has been changed to the newDescenumeration.Deschas been renamed toDescription.
Breaking Changes:
- Enum variant names have been shortend and use now idiomatic CamelCasing.
- Type Names now also use idiomatic CamelCasing.
- The
SQLprefix has been dropped from most type names. InputOutputhas been renamed toParamType. As the names of the enumeration should be derived of the Prefix of the associated constants in the C Headers.- Enumerations which have been casted from integers are now newtypes in order to prevent undefined behaviour in case the enum is not complete or the driver/driver manager is not ODBC conform.
SqlReturnis now a newtype i16 with predifined constants and is now namedReturn.Nullableis now a newtype i16 with predefined constants.interval_typeinIntervalStructhas been changed fromIntervaltoc_int.
-
Adds
attributes::SQL_ATTR_CONNECTION_POOLINGandattributes::SQL_ATTR_CP_MATCHenums -
Implements Default trait for attribute values
-
Breaking Change:
SQL_ATTR_APPLICATION_KEYconstant removed because it is not part of the ODBC standard. If there is any software that depends on this constant defined, users are encouraged to open an issue report -
Breaking Change:
SQL_OV_ODBC_2constant removed because odbc-sys does not support OBDC versions < 3.## 0. -
Breaking Change: Enum OdbcVersion renamed to
SQL_ATTR_ODBC_VERSIONto better reflect it's intended use as a value for environment attribute to be used withSQLSetEnvAttrandSQLGetEnvAttrfunctions
- Adds support for static linking
- Fix: Move
SQL_ATTR_ASYNC_STMT_EVENTis now part of theSqlStatementAttributeenumeration.
- Adds
InfoType::SQL_ASYNC_MODE - Adds
InfoType::SQL_MAX_ASYNC_CONCURRENT_STATEMENTS - Adds
InfoType::SQL_ASYNC_DBC_FUNCTIONS, - Adds
InfoType::SQL_DRIVER_AWARE_POOLING_SUPPORTED, - Adds
InfoType::SQL_ASYNC_NOTIFICATION - Adds
SqlConnectionAttribute::SQL_ATTR_ASYNC_STMT_EVENT - Adds
SqlConnectionAttribute::SQL_ATTR_ASYNC_DBC_EVENT
- Adds
SqlDataType::SQL_EXT_TIME_OR_TIME_INTERVAL - Adds
SqlDataType::SQL_EXT_TIMESTAMP - Adds
SqlAttributesStringLength - Adds
SqlConnectionAttribute::SQL_ATTR_ASYNC_ENABLE - Adds
SqlGetTypeInfo
- Fix missing
SQLConnect
- yanked due to missing
SQLConnect - add
SqlRowCount
- Fix:
InputOutputis now representend asi16instead ofu16in C code.