Progress DataDirect for ODBC for Apache Cassandra Driver

    An asterisk (*) indicates support that was added in a hotfix or software patch subsequent to a release.

    Refer to the following resources for additional information:

    • Product Compatibility Guide: Provides the latest data source and platform support information. 
    • Fixes: Describes the issues resolved since general availability.  

    Version 8.0.0

      Enhancements
      • The driver is now compiled with a Visual Studio 2022 compiler for the Windows platforms. As a result, you must have Microsoft Visual C/C++ runtime version 14.40.33810 or higher on your machine to run the driver.
      • For AIX platforms, the ICU library files that are installed with the product have been upgraded to version 74.1. As a part of this upgrade, the ICU library file names have changed. For the 32-bit driver, the ICU file name has changed from libivicu28.a to libivicu.a. For the 64-bit driver, the ICU file name has changed from libddicu28.a to libddicu.a. This upgrade does not apply to the other UNIX platforms. This upgrade is available starting in build 08.02.1072 of the ICU library files.*
      • For Windows platforms, the ICU library files that are installed with the product have been upgraded to version 74.1. As a part of this upgrade, the ICU library file names have changed. For the 32-bit driver, the ICU file name has changed from ivicu28.dll to ivicu.dll. For the 64-bit driver, the ICU file name has changed from ddicu28.dll to ddicu.dll. This upgrade is available starting in build 08.02.1072 of the ICU library files.*
      • For Linux platforms, the ICU library files that are installed with the product have been upgraded to version 74.1. In addition, the ICU library file names have changed for Linux platforms. For the 32-bit driver on Linux, the ICU file name has changed from libivicu28.so to libivicu.so. For the 64-bit driver on Linux, the ICU file name has changed from libddicu28.so to libddicu.so. This upgrade does not apply to UNIX platforms. This upgrade is available starting in build 08.02.0965 of the ICU library files.*
      • A Password Encryption Tool, called ddencpwd, is now included with the product package. It encrypts passwords for secure handling in connection strings and odbc.ini files. At connection, the driver decrypts these passwords and passes them to the data source as required. See Password Encryption Tool (UNIX/Linux only) for details.*
      • The installer program has been enhanced to support Azul Zulu JRE 11. As a result of this change, the installer has ended support for platforms that do not support Java SE 8 or higher. The installer supports the following operating systems after the enhancement:
        • Windows 8.1 or higher
        • Windows Server 2012 RC2 or higher
        • UNIX/Linux: Any operating system on a machine using a JRE that is Java SE 8 or higher (LTS version), including Oracle JDK, OpenJDK, and IBM SDK (Java) distributions.
        Important: These changes do not affect the operating system requirements of the driver.*
      • The driver has been enhanced to allow you to configure how collections are mapped in the relational view of your data. By configuring the new Schema Format (SchemaFormat) config option, you can determine whether the driver normalizes collections and collections labeled FROZEN. Refer to SchemaFormat (config option) for details.
      • The driver has been enhanced to support connection failover and client load balancing when connecting to a cluster. You can enable this new functionality by specifying a comma-separated list of member nodes using the new Cluster Nodes (ClusterNodes) connection option. Refer to Using failover in a cluster and Cluster Nodes for details.
        Available in driver version 08.00.0216 (B0706, U0505, J000324)
      • The drivers using base version B0649 and later have been enhanced to include timestamp in the internal packet logs by default. If you want to disable the timestamp logging in packet logs, set PacketLoggingOptions=1. The internal packet logging is not enabled by default. To enable it, set EnablePacketLogging=1.*
      • The driver has been enhanced to support the Duration data type, which maps to the SQL_VARCHAR ODBC type. Currently, the Duration type is supported only in simple columns, and not in Collection types. Refer to Data types for details.*
      • The Driver Manager for UNIX/Linux has been enhanced to support setting the Unicode encoding type for applications on a per connection basis. By passing a value for the SQL_ATTR_APP_UNICODE_TYPE attribute using SQLSetConnectAttr, your application can specify the encoding at connection. This allows your application to pass both UTF-8 and UTF-16 encoded strings with a single environment handle.
        The valid values for the SQL_ATTR_APP_UNICODE_TYPE attribute are SQL_DD_CP_UTF8 and SQL_DD_CP_UTF16. The default value is SQL_DD_CP_UTF8.
        This enhancement is available in build 08.02.0449 of the driver manager.
      • The driver has been enhanced to support all the data consistency levels for read and write operations that are supported by Apache Cassandra data stores. Data consistency levels are configured using the Read Consistency and Write Consistency connection options. Refer to the user's guide and reference for descriptions of these options. Refer to Read Consistency and Write Consistency for details.*
      Changed Behavior
      • The installer program now requires you to install a JRE that is Java SE 11 or higher before running the installer. In earlier versions, the JRE used by the installer program was included in the product. However, to avoid potential security vulnerabilities, the installer program no longer includes a JRE. Instead, the installer program uses the JRE in your environment to allow for the most secure version of a JRE to be used.

        Notes:

        • This change does not affect the JVM requirements for the driver. For the latest driver requirements, refer to the Product Compatibility Guide.
        • The installer program cannot remove the already installed JRE files from the install directory automatically. Remove them manually.
        • To install the 32-bit drivers on 64-bit Windows platforms and start the SQL engine service, the installer requires the 32-bit version of Java SE 11 or higher installed on your machine and defined on your path.
      • The product package no longer includes the ODBC Cursor library file (odbccurs.so) because it has some known security vulnerabilities that could potentially expose you to security risks.*
        Note: The installer program cannot remove the ODBC Cursor library file automatically while installing a new version of the driver. Remove it manually.
      • The installer program has been updated to no longer install common components for drivers that do not use them. As a result, the installer program no longer installs the following common components for the Apache Cassandra driver:*
        • OpenSSL library files, such as ivopenssl30.so, ddopenssl30.so, fips.so, and openssl.cnf.
        • Curl library files, such as libivcurl28.so and libddcurl28.so.

        If the files are not used by any other DataDirect driver on your machine, you can safely remove them from existing product directories.

      Notes, Known Issues, and Limitations
      • The driver does not support specifying values for the same connection option multiple times in a connection string or DSN. If a value is specified using the same attribute multiple times or using both long and short attributes, the connection may fail or the driver may not behave as intended.
      • SQLColAttributes currently returns the incorrect data types and searchability for columns in prepared statements.
      • Row counts for semicolon delimited statement batches are rolled up into a single value rather than being returned for each explicit statement.
      • Attempting to update data using a named cursor with the CURRENT OF cursor syntax currently returns an error.
      • Update is supported for Counter columns only when all the other columns in the row comprise that row's primary key. When updating a Counter column on an existing row, the Counter column is updated according to the increment (or decrement) specified in the SQL statement. When updating a Counter column for which there is no existing row, the values of the columns that comprise the row's primary key are inserted into the table alongside the value of the Counter column. Note that Update is only supported using the native syntax.
      • Out-of-memory errors can occur with large result sets. To reduce the likelihood:
        • Reduce FetchSize to reduce demands on memory. By lowering the maximum number of rows as specified by FetchSize, you lower the number of rows the driver is required to process before returning data to the application. Thus, you reduce demands on memory and decrease the likelihood of out-of-memory errors.
        • Decrease ResultMemorySize until results are successfully returned. Intermediate results larger than the value specified will be written to disk as opposed to held in memory. When configured correctly, this avoids memory limitations by not relying on memory to process larger intermediate results. Be aware that while writing to disk reduces the risk of out-of-memory errors, it also negatively impacts performance. For optimal performance, decrease this value only to a size necessary to avoid errors. By default, ResultMemorySize is set to -1, which sets the maximum size of intermediate results held in memory to a percentage of the max Java heap size. If you received errors using the default configuration, use the max Java heap size divided by 4 as a starting point when tuning this option.
        • Increase the JVM heap size. By increasing the max Java heap size, you increase the amount of data the driver can accumulate in memory and avoid out-of-memory errors.
      • The driver hides the system.indexes collection, and tables containing the "$" character are hidden to prevent naming conflicts.
      • The driver hides the oplog.rs system table.
      • All of the Release 8.0 Core Components (header files, etc.) needed for development of ODBC applications on UNIX and Linux are installed into the /include directory created by the product installer.
        Please read the notices.txt file in the installation directory for licensing information regarding the ODBC Core Components. Contact your Progress DataDirect representative if you have any questions.
        Developers using programming languages other than C++: The DataDirect ODBC Driver Manager is a C++ shared library. The ODBC Driver Manager can be used with any language that supports loading a C++ shared library; however, if you are using a programming language other than C++, you must take additional steps to ensure that the C++ libraries are initialized properly when loaded. If you are not using C++, consult your compiler documentation for instructions on using C++ shared libraries with your application.
      • A default installation of the product on UNIX and Linux assumes that the value of the LANG environment setting is en_US. If your locale is not set to en_US, the drivers may not return error messages properly. In this case, you must create a symbolic link in the <Install_Dir>/locale directory that has the same value as the LANG environment setting. This link must point to the <Install_Dir>/locale/en_US directory.
      • The column attributes 1001 and 1002, which were assigned as DataDirect-specific attributes, were inadvertently used as system attributes by the Microsoft 3.0 ODBC implementation. Applications using those attributes must now use 1901 and 1902, respectively.
      • Because of inconsistencies in the ODBC specification, users attempting to use SQL_C_NUMERIC parameters must set the precision and scale values of the corresponding structure and the descriptor fields in the Application Parameter Descriptor.
      • Some IBM AIX C compilers, such as xlc 3.1.4, do not support the use of C++ build binaries. C developers on AIX should consult their compiler documentation and verify that their AIX C compiler supports the use of C++ shared libraries or the application could be unstable.
      • You may receive a 126 error when adding or configuring a data source stored on a network location. This is caused by the settings of the User Account Control (UAC) security feature on Windows 10. To work around this issue:
        Important: Implementing this fix disables security safeguards that are designed to protect your machine. Before starting, refer to the following Microsoft documentation for potential risks associated with disabling the UAC feature: http://windows.microsoft.com/en-us/windows/what-are-user-account-control-settings
        1. From the Start menu, type regedit in the search field; then, select regedit from the results list. The Registry Editor window opens.
        2. Navigate to the following registry subkey:
          HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
        3. Right click on the subkey; then, select New > DWORD Value.
        4. Rename the new value EnableLinkedConnections.
        5. Right-click EnableLinkedConnections, and then click Modify. The Edit DWORD Value window opens.
        6. In the Value data field, type 1. Click OK.
        7. Close the Registry Editor; then, restart your computer.
      Features
      • Supports SQL read-write access to Apache Cassandra data sources. Refer to Supported SQL functionality for details.
      • Supports CQL Binary Protocol.
      • The driver supports the core SQL-92 grammar.
      • The driver supports all ODBC Core functions and some Level 1 and Level 2 features. Refer to ODBC compliance for details.
      • Supports user id and password authentication. Refer to Authentication Method for details.
      • Supports Cassandra data types, including the complex types Tuple, user-defined types, Map, List and Set. Refer to Data types for details.
      • Generates a normalized view of Cassandra data. Tuple and user-defined types are flattened into a relational parent table, while collection types are mapped as relational child tables. Refer to Complex type normalization for details.
      • Supports Native and Refresh escape sequences to embed CQL commands in SQL-92 statements. Refer to Native and Refresh escape clauses for details.
      • Supports Cassandra's tunable consistency functionality with the ReadConsistency and WriteConsistency connection options. Refer to Read Consistency and Write Consistency for details.
      • Supports the handling of large result sets through the FetchSize, NativeFetchSize, and ResultMemorySize connection options. Refer to Fetch Size, Native Fetch Size, and Result Memory Size for details.
      • Supports applications that do not support unbounded data types through the ASCIISize, DecimalPrecision, DecimalScale, VarintPrecision, and VarcharSize connection options. Refer to Ascii Size, Decimal Precision, Decimal Scale, Varchar Size, and Varint Precision for details.

    Connect any application to any data source anywhere

    Explore all DataDirect Connectors

    A product specialist will be glad to get in touch with you

    Contact Us