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:
- 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.
- 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.
- 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.
- If new data types hare being used (DATETIME/INTERVAL), you must
regenerate the database
schema file and recompile your programs and forms.
- 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.
- 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.
- 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.