Release Notes

The release notes for new versions or patches of the product will be included at the top in the order in which they were released.

Flex2SQL Unicode Edition v17.1.9897.0

Flex2SQL Unicode Edition v17.1.9897.0 was released on 2023-10-31.

New Features

  • PostgreSQL 16 Support: Starting with v17.1.9897.0, Flex2SQL now supports PostgreSQL 16.0. You’ll need an updated license to use PostgreSQL 16.0. Please contact our sales staff to make sure you have a license that supports PostgreSQL 16.0

  • PostgreSQL Stored Procedures: PostgreSQL recently added stored procedures. Before this feature, PostgreSQL only allowed stored functions. This build allows you to use the stored procedure-specific commands.

  • PostgreSQL Tablespaces and Index Tablespaces: PostgreSQL now supports using f2s_table_tablespace and f2s_index_tablespace before a CONVERT_DAT_FILE command so that a table is converted using the specified tablespaces.

  • Index Name Mapping: When a table is converted, there is a new checkbox that allows the indexes to be mapped based on their names rather than their structures. This makes the INT files simpler and allows modifications to an index structure without having to adjust the associated INT file (as long as the name doesn’t change). Note that this is only for migrating tables initially. There isn’t yet an option to change an existing table to use index name mapping.

  • Descending MySQL & MariaDB indexes: MySQL and MariaDB drivers now both support descending indexes as of MySQL 8 and MariaDB 10.11. Note that mixed direction indexes for reverse find operations such as Find LT/LE are slow in MySQL. This is an issue with their implementation. In MariaDB this same operation is very fast.

Bug Fixes

  • PROD-1268 MySQL driver was incorrectly assigning information_schema as the current database causing a problem with FHIGHEST_CHAR logic.

  • PROD-1250 The migration utility was generating a “Driver Number Out of Range” error when restructuring a PostgreSQL table.

  • PROD-1249 The migration utility was not removing inverse key triggers when dropping a table.

  • PROD-1238 Some esql operations (such as udpate calls) in MySQL and MariaDB could cause ISAM find operations to generated a “Commands out of sync” error unless the resultset was consumed.

  • PROD-1237 The migration utility was limiting varchar(max) columns to 16384 chars in the INT file even though MAX is supported.

  • PROD-1234 MySQL and MariaDB drivers were not returning the user count correctly.

  • PROD-1219 The code generator in the migration utility was not putting quotation marks around the driver name.

  • PROD-1145 PostgreSQL driver no longer uses the registry to store high/low character information since this operation is fast on PostgreSQL to calculate and depending on server OS and other options it can vary when set to the same collation.

  • PROD-1131 PostgreSQL driver attribute f2s_pg_server_citext_support was not returning the correct value based on the availability of the citext extension.

  • PROD-939 MySQL driver was causing a crash when retrieving the column length when there was no column to get the length of.

  • PROD-884 MySQL and MariaDB drivers were allow the insertion of a column in the middle of a table which is not allowed in our drivers. This now returns an error like it does for all our other drivers.

  • PROD-719 For PostgreSQL, when using the Studio, tables weren’t created in the correct database and schema.

  • PROD-712 Added a warning related to changing a recnum table to a rowid table since this can’t easily be undone.

  • PROD-623 In certain cases the migration utility was aborting the conversion of a DAT file if there were certain errors instead of continuing and just reporting the failures.

Flex2SQL Unicode Edition v17.1.9785.0

Flex2SQL Unicode Edition v17.1.9785.0 was released on 2023-07-06.

