InterBase XE7 Update 7 Readme

From InterBase

Go Up to InterBase Readme

Release Date: May, 2017

This release introduces bug fixes. See Resolved Defects for a complete list of bug fixes.

Note: For the most current version of this document, see InterBase XE7 Update 7 Readme.

This Readme covers the following sections:

New Features and Resolved Issues

InterBase XE7 Update 7:

  • InterBase XE7 Update 7 updated to use OpenSSL version 1.0.2j.
  • Click here for a list of resolved issues.

InterBase XE7 Update 6:

  • Click here for a list of resolved issues.

InterBase XE7 Update 5:

  • Click here for a list of resolved issues.

InterBase XE7 Update 4:

  • Click here for a list of resolved issues.

InterBase XE7 Update 3:

  • Click here for a list of resolved issues.

InterBase XE7 Update 2:

  • Click here for a list of resolved issues.

InterBase XE7 Update 1: Contains the following new features and enhancements to existing features.

  • Click here for a list of resolved issues.

InterBase 2020 Update 5: Contains the following new features and enhancements to existing features.

  • Click here for a list of resolved issues.
Note: Click Previous Releases for all releases prior to InterBase XE7.

Sandboxing with InterBase ToGo for Mac OS X

You can sandbox your RAD Studio Delphi/C++ database applications for Mac OS X. See App Sandboxing with InterBase ToGo for Mac OS X for more information about sandboxing of InterBase applications with RAD Studio.


Updated Workflow for ToGo Edition

This release includes a ToGo Trial Edition that will expire 30 days after registration. See InterBase ToGo Trial Licenses for licensing information.

Change View Updates

With this release, Change Views now includes the following updates:

DROP SUBSCRIPTION
SQL Extensions
Known Constraints

DROP SUBSCRIPTION

The ability to drop a subscription was added to Change Views. The syntax for DROP SUBSCRIPTION is:

DROP SUBSCRIPTION <subscription_name> [RESTRICT | CASCADE];

To eliminate interest in observing a set of change views, a subscription must be dropped.

  • If RESTRICT is specified, then a check of existing subscribers is performed.
  • If there are subscribers, then an error is returned without dropping the subscription.
  • If CASCADE is specified, then all subscribers of this subscription are also dropped.
  • If neither RESTRICT nor CASCADE is specified, then RESTRICT is assumed.

SQL Extensions

InterBase SQL provides support for Change Views with the IS [NOT] {CHANGED | INSERTED | UPDATED | DELETED} clause.

SET SUBSCRIPTION sub_employee_changes ACTIVE;
SELECT EMP_NO, DEPT_NO, SALARY FROM EMPLOYEE WHERE SALARY IS UPDATED;
EMP_NO     DEPT_NO           SALARY
--------   ----------        ----------
109        600               75000

In the example above we see that EMP_NO=37 employee's department reassignment is not returned since he received no compensation adjustment for a lateral move. The IS CHANGED clause will detect the modification of a column due to any kind of SQL operation.

Known Constraints

  • Starting with InterBase XE7 Update 1, there is a new requirement on FOR EXECUTE STATEMENT to match every item in the SELECT list with a corresponding item in the INTO list.
  • CREATE SUBSCRIPTION syntax is limited to base tables.
  • CREATE SUBSCRIPTION can be applied to tables only by table owner.

IBConsole Updates

This release includes several significant updates for the IBConsole feature:

Start Here Tab

A "Start Here" tab opens when IBConsole is accessed. This tab contains a collection of videos, user guides, and tutorials. It also gives you access to the InterBase website that includes an overview, a description of what's new, frequently asked questions, testimonials, and tutorial videos.

IBConsole Database Pane

The pane located in the bottom left corner lists the most frequently used databases. The pane displays the database alias with a link to connect to that database; the server name; and the date when the database was last accessed.

Change Views Subscription Support

IBConsole now supports a subscription editor. This subscription returns data that have changed since the prior transaction in which the implicit view was observed. This allows you to see what data has changed since the last time you viewed it.

  • Right click on a database subscription field and click create to gain access to the Subscription Editor dialog. You can enter the name of an existing subscription. The editor lists the tablename; fieldnames; Change; Insert; Update; and Delete details. You can add or delete these details. You can also enter a description of the edited subscription.


