Progress DataDirect for ODBC for MongoDB 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.1.0

      Driver 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.
      • The driver has been enhanced to support the TLSv1.3 cryptographic protocol. Refer to Crypto Protocol Version for details.
        Available: 10/29/2024 | 08.10.0529 
      • The driver has been enhanced to allow you to configure whether the driver inserts String values that exceed the column length defined in the relational schema. You can configure this behavior using the new String Truncation Method For Writes (StringTruncationMethodForWrites) options. Refer to String Truncation Method for Writes for details.
        Available: 8/16/2024 | 08.10.0469
      • The driver has been enhanced to allow you to increase the default length of VARCHAR columns to increase the size of data values you can insert with the driver. You can configure the new Min Varchar Size (MinVarcharSize) option to specify minimum default length of fields mapped to VARCHAR. Refer to Min Varchar Size for details.
        Available: 8/16/2024 | 08.10.0469
      • The driver has been enhanced to allow you to specify the format in which the driver renders the MongoDB composite timestamp. This allows you to specify the format of the MongoDB composite timestamp that is most appropriate for your use case. You can configure this driver behavior using the new Timestamp Format (TimestampFormat) option. Refer to Timestamp Format for details.
        Available: 8/16/2024 | 08.10.0469
      • 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.*
      • The SQL engine server has been enhanced to automatically start and stop the service as needed. When the new Broker mode is enabled (SQLEngineMode=3), the SQL engine operates in an external Java process that is monitored by the driver's Broker. The Broker eliminates the need to explicitly start and stop the service, as well as more efficiently manage memory and resource consumption. Refer to Using the SQL engine server for details.
        Available: 7/4/2024 | 08.10.0422
      • The driver has been enhanced to support replacing the internal mapping files at connection. When Create Map (CreateMap) is set to 1 (ForceNew), the driver replaces the schema map files specified by the Schema Map (SchemaMap) option with newly generated files at the same location. In addition, if you are upgrading from driver version 8.0 to 8.1, the driver retains a copy of the 8.0 version of the schema map files as a backup when generating the 8.1 version of the files. Refer to Create Map for details.
        Available: 7/4/2024 | 08.10.0422
      • 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.*
      • The driver has been enhanced with the new Array Normalization Threshold (ArrayNormalizationThreshold) connection option. Array Normalization Threshold allows you to specify the length of arrays (in elements) at which the driver begins to normalize arrays to child tables when generating a flattened view. This provides you with a method to control the size and focus of your parent table when encountering large arrays or nested arrays. Refer to Array Normalization Threshold 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 support data compression for all messages passed between the client and server. Data compression can significantly reduce network traffic, which, in turn, can lower data transfer costs for cloud services. You can configure this feature with the new Network Message Compressors (NetworkMessageCompressors) option. Refer to Network Message Compressors for details.
        Feature details:
        • Available: Driver version 08.10.0157 (B1449, U1212, J000898)
      • The driver has been enhanced to support MongoDB views created in the database. MongoDB views are discovered during the sampling process and mapped using the same schema format used for your collections. Refer to MongoDB views for details.
        Feature details:
        • Available: Driver version 08.10.0131 (B1345, U1106, J000821)
      • The driver has been enhanced to support the JavaScript and Regex data types. Refer to Data types for details.
      • 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 normalization algorithm has been upgraded to improve sampling performance and optimize the generation of tables in the relational view. In addition, the new Schema Format (SchemaFormat) connection option allows you to determine to which relational view the driver maps data, including normalized, mixed, and flattened views. Refer to Mapping objects to tables for details.
      • The driver supports migrating schema maps and internal files created with the 8.0 version of the driver so that they can be used by the 8.1 driver. By migrating these files, you can continue to execute the same SQL statements that you did with the 8.0 driver while still leveraging the advantages of the 8.1 driver. Refer to Migrating schema maps and native files to 8.1 for details.
      • The driver has been enhanced to support LDAP (Lightweight Directory Access Protocol) authentication. Refer to LDAP authentication for details.
      • The new Schema Filter (SchemaFilter) connection option allows you to specify the database and collections pairs for which you want the driver to fetch metadata. Configuring this option can significantly improve connection times by limiting the collections for which metadata is fetched to only those that are required by your application. Refer to Schema Filter for details.
      • The new Qualify Normalized Names (QualifyNormalizedNames) option allows you to determine whether names of relational child-tables normalized from arrays, objects, subdocuments are prefixed with the collection name and names of any parent objects. Refer to Qualify Normalized Names for details.
      • The new Special Char Behavior (SpecialCharBehavior) option allows you to determines how the driver handles the mapping of native identifiers containing characters that would require them to be quoted in SQL statements. This option provides a method to choose to continue using identifiers that require quotation marks or for the driver to modify affected identifier names so that quotation marks are not required. Refer to Special Char Behavior for details.
      • The new JSON columns (JSONColumns) option allows you to determine whether the driver exposes complex columns as JSON values in addition to their normalized mapping. Refer to JSON Columns for details.
      • The new Flatten Array Base (FlattenArrayBase) option allows you to specifies the starting ordinal value appended to column names for flattened arrays. When flattening arrays, column names are appended with an underscore and the ordinal value (<array_name>_<oridinal_location>). Refer to Flatten Array Base for details. This option allows you to determine whether the first ordinal value in the series as either a 0 or a 1.
      • The driver has been enhanced to support replica set failover for write operations. This feature can be enabled by specifying your replica set name using the new Replica Set Name (ReplicaSetName) connection option. Refer to Replica set failover for write operations and Replica Set Name for details.
      • The driver has been enhanced to support connections to MongoDB Atlas clusters through a domain. Instead of specifying connection information for individual nodes, the driver allows you to specify the name of the domain using the Host Name (HostName) option. The driver then uses a DNS lookup to discover the member nodes in the cluster to which it can connect. Refer to MongoDB Atlas clusters for details.
      • The new Enable DNS Lookup (EnableDNSLookup) option specifies whether the driver performs a DNS lookup to discover member nodes of a cluster when connecting. When enabled (the default), the driver will discover and connect to the nodes of a cluster when a domain is specified by the Host Name (HostName) option. Alternatively, if not connecting to cluster, you can experience improved connection times by disabling this option.
      • The driver now includes the MongoDB Configuration Manager for quick configuration and testing of your driver in a web browser. The tool allows you to:
        • Configure data sources and connection strings
        • Test connect your data sources and connection strings
        • Execute SQL commands for testing
        Refer to Configuring data sources with the Configuration Manager, Generating connection strings with the Configuration Manager, and Testing connections and queries with the Configuration Manager for details.
      • The driver has been enhanced with the new Authentication Database (AuthenticationDatabase) connection option, which provides a method to specify the database in which the user id was created for user id and password authentication (AuthenticationMethod=userIdPassword). This allows you to explicitly select a set of credentials when the same user ID was created on multiple databases. Refer to Authentication Database for details.
      • The driver has been enhanced to support the SCRAM-SHA-256 authentication method for user ID and password authentication. When user ID and password authentication is enabled (AuthenticationMethod=UserIDPassword), the driver detects and uses the most secure method supported by the server. Refer to Authentication Method for details.
      • The driver has been enhanced to use proxy server settings defined in the JVM system option by default. If no proxy settings are defined in the connection string or data source, the driver will attempt to use the values of the http.proxyHost and http.proxyPort JVM system option to connect to the database. Refer to Proxy server for details.
      • The driver has been enhanced to allow you to limit sampling to only new collections when refreshing the schema map. This provides for quicker processing times if you only want to map new collections or if existing collections are unchanged. You can limit sampling to only new collections by specifying the NEW option in a Refresh Map statement. Refer to Refresh Map (EXT) for details.
      • The driver has been enhanced to support the native Decimal128 data type, which maps to the Decimal ODBC type by default.
      • The driver has added support for the MinKey and MaxKey special values. Refer to MinKey and MaxKey values for details.
      • 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 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 CAST_TO_NATIVE function escape has been introduced to select or insert a value of a specific native type. This can be particularly useful when MongoDB has inconsistent native types for a given field. Currently, CAST_TO_NATIVE can only be used with the ObjectID type in SELECT statement filters and literal INSERT values. Refer to CAST_TO_NATIVE function escape 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.
      • * The behaviors of valid values for the Create Map (CreateMap) option have been changed as follows:
        • If set to 0 (No), the driver uses the current group of internal files specified by the Schema Map option. If the files do not exist, the connection fails.
        • If set to 2 (NotExist), the driver uses the current group of internal files specified by the Schema Map (SchemaMap) option. If the files do not exist, the driver creates them.

        Refer to Create Map for details.

      • 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 MongoDB 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.

      • The SchemaDefinition attribute has been added as an alias for the Schema Map (SchemaMap) option. This change allows users to continue using their configurations for earlier versions of the driver until they are able update their connection settings. Note that SchemaDefinition is a deprecated attribute and may not be supported in future versions of the driver.
        Change details:
        • Available: Driver version 08.10.0083 (B1145, U0894, J000647)
      • The default mapping behavior of the driver has been changed from generating a normalized view of data to one that is a mixture of normalized and flattened views. The mixed view reduces the number of tables generated while providing a more intuitive data model. You can configure the mapping behavior using the new Schema Format (SchemaFormat) option. Refer to Mixed view and Schema Format for details.
      • The Schema Tool and manual customizations of the schema map are not currently supported. However, you can modify schema using the mapping connection options. Refer to Connection option descriptions for details.
      • The Create Database (CreateDB) connection option has been replaced by the Create Map (CreateMap) option. The valid values and behavior are identical for both options. Refer to Create Map for details.
      • The Database (Database) connection options has been replaced by the Database Name (DatabaseName) option. The valid values and behavior are identical for both options. Refer to Database Name for details.
      • The User Name (LogonID) connection option has been replaced with the User (User) option. Refer to User for details.
      • The Config Options (ConfigOptions) connection options has been deprecated. As a result, the driver has been enhanced to support setting each of the configuration options formerly supported by Config Options as standalone connection options. Refer to Connection option descriptions for details.
      • The following Config Options are no longer supported:
        • DefaultVarcharSize
        • MaxVarcharSize
        • MinVarcharSize
        To determine the default length of VARCHAR fields, the driver multiplies the largest discovered field by 1.5. For example, if the largest detected field has a length of 100 characters, the driver sets the default length to 150 characters.
      • The driver does not currently support the IBM System z Linux platform.

      Version 8.0.1

          Enhancements 
          • 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 new SchemaFilter config option allows you to specify the database and collections pairs for which you want the driver to fetch metadata. Using this option can provide can significantly improve connection times by limiting the collections for which metadata is fetched to only those that are required by your application.
          • The driver and schema tool have been enhanced to allow you to limit sampling to only new collections when refreshing the schema map. This provides for quicker processing times if you only want to map new collections or if existing collections are unchanged. You can specify the sampling behavior using the following methods:
            • The Schema Tool: At connection, the Schema Tool prompts you to select the sampling behavior for the session.
            • The Refresh Map SQL extension: When executing the Refresh Map SQL extension, you can specify the NEW options in the statement to limit sampling to only new collections.
          • The driver has been enhanced to support the native Decimal128 data type, which maps to the SQL_DECIMAL ODBC type by default.
          • 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 CAST_TO_NATIVE function escape has been introduced to select or insert a value of a specific native type. This can be particularly useful when MongoDB has inconsistent native types for a given field. Currently, CAST_TO_NATIVE can only be used with the ObjectID type in SELECT statement filters and literal INSERT values.*
          • The driver has been enhanced to resolve naming conflicts that can occur when exposing native objects using unquoted, uppercase identifiers (the default behavior). To avoid conflicts, the driver appends an underscore separator and integer (for example, _1) to identifiers that differ only by case. 
          • The DefaultVarcharSize config option has been enhanced to generate dynamic default lengths for VARCHAR columns when specifying a multiplier value (for example, 2x) for the option. When specifying a multiplier value, the default length for a VARCHAR column is determined by multiplying the value specified by the size of the largest value detected in that column. This results in a default length that is proportionate to the size of the data within the column, which can improve the memory efficiency within the driver and application. The default value for this option has been updated to 1.5x.

            In addition, you can further define the default length for VARCHAR columns by tuning the new MaxVarcharSize and MinVarcharSize config options. These options allow you to specify maximum and minimum size limits for the default length generated by the DefaultVarcharSize config option. When tuned for your data, MaxVarcharSize and MinVarcharSize can improve memory efficiency and avoid the undesired truncation of VARCHAR values.

          • The new KeywordConflictSuffix config option allows you to specify the suffix that is appended to object and field names that conflict with SQL engine keywords.
          • The driver includes a new Tableau data source file (Windows only) that provides improved functionality when accessing your MongoDB data with Tableau.
          • The driver uses the MongoDB aggregation framework to improve performance in the execution of SQL queries using LIMIT, ORDER BY, or TOP clauses.
          • The RELOAD MAP and REFRESH MAP commands have been added to the driver.
            • RELOAD MAP reloads the schema definition and associated files. RELOAD MAP updates your relational view of native data while the driver is connected to the data store. RELOAD MAP does not discover changes made to the native data store.
            • REFRESH MAP discovers native objects that have been added to the native data store since connection or since the last refresh. REFRESH MAP incorporates newly discovered objects into your relational view of native data. It also  incorporates any configuration changes made to your relational view by  reloading the schema definition and associated files. REFRESH MAP is an expensive query since it involves the discovery of native data.
          • The driver has been enhanced to improve the handling of large result sets and reduce the likelihood of out-of-memory errors through the modification of the Fetch Size connection option and the introduction of the Result Memory Size connection option.
          • The driver has been enhanced to further ensure data integrity when mapping inconsistent data types to a relational schema. 

            Version 8.0.0

              Driver Enhancements 
              • When first connecting to a MongoDB server, the driver automatically creates a normalized schema of the data and generates a SchemaDefinition for housing and sharing the normalized schema.
              • Native MongoDB data is fully normalized during the normalization process, regardless of the depth of nested arrays, documents, and objects.
              • The driver uses the MongoDB aggregation framework to improve performance in the execution of SQL queries using aggregates, GROUP BY clauses, or HAVING clauses.
              • The SQL Engine Mode connection option now supports Auto mode. When this setting is enabled, the driver automatically determines whether the SQL engine runs in server or direct mode based on availability. 
              • The new Min Long Varchar Size connection option allows you to fetch SQL_LONGVARCHAR columns whose size is smaller than the minimum imposed by some third-party applications, such as SQL Server Linked Server.
              • The new Varchar Threshold connection option allows you to fetch columns that would otherwise exceed the upper limit of the SQL_VARCHAR type for some third-party applications, such as SQL Server Linked Server. 
              • The driver and Driver Manager have been enhanced to support UTF-8 encoding in the odbc.ini and odbcinst.ini files. 
              Schema Tool Enhancements
              • The new Restart Wizard feature allows you to reset the relational view of your data from the Table Wizard menu.
              • The new Update Schema feature allows you to map all new native objects to your schema definition with a single click.
              • Support for selecting multiple objects in the Table Wizard for improved object management when customizing your schema.
              Changed Behavior
              • The driver no longer supports in-memory tables (also referred to as "local tables"). As a result, alters,creates, and drops are no longer supported. 
              • The driver’s SQL engine was upgraded for this release. Consequently, there are differences in how the driver handles some SQL queries. For more information, visit: https://documentation.progress.com/output/DataDirect/collateral/sqlengine.pdf.
              • The Normalization Depth option is no longer available in the Schema Tool because native MongoDB data is now fully normalized, regardless of depth, during the normalization process. 
              • The 8.0.x version of the driver and Schema Tool does not support schema definitions created with previous versions of the product. Therefore, you should reproduce your 7.1.x schema definitions with the current release of the driver or Schema Tool.
              • The 8.0 driver pushes down SQL queries to MongoDB whenever possible. Queries that cannot be pushed down to MongoDB in the 8.0 driver may be slower than comparable queries made with previous versions of the driver because data may be paged to disk while completing an operation. If you experience slow performance, please contact Technical Support. Our team will quickly address any performance issues you may encounter.
              • The default value for the SQL Engine Mode connection option has been updated:
                • For Windows users, the default is 0 (Auto).
                • For UNIX/Linux users, the default is 2 (Direct). 
              • The default value for the Server Port Number connection option has been updated:
                • For the 32-bit driver, the default is 19932.
                • For the 64-bit driver, the default is 19931.
              • The default value for the Schema Definition connection option has been updated:
                • For Windows users, the default is:

                  application_data_folder\Local\Progress\DataDirect\MongoDB Schema\host_name.config

                • For UNIX/Linux users, the default is:

                  ~/progress/datadirect/mongodb_schema/host_name.config

              Version 7.1.5

                Driver Enhancements
                • Support for SSL encryption. 
                • The following configuration options have been introduced to increase flexibility
                  when mapping native data to a relational schema.
                  • DefaultVarcharSize determines whether native String data is mapped as VARCHAR or LONGVARCHAR.
                  • LeadingUnderscoreReplacement permits the replacement of leading underscores with a string. 
                Schema Tool Enhancements
                • The Schema Tool has been enhanced to normalize native data to an arbitrary depth. When using the Schema Tool's Table Wizard to generate a relational schema, you can now specify that the data should be fully normalized, or you can specify to what depth your data should be normalized. These options are
                  available from the Table Wizard dialog with the selection of Normalized View.
                • A Connection Options field has been added to the Schema Tool's Open Schema 
                  Definition dialog for configuring SSL related connection options. 

                Version 7.1.4

                  Features
                  • The driver supports all ODBC Core functions.
                  • The driver supports the core SQL 92 grammar.
                  • The DataDirect Schema Tool, which:
                    • Enables you to flatten, normalize, or customize your view of MongoDB data.
                    • Allows you to decide which MongoDB objects are extracted into relational views. 
                    • Provides information and statistics about your data. 
                    • Exposes tabular relationships among your MongoDB collections.
                    • Enables you to define your column data types.
                    • Allows schema definitions to be shared across servers.

                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