New Features

  • MariaDB Driver: Starting in v17.1, MariaDB is now a separate driver with a separate license. In prior versions, MariaDB was included in the MySQL driver as it was mostly just a fork of MySQL. In recent versions of MariaDB, the feature set of MySQL and MariaDB have begun to diverge enough that a separate custom driver is now needed to provide the fastest and most up-to-date features that MariaDB now supports. If you were using our MySQL driver previously to connect to MariaDB, please contact our sales staff to have your MySQL transitioned to MariaDB. If the transition is just a straight horizontal move from a MySQL license to a MariaDB license, there is no cost.

  • MariaDB 11.0 Support: Starting with v17.1, Flex2SQL now supports MariaDB 11.0. You’ll need an updated license to use the new MariaDB driver with MariaDB v11.0. Please contact our sales staff to make sure you have a license that supports MariaDB 11.0.

  • Service Mode: New for v17.1 is a “service mode” for the driver that makes the driver easier to debug in Webapp/Thriftly setups. When using the driver within a Webapp or Thriftly environment, the driver will now automatically block anything that would generate a UI and will instead add an entry to the Windows Event Log detailing what occurred. This can be very useful when debugging login issues that would previously hang the application. Instead of a hidden login UI, the driver will now log an event with details of what happened. Any driver generated error messages also use this new event logging mechanism. If you use the Flex2SQL deployment tools, this step is done automatically. For more information, click here.

  • Oracle 23c Support: Starting with v17.1, Flex2SQL now supports Oracle 23c. You’ll need an updated license to use Oracle 23c. Please contact our sales staff to make sure you have a license that supports Oracle 23c.

Bug Fixes

  • PROD-1198 Session counting was slow if processes were started in quick succession. Also, session count could sometimes be off for unknown reasons. This section of the driver has been rewritten using a more reliable mechanism.

  • PROD-1000 MySQL driver now reports index that is non-unique since this can cause speed issues.

  • PROD-1178 MariaDB reports an error when trying to delete a column belonging to a primary key definition. Now the primary key is removed as well.

  • PROD-1049 Crash with DF 2023 beta when using psSQLFilter. Fixed.

  • PROD-1203 Trace file not correctly showing new attribute names and locations. Fixed.

  • PROD-1101 DF_FILE_LOGIN returning incorrect value. Fixed.

  • PROD-1141 PostgreSQL driver aborts when using f2s_db_name or f2s_esql_db_name set to an invalid database. Fixed.

  • PROD-1063 f2s_server_connect_state reports an error when checked while not connected. Should just report that its not connected. Fixed.

  • PROD-1034 Synchronize Relationship option causes “Driver number out of range” error for PostgreSQL. Fixed

  • PROD-1032 Synchronize Relationship option causes “Table or view does not exist” error for Oracle. Fixed.

  • PROD-1033 “No transaction processing allowed error” when enabling trigger for recnum handling in Oracle. Fixed.

  • PROD-1030 Migration utility doesn’t assign NVARCHAR(MAX) for DF_TEXT. Fixed.

Flex2SQL Unicode Edition v17.0.9622.0

Flex2SQL Unicode Edition v17.0.9622.0 was released on 2023-02-06.

New Features

  • MSOLEDBSQL v19.x Support: This build supports the latest v19.x Microsoft OLE DB Driver for SQL Server. This new version of MSOLEDBSQL has some new defaults that are meant to be more secure, but by default will break the use with your application. For this release (and at least the next the next release) of Flex2SQL, the driver defaults to make things work the way they have in the past. In future version we will be changing to a more secure default that will require action on your part to either use the more secure connection settings or to set them a less secure default. Please keep up with our blog<https://www.mertech.com/blog> to learn more.

Bug Fixes

  • PROD-1057 The unicode driver was causing a Studio crash during file creation. Fixed.

  • PROD-556 Postgresql driver had a bug in the trial obscured data feature. Fixed

  • PROD-571 MySQL driver had issues with some utf8mb4 character sorting. Fixed.

Flex2SQL Unicode Edition v17.0.9586.0

Flex2SQL Unicode Edition v17.0.9586.0 was released on 2022-12-20.