Migration Issues for InterBase XE7

  • It is important to note that older clients (old IBConsole) will surface exceptions when connecting to newer ODS 16 databases since they will encounter data type not defined as INTEGER. The workaround is to install the newer IBConsole and connect with older and newer InterBase servers. The newer IBConsole is backward compatible for this purpose.
  • The InterBase Lock Table size needs to be increased by changing the IBconfig parameter as every entry occupies more room. To increase the InterBase Lock Table size, edit the ibconfig file and change the V4_LOCK_MEM_SIZE entry.
  • InterBase XE7 is released with ODS 16. The new engine only supports ODS >= 13. So with this change, all supported platforms will support the same ODS versions (13 to 16).
  • Some 64bit UDF libraries built with older Visual Studio versions (2005 and earlier) have been reported to not work with InterBase XE7. If you have any old UDF libraries, please do extra testing of these with the new InterBase version. Or, rebuild your UDF 64-bit libraries with the latest Visual Studio versions.
  • The new keyword ROW is "reserved" as a SQL keyword token.

Migration Issues for InterBase XE3

Windows Registry and Program Files Changes

InterBase XE3 introduces changes for better Windows compatibility. InterBase XE3 allows default installation of the product under the "Program Files" location and no longer uses the "Borland" subkey in the Windows Registry hierarchy. It now uses the "Embarcadero" subkey to track instance specific information. We strongly advise and encourage you to migrate your applications to the new environment as soon as possible.

  • Program Files Install Location
  • InterBase versions since 2009 installed the product in a different location other than the default Windows location of "Program Files". This was because of Windows UAC guidelines that put restrictions around applications without administrative privilege from writing under the "Program Files" file system folder. InterBase XE3, for server-based editions, now conforms to the Windows Application compatibility guidelines. The default install location has changed from C:\Embarcadero\InterBase to C:\Program Files\Embarcadero\InterBase.
  • Program Data Location
  • InterBase XE3 now delivers the program data files under %ALLUSERSPROFILE%\Embarcadero\InterBase directory. For each individual instance of an install, a folder is created under this and all files requiring write access are delivered here. For example, if you install InterBase XE3 with the defaults and get 'gds_db' instance, your InterBase write location and files include the following:
    • Directory: %ALLUSERSPROFILE%\Embarcadero\InterBase\gds_db
    • Files:
      • admin.ib (this is where you will deliver an older admin.ib file if you are migrating from an older InterBase version)
      • license/ (this is where you will deliver InterBase license files)
      • Examples subfolder structure with all related files
      • OTW SSL related files under "secure" subfolder
      • runtime created files such as interbase.log, *.lck, *.env

Migration Issues for InterBase XE and earlier

  • Be sure to back-up all databases, including the security database, before uninstalling the previous version.
  • We recommend that you upgrade your InterBase clients to 10.0.0.292 or above if you are targeting a SUSE 11 SP1 (or above) server. There are known problems with older clients waiting for events from a SUSE 11 SP1 server.
  • Back-up the ibconfig file if it has been customized.
  • This version creates new databases with ODS version 15.
  • Please only provide 64-bit UDF libraries for a 64-bit edition, if any, of InterBase. Note that the 64-bit server will not be able to load any 32-bit UDF libraries that you may have. The UDF library that is provided (OOTB, ib_udf) is already built for 64-bit and is installed with the product.
  • InterBase XE increased the number of records that can be stored in a table. The current count has 32-bit limitations. If you want to get a count of the number of record values beyond 32-bit, you need to take the following steps:
    • If a table does have more than 2G rows then the developer must code a CAST(COUNT(*) AS NUMERIC(18,0)) to get a 64-bit count.
  • InterBase XE implemented stronger password protection. If you have older InterBase clients (locally or from remote systems) communicating with this installation, please note the following while upgrading your system to InterBase XE3:
    • If you have an existing user authentication database (from previous InterBase versions), use that database file (copied to the InterBase XE folder) and authentication for local/remote clients will work correctly.
    • If you use the new admin.ib from InterBase XE, note that this database has "SHA-1" strength passwords (by default). If you want to continue using the (weaker) DES password algorithm (previous InterBase releases), use the ALTER DATABASE command referred to in the Stronger Password Protection topic.
    • If you want to use "stronger password length" (provided in InterBase XE), you will need to recreate your user accounts AND install the new InterBase clients in remote machines connecting to this InterBase XE server. This is because the "old" InterBase clients are not capable of computing the "SHA-1" passwords and thus pass in the "DES" strength passwords which in turn do not match what the InterBase XE server expects. This gives you the error "Your user name and password are not defined...".
  • InterBase XE updated SSL parameter names. The old OTW client properties have been replaced by new OTW properties. Please refer to the Operations Guide"Setting up OTW Encryption" and Table 5.2 located in Chapter 5.
