CHAPTER 3: Compatibility



Version 8.62 is not compatible with previous Empress versions.

When upgrading to Version 8.62, all applications need to be recompiled, relinked. Furthermore, all Persistent Stored Modules that use any Empress routines, if present in the database, would have to be recompiled, relinked.

To upgrade V6.2 and newer databases, Empress users can use Empress utility empcnvt.

The upgrade involves data dictionary conversions which include adding new system tables into the data dictionary and updating some files and directories. Once database is fully upgraded, it will support all new features provided by the Version 8.62.
To upgrade V8.20 and V8.60 databases, Empress users can also use Empress utility empupgrd.

Once database is upgraded, only Version 8.62 applications can access the database.

The utilities empcnvt and empupgrd are documented in Volume A2: Manual Pages.

3.1. Syntax Compatibility

The following syntax changes could raise compatibility issues in applications written for the older Empress versions.

1) The old Empress outer join syntax becomes obsolete. The user has to use the new Empress ANSI compatible syntax.

For example:

    select * from t1, outer t2 where t1.id = t2.id

is not supported. The correct syntax is:

    select * from t1 right join t2 on t1.id = t2.id

2) In Empress Version 8.62, if an alias is assigned to a table, all explicit references to the table in the SQL statement must use the alias, not the table name.

For example:

    select t1.id from t1 t where t.id > 5

is not allowed. The correct syntax is:

    select t.id from t1 t where t.id > 5

3) In Empress Version 8.62, a statement cannot have a HAVING clause and an ORDER BY clause without a GROUP BY clause.

For example:

    select sum(a) from t having sum(t.a) = 10 order by c

is not allowed. The correct syntax is:

    select sum(a), c from t group by c having sum(t.a) = 10 order by c

4) In Empress Version 8.62, WHERE clause cannot be used after an INNER JOIN or a CROSS JOIN clause without an ON clause.

For example:

    select * from t1 INNER JOIN t2 where t1.id = t2.id

is not allowed. The correct syntax is:

    select * from t1 INNER JOIN t2 on t1.id = t2.id

5) In Empress Version 8.62, An aggregate function is not allowed to appear in the WHERE clause.

For example:

    select * from t where avg(id) > 10

is not supported.

6) In Empress Version 8.62, a list of new reserved keywords was introduced (see this Version Notes: Reserved Keywords).