Bug Fixes

  • PROD-571 The MySQL driver was having an issue with DF_HIGH values in varchar columns depending on the collation used. This could cause records to be skipped at the “end” of a table. This would only happen in very rare circumstances where the record was using only supplemental characters (4-byte).

  • PROD-1038 Trace Control wasn’t showing MS SQL Unicode as a valid driver.

Flex2SQL Unicode Edition v17.0.9582.0

Flex2SQL Unicode Edition v17.0.9582.0 was released on 2022-12-14.

New Features

  • MySQL/MariaDB Unicode Driver: The latest release of Flex2SQL v17 Unicode Edition now includes a 64-bit Unicode MySQL/MariaDB driver. Please see the Conversion Guide to learn more. Note that the deployment tool for MySQL Unicode Edition will be released at a future date.

  • SQL Server 2022 Support: This build supports Microsoft SQL Server 2022 if you have an updated license. Licenses issued before 2022-12-14 cannot connect to SQL Server 2022.

  • PostgreSQL v15.x Support: This build supports PostgreSQL v15.1 if you have an updated license. Licenses issued before 2022-12-14 cannot connect to PostgreSQL v15.1.

Bug Fixes

  • FLEX-88 Driver crash occurs when doing FIND GE on a single record table with DF_FILE_STATIC mode.

  • FLEX-150 In MS SQL when converting a table containing DF_HIGH dates, the driver crashes. The issue is that DataFlex limits dates to 2500-12-31 and dates higher than that work in Julian form, but not date form. Now we detect dates higher than 2500-12-31 (normally it ends up being dates of 2737-11-06 or Julian 999999) and set them to 2500-12-31 (Julian 913490).

  • FLEX-275 MySQL driver was not saving LOB values when inside a transaction.

  • FLEX-390 In Oracle driver, when an expired license is used, the driver reports that it is the wrong database version which is the incorrect error message.

  • FLEX-452 PostgreSQL driver returned blank string for f2s_table_tablespace and f2s_index_tablespace when the table and index were created in the pg_default tablespace instead of return pg_default.

  • FLEX-463 When using the driver from the DataFlex Studio, an expired license is not reported making it difficult to debug why the driver isn’t working.

  • FLEX-470 Warning message in trace file about odd number of digits in packed decimal columns doesn’t really matter anymore. Removed.

Flex2SQL Unicode Edition v17.0.9462.0

Flex2SQL Unicode Edition v17.0.9462.0 was released on 2022-08-18.

Bug Fixes

  • FLEX-445 DriverDef XML files had some outdated/inaccurate information that was causing warnings in the Studio.

Flex2SQL Unicode Edition v17.0.9454.0

Flex2SQL Unicode Edition v17.0.9454.0 was released on 2022-08-10.

Bug Fixes

  • FLEX-437 Updated internal max versions used on evaluation licenses.

Flex2SQL Unicode Edition v17.0.9440.0

Flex2SQL Unicode Edition v17.0.9440.0 was released on 2022-07-27.

New Features

The latest release of Flex2SQL v17 Unicode Edition now includes a 64-bit Unicode PostgreSQL driver. Additionally, the latest builds have support for Dataflex v20.1 which fixes bugs related to Datetimes. Flex2SQL no longer has to create datetime datatypes manually as Dataflex properly converts between VT_DATE (a variant containing a Datetime) and native Dataflex Datetime types. Lastly, all of the Unicode drivers now support the DF_DATABASE_IDENTIFIER_QUOTE attribute.

Bug Fixes

  • FLEX-420 - Oracle driver DF_RAW columns returning corrupt data.

  • FLEX-423 - MS SQL Driver hangs when using f2s_mssql_attach_db.

  • FLEX-428 - MDS Support Utility doesn’t recognize DF 2022.

Flex2SQL Unicode Edition v17.0.9197.3

Flex2SQL Unicode Edition v17.0.9197.3 was released on 2021-11-25.

Flex2SQL v17 Unicode Edition is the largest release of Flex2SQL in recent history. These release notes will give you a very brief overview of the areas of the product that have changed. Be sure to click the links to learn more about each topic.