Restoring database results in the error "unassigned code"
When restoring a database with InterBase XE, get the error unassigned code. With databases with a long lineage or databases backed up with InterBase 2009 and restored with InterBase XE, each case has different metadata security settings. So when selecting a system table (for example: RDB$RELATIONS) you get the error message: no permission for read/select access to table RDB$RELATIONS by user SYSDBA.
This error occurs with databases which have these criteria:
  • Originally created with a version of InterBase prior to InterBase 6.5.
  • Backed up with a version of InterBase prior to InterBase 2009.
  • Readmeta.sql has not been previously applied.
This behavior is exhibited due to stricter enforcement of meta data rights in InterBase XE during the restore of a database.
Solution
To resolve this problem, execute readmeta.sql against your database before you back it up. readmeta.sql may be found in \examples\security. You can execute readmeta.sql against your database using isql or IBConsole.
Explanation:
The problem occurs with databases that have a long lineage. The two cases are (1) a database has a restore history of IB6->IB7->IB2007->IB2009->IBXE; and (2) a database backed up and restored as IB2009->IBXE. Each case has different metadata security settings. The first instance never had metadata security because it originated from IB6. However with the second instance, it was created (not restored) by IB2009 with a full complement of security privileges for all system tables.
With the first case, the database was backed up and restored and with each succeeding release, the new release would install privileges for the new system tables in that release (think RDB$USERS, RDB$ENCRYPTIONS, RDB$ROLES, etc.). But it could not alter the original system tables because it had no way of knowing if the database owner had already altered their security privileges. For example, a user might have revoked all privileges to RDB$TRIGGERS and RDB$PROCEDURES to conceal their trigger and stored procedure code.
Also, in the first case, a SYSDBA may have run readmeta.sql years ago and refined the metadata from that baseline to a custom security profile. InterBase cannot override that customization by automatically resetting it after the XE restore. InterBase XE cannot assume that every database it restores should unconditionally install the default metadata privileges because it does not know the history of individual databases.
So it is recommended to run readmeta.sql, which sets the default or starting point for configuring it the way you want it. This advice is independent of whether you are migrating to XE.
Example using isql:
isql "path to database"
-user sysdba -password masterkey -i readmeta.sql
Executing readmeta.sql with IBConsole
  1. Connect to your database with IBConsole.
  2. Tools | Interactive SQL ...
  3. Query | Load Script, select readmeta.sql, click OK.
Error: No Permission for read/select access to table RDB$XXXX by user SYSDBA
Databases originally created before InterBase 6.5 may have the following error: No permission for read/select access to table RDB$XXXX by user SYSDBA with InterBase XE.
Solution:
InterBase XE enforces tighter meta data security and this error may result from doing meta data operations on databases originally created with versions of InterBase prior to version 6.5. Meta data operations involve requesting information about system objects such as listing system objects or updating them and using the Performance Monitor.
To resolve this error you need to perform two similar operations. The first operation grants rights to system tables. To do so, execute readmeta.sql from the examples\security folder in your InterBase install directory. You can execute readmeta.sql against your database using isql or IBConsole.
Example using isql:
isql "path to database"
-user sysdba -password masterkey -i readmeta.sql
Executing readmeta.sql with IBConsole
  1. Connect to your database with IBConsole.
  2. Tools | Interactive SQL ...
  3. Query | Load Script, select readmeta.sql, click OK.
