Migrating from Genero db 3.61 to 3.80 and +

This section lists several issues to be addressed when migrating from Genero db 3.61 to Genero db 3.80 (and higher). As described later in this page for some SQL topics, there are important differences with Informix® emulations when using Genero db 3.61 versus Genero db 3.80. Migrating to a major new version of Genero db should not only be motivated by bug fixes. You should also benefit from the new Informix feature emulations implemented in the Genero db server. For example, the main Informix-compatibility improvement in Genero db 3.80 is the support for Informix-style DATETIME and INTERVAL data types.

While we strongly recommend that you take the time to migrate your database schema and to use the new native types provided by the last Genero db server, you may want to install the most recent server but to keep using the old Informix emulations. Starting with Genero BDL 2.20.05, you can define an FGLPROFILE parameter to force the database driver to work in a specific mode:
dbi.database.dbname.ads.driver.mode ={"3.61"|"3.80"|"3.81"}

Here is a checklist to help you prepare for your migration to Genero db 3.80:

  1. Make sure that you use the correct database driver, as described in the Prepare the runtime environment - connecting to the database section. Starting with dbmads380 (since Genero BDL version 2.11.14), the server version string is tested by the driver. If the server version does not match, the program will stop with error -6319.
  2. DATETIME and INTERVAL types are now native data types in Genero db 3.80. Before 3.80, DATETIME and INTERVAL had to be stored in TIME, TIMESTAMP and CHAR(50) columns. In order to use the new Informix-compatible data types, you must modify the existing database tables (ALTER TABLE) as well as your database creation scripts . Keep in mind that when creating permanent or temporary tables in your programs at runtime, the dbmads380 driver will no longer convert DATETIME and INTERVAL types to TIME, TIMESTAMP or CHAR(50); the native Genero db DATETIME and INTERVAL types will be used. New data type usage also has an impact on the formatting with LOAD and UNLOAD instructions. For more details, see DATETIME data type, INTERVAL data type and the data type conversion matrix at the end of this page.
  3. DECIMAL(p,s) data type now supports a precision of 38 digits. With 3.61, the precision was 15 digits, and it was not possible to store DECIMAL or MONEY data using a higher precision. This was a 3.61 limitation/bug. With 3.80, the DECIMAL(p,s) data type can support the 32-digit maximum imposed by Informix. Migrating to 3.80 will not have an impact.
  4. If new data types hare being used (DATETIME/INTERVAL), you must regenerate the database schema file and recompile your programs and forms.
  5. We strongly recommend that you set the COMPATIBILITY_MODE=INFORMIX server parameter. Without this configuration setting, the dbmads380 and + drivers will refuse to connect to the server. You can disable this checking with an FGLPROFILE parameter, but it is not recommended, as some SQL features will then not work as expected.
  6. SQL Interruption (OPTIONS SQL INTERRUPT ON/OFF) can now be used with Genero db 3.80. This important feature was not working with 3.61. With this feature, you can cancel long running queries. See SQL Interruption for more details.
  7. You must also consider Genero db product specific changes independent from Genero BDL and Genero db database driver changes, which are not covered by this ODI migration guide. For example, Genero db 3.80 includes enhancements in user management and policy. You must now GRANT CREATE SESSION privileges to let users connect to the server. See Genero db documentation and release notes for more details.