The initial release includes 32-bit and 64-bit Unicode drivers for MS SQL and Oracle. These new drivers will only work on DataFlex version 20 or greater. A Conversion Guide has been added to the documentation which will give you a detailed list of changes to the driver and what you’ll need to change in your code to use our new drivers. Additionally this guide explains how you can convert your database to Unicode.

One change to call special attention to is our new Code Complete support. All Flex2SQL commands and attributes will automatically popup as you’re writing code in the DF Studio. This is a feature many developers have been clamoring for and it’s finally here! You don’t need to do anything to make this work. Just include our f2s.pkg in your code and you’re good to go!

Driver Changes

  • Datetime Handling - All dates & datetimes are now handled as native types. No more datetime string format conflicts!

  • New Embedded SQL Interface - An entirely new eSQL interface allows statements to be called repeatedly with different parameters and even improves support for parameterized queries.

  • ANSI Support Removed - Because this driver is unicode ONLY, all of the logic related to OEM-to-ANSI and ANSI codepages has been removed from the product. This driver cannot be used with an ANSI database that contains anything beyond the first 127 ASCII characters.

  • Inverse Key Column Support Limited - Inverse key columns meant for descending indexes don’t have a logical equivalent in unicode and are no longer supported. Other uses of inverse key columns are still supported.

  • Driver/License Name Changes - Our new unicode drivers have been renamed. This means that your INT files/filelist must be updated. The migration utility will detect this situation and offer to batch update your filelist and/or INT files.

Code Changes

  • New Commands - These new commands will help you convert existing code with our conceptually new interface with ease. A new f2s_activate_driver command will load and verify our driver using smarter error handling.

  • Simple Command Replacements - These are commands that have been renamed to fit our new “f2s” naming scheme.

  • Commands with syntax changes - These commands have been renamed and also have changes in how they’re used.

  • Commands replaced by attributes - These commands (mostly getters/setters) have been replaced with attributes which inherently have a getter/setter interface via the Get_Attribute/Set_Attribute commands built into DataFlex.

  • Renamed Attributes - These are existing attributes that have been renamed to fit our new “f2s” naming scheme.

  • Commands removed - Many commands that were specific to ANSI/OEM support have been removed along with commands that were only used in very old versions of DataFlex.

  • Attributes removed - As part of our interface cleanup, certain older or rarely used attributes were removed.

New Packages

  • f2s_esql.pkg - This is a class based embedded SQL interface. It is an alternative interface to our new embedded sql commands. Expect this package to be updated with new features that just can’t be duplicated via the command interface.

  • cMertechImageParser.pkg - This package lets you embedded complex SQL without line continuation syntax. It does this by using the VERY old image format from early version of DataFlex. Using this new interface allows very large or complicated SQL statements to be embedded and used in your code as-is. No need to move parts of the SQL to a string and then add to it. One line of code is all it takes to load a huge SQL statement.

  • cMertechStructAnalyzer.pkg - Mertech released a version of this many years ago. This new version allows you to load a structure from an array, file buffer, or Data Dictionary with a single line of code. This is especially useful when building Thriftly based web APIs. The amount of “plumbing” code needed to extract data from a structure and then to put data back into a structure is drastically reduced using this new package that is included with Flex2SQL.

Documentation Changes

  • Online Documentation - We are moving all of our documentation online. Note that this is an on-going process and it will be updated regularly.

  • New Command Reference - All of the renamed/new commands have brand new documentation with better examples and explanations. Each command includes a reference to the old command it replaces and also related commands. Some commands include specialized notes to help avoid common pitfalls or to clarify more complicated usage patterns.

  • New Attribute Reference - All of the renamed/new/replacement attributes have new documentation with examples and explanations of when, where and how to use that attribute. If an attribute is only usable with a certain driver this is noted as well. Some attributes have optional syntax and where this is the case examples are given of how to use that optional syntax as well.