Second, you need to grant rights to system temporary tables if you are going to do performance monitoring. Due to potential security concerns, most installations will want to grant rights for system temporary tables only to sysdba and the database owner, which is what is presented below. If you wish for all users to be able to view system temporary tables, modify this example to GRANT TO PUBLIC. Some installations will want only specific users to have rights, in which case a more customized script may be needed.
To grant rights for system temporary tables, save the following as a text file, then execute it the same as readmeta.sql above.
create procedure granttmp as
   declare variable stmt varchar(1024);
   declare variable ownername varchar(66);
   declare variable tablename varchar(66);
 begin
   select rdb$owner_name from rdb$relations where rdb$relation_name = 'RDB$RELATIONS'
   into :ownername;
For select rdb$relation_name from rdb$relations where rdb$system_flag>0 and rdb$relation_name starts with 'TMP$' into :tablename do begin
stmt = 'grant all on ' || tablename || ' to sysdba';
   execute statement stmt;
   stmt = 'grant all on ' || tablename || ' to ' || ownername;
   execute statement stmt;
 end
 end;
 execute procedure granttmp;
 drop procedure granttemp;
 commit;
 exit;

Known Issues

  • Change View SQL keywords – The Change View feature adds several reserved keywords which may conflict with SQL objects. The keywords are: CHANGE, CHANGED, INSERTED, UPDATED, and DELETED.
  • It is important to note that older clients (old IBConsole) will surface exceptions when connecting to newer ODS 16 databases since they will encounter data type not defined as INTEGER. The workaround is to install the newer IBConsole and connect with older and newer InterBase servers. The newer IBConsole is backward compatible for this purpose.
  • IBConsole Performance Monitoring provides wrong values for ODS 16, dialect 1 database.
Workaround: There is no workaround for ODS 16 dialect 1. Use dialect 3 database to test IBConsole Performance Monitoring.
  • The 16-bit UNICODE character sets UNICODE_LE and UNICODE_BE only work for Server character sets. These character sets cannot be used as a client character set. If your client needs full UNICODE character support, please use UTF8 instead of UNICODE_LE and UNICODE_BE for the client character set (aka LC_CSET). A client can use the UTF8 (or other native) client character set to connect with a UNICODE database.
  • Windows Error Reporting (WER) dialog pops up intermittently if and when an InterBase server crashes.
Resolution: We are working on fixing any crashes that we are aware of. In the meantime you can disable the Windows Error Reporting dialog from popping up by modifying the Windows Registry thus. Set the registry attribute HKEY_CURRENT_USERS\Software\Microsoft\Windows\Windows Error Reporting\DontShowUI value to 1 to disable. This is as per recommendation of MSDN article http://msdn.microsoft.com/en-us/library/bb513638(VS.85).aspx. We may address this configurable option from within ibserver.exe in future builds by informing WER to disable this only for InterBase server binary.
  • Issue: Hyperthreading: InterBase supports Hyperthreading only on 32-bit Edition on Windows, and on older Intel CPU architectures. It is a known issue that the feature does not work on some of the latest CPU architectures. If your InterBase deployment has licensed less CPU cores than is available on the system, you can customize your installation via the CPU_AFFINITY setting in IBConfig to choose the desired CPU cores for InterBase.

Resolved Defects

Additional Resources

Embarcadero Technologies Technical Support

If you have a valid maintenance contract with Embarcadero Technologies, the Embarcadero Technical Support team is available to assist you with any problems you have with our applications. Our maintenance contract also entitles registered users of Embarcadero Technologies products to download free software upgrades during the active contract period. Evaluators receive free technical support for the term of their evaluation. We encourage you to visit the Support section of our Web site.

Embarcadero Technologies on the Web

Evaluators receive free technical support for the term of their evaluation. To download evaluations of Embarcadero Technologies products or to learn more about our company and our products, visit us at http://www.embarcadero.com/.