InterBase XE3 Update 1 now available

By: Tim DelChiaro

Abstract: Get the latest update for InterBase XE3

InterBase XE3 Update 1 was released on November 26, 2012. Here are the download links and readme info. 

    

InterBase XE3 Update 1 (11.0.1.429) for Windows

InterBase XE3 Update 1 installer for Windows, English only documentation. 
Version: 11.0.1.429
Windows 32-bit and Windows 64-bit

    

InterBase XE3 Update 1 (11.0.1.429) ToGo Edition, Windows/MacOSX

InterBase XE3 ToGo Edition for Windows (32-bit and 64-bit Editions) and Mac OS X (32-bit Edition) See ToGo QuickStart Guide for further information

The free InterBase XE3 Developer Edition was also updated at the same time. To get the updated version, you can download a new copy of InterBase Developer Edition here. Or if you're a RAD Studio, Delphi or C++Builder XE3 user, this new version of InterBase XE3 Developer Edition will automatically be installed when you move up to Update 1 for Delphi, C++Builder or RAD Studio XE3

The readme below is a snapshot. You can always see the latest version at http://docs.embarcadero.com/products/interbase/IBXE3Update1/Readme.html

    InterBase XE3 Update 1 Readme

Updated: November, 2012

This file contains important information that may not appear in the online Help. Please read this file in its entirety.
Note: For the latest version of this document, please visit http://docs.embarcadero.com/products/interbase/

The Readme covers the following sections:

    System Requirements

    Description of User Guides

The document set, in PDF format, requires about 13MB of space on your disk. The documents install by default when Client and Server or Client is chosen during the InterBase install process. However, in a custom install, it is possible to choose an install that does not include the document set. If you want to install documents at a later time, run the InterBase install, choose Custom, and select the documentation.

You can also copy them from the Documentation directory of the InterBase CD-ROM or download file. Detailed command-line and step-by-step instructions are provided for most topics. Where applicable, instructions are also provided on how to perform a task or use a feature using IBConsole, the InterBase user interface. The following table displays each user guide and a description of the topics covered.

Guide Name Description of Topics Covered
Operations Guide How-to information on working with InterBase databases. Topics include:
  • Using IBConsole
  • Configuring and operating the InterBase server
  • Network configuration
  • Performing backups and restores
  • Using journaling and journal archiving
  • Database security
  • Interactive queries
Data Definition Guide How-to information on designing and building InterBase databases. Topics include:
  • Specifying datatypes
  • Working with domains, tables and indexes
  • Working with procedures, triggers and generators
  • Encrypting databases and columns
  • Character sets and collation orders
Developer's Guide How-to information on developing InterBase database applications using Embarcadero development tools, JDBC, and ODBC. Topics include:
  • Connecting to databases
  • Understanding datasets
  • Working with tables, queries, stored procedures, cached updated and events
  • Working with UDF and Blob filters
  • Importing and exporting data
  • Working with InterBase Services
  • Writing install wizards
API Guide How-to information on developing InterBase applications using the InterBase API interface. Topics include:
  • Application requirements
  • Programming with the InterBase API
  • Working with databases, transactions, dynamic SQL, blob data, arrays, conversions, and service
  • Using the install and licensing APIs
  • Exporting XML
  • Handling error conditions
  • The InterBase API function reference
Embedded SQL Guide How-to information on developing InterBase applications using embedded SQL. Topics include:
  • Application requirements
  • Working with databases, transactions, data definition statements, data, dates and times, arrays, stored procedures and events
  • Error handling
  • Dynamic SQL
  • Preprocessing, compiling and linking
Language Reference Guide This is a reference guide to InterBase elements. Topics include:
  • The SQL statement and function reference
  • Procedures and triggers
  • Keywords
  • Error codes and messages
  • System tables, temporary tables, and views
  • Character sets and collation orders
IBSetup.html This document provides detailed installation and registration instructions for all platforms.

    New Features

InterBase XE3 Update 1 contains the following new feature. Click here for a list of resolved defects.

InterBase XE3 contains the following new features. Click here for a list of resolved defects.

Listed below are the new features from previous releases:

    Call Home Feature

If you have obtained InterBase from a third party as part of the third party application, or if you are a value-added reseller embedding InterBase in your application, it may contain a "call home" feature. This feature makes a one-time connection to the Embarcadero Product Registration System and passes the following information:

  • The license that is in use 
  • The underlying operating system 
  • Device type

No other information, including any user identifying information, is collected during the data exchange with the Embarcadero Product Registration System.

    ODBC Driver Improvements

The DataDirect ODBC drivers are no longer shipped with InterBase XE3. InterBase XE3 now includes a new offering of InterBase ODBC driver. For more information, please refer toProgramming Applications with ODBC in the Developers Guide.pdf.

    Concurrent Index Creation

When restoring a database, once a table's data is restored, the indexes for the table can be created all at the same time. This helps the restore response time where there are idle threads/cores that facilitate the engine doing the job that much quicker by benefiting from sharing the cache for table data. Also, re-computing index SELECTIVITY with SET STATISTICS can be concurrent. InterBase XE3 enables one assistant thread for such operations by default; you can adjust the number of concurrent threads available for such operations by modifying the configuration parameter MAX_ASSISTANTS in ibconfig file.

    NO RESERVE SPACE for Database and User Tables

This feature is useful if you have very, large databases (VLDB) with tables that are archival in nature. An archival table means that a table's rows are infrequently or never UPDATED or DELETED; have complex queries, such as aggregates and analytics that process a high percentage of rows; and where indexes are rebuilt and the database is backed and/or restored frequently. These database operations could see a performance improve of 20% or more with a savings in storage space.

By default, InterBase reserves a small amount of space in each data page of a table to optimize UPDATE and DELETE operations on resident rows. This reserve space can amount to 20% or more of the total space occupied by all of the table's rows. Some tables archive historical data or data that are UPDATED infrequently or not at all and their rows may never be deleted. Database operations that process most or all of the rows, such as backup, restore, index creation, aggregate computation have always suffered performance penalties proportional to this reservation overhead.

For this reason, a CREATE/ALTER TABLE clause is introduced that prevents space reservation and maximizes row packing for the most efficient fill ratio. At the database level, it has been possible to restore a database with the -USE_ALL_SPACE switch so that no space is reserved for any table. To change the storage behavior in a like manner for new or existing databases, the same clause is introduced for CREATE/ALTER DATABASE.

User Interface

To effect the new storage behavior, a non-standard SQL clause is added:

  • CREATE DATABASE <file name> ... [NO] RESERVE SPACE. Clause is presented before the secondary file specification.
  • CREATE TABLE <table name> ... [NO] RESERVE SPACE. Clause is presented after the column list specification and optional ON COMMIT clause for temporary tables.
  • ALTER DATABASE ... SET [NO] RESERVE SPACE. Clause is presented in any order with other SET elements.
  • ALTER TABLE <table name> ... SET [NO] RESERVE SPACE. Clause is presented in any order with other ADD, DROP, ALTER elements.

    This causes newly INSERTED rows to not reserve space on their data page for a DELETE record version stub, as would normally be the case. Over many row insertions, a decrease in storage size should be observed relative to what the table size would be in the absence of this feature. The optional NO keyword when used with ALTER TABLE toggles the behavior to the alternate state of the current storage behavior for the table.

    The NO RESERVE storage modifier is preserved across database backup and restore. This state is stored as flag bit 64 (0x100) of RDB$RELATIONS.RDB$FLAGS for the user's table entry in the system table RDB$RELATIONS.

    The clause is displayed by ISQL's SHOW TABLE command following the enumeration of a table's column definitions. It is also visible using ISQL's Extract (-x) command in a syntax-correct manner for the CREATE TABLE output of the respective table listing.The state for database-wide storage behavior is stored in a like manner for the RDB$DATABASE entry in RDB$RELATIONS.
Requirements and Constraints
  • InterBase XE3 can set the NO RESERVE table state against any database ODS it can attach. If the database is copied to an older installed InterBase version, the storage behavior cannot be enforced and subsequent INSERTED rows will reserve space on page for record back versions. This will do no harm other than consume space.
  • ALTERING an existing table to not reserve space has no effect on existing rows. A backup/restore is necessary if this is required, so a user should plan accordingly if it is expected that a table would grow very large. However, newly inserted rows will start to reoccupy that space should the state of a given data page change to indicate that space is available for new rows.
  • When the database-wide state is set to NO RESERVE SPACE, it takes precedence over the setting at the table-level.
  • The Table-level state is "sticky" in that its state is preserved when the database-wide state is toggled back to the default RESERVE SPACE.
  • It is not necessary to detach and re-attach the database for the new settings to take effect.
  • The new keywords RESERVE and SPACE are not "reserved" as SQL keyword tokens.
  • When toggling back to the default behavior there is no output (e.g. RESERVE SPACE) or observable state, except the RDB$RELATIONS.RDB$FLAGS has the RESERVE bit cleared. This is intentional to avoid polluting an otherwise clean ISQL extract with non-standard SQL extensions that might affect portability.
  • You can opt-out from this reservation at restore time by providing the USE_ALL_SPACE option to gbak for the whole database.

    Physical Database Portability Between Windows, MacOSX, and Linux

InterBase XE3 makes deployment on Windows, Mac OSX, and Linux even easier. It allows you to copy database files between Windows 32-bit and 64-bit, MacOSX, and Linux. You can develop on one platform, create your database on your development platform, and then easily deploy your database to other supported platforms. For example, you can develop with RAD studio on Windows 32-bit, create your databases here, and then just include these databases as is as part of your deployment for Windows 64-bit and Mac OSX. 

There are some restrictions and you may not use certain features. If you want to take advantage of these features, they are listed below. This copying feature is certified for a single-file database that does not have the following; UDF or Filters, External Tables, Journaling, Online, and Incremental dumps, and Shadowing.

As in the previous versions of InterBase you can use the GBAK switch -transportable as a "safe" transportable mechanism. This switch permits the database to be restored to another platform supported by InterBase. It is cross-endian compatible, so using gbak -t allows you to move databases between Windows, MacOSX, and Linux to Solaris. For more information please refer to the Operations Guide.pdf.General Guidelines for Using GBAK (page 8-4).

Note: It is important to note that database files cannot be directly moved from Little Endian to Big Endian platforms and vice-versa.

Features with Restrictions

The features listed below may require additional attention This usually involves a platforms' peculiar pathname conventions, for example. pathname separator, pathname sensitivity, etc.

  • UDF and Filter libraries
  • Multi-file databases
  • External Tables
  • Journaling
  • Online Dump and Incremental Dump
  • Shadow Database files (this feature is not available in ToGo Edition)
  • System Encryption Password (External SEP storage functionality has NodeID dependency)
  • Database file names on disk are case-sensitive on some platforms (UNIX) and case-insensitive on others.
    • Be aware of this when you are directly mentioning a database filesname in your connection URL, or, using features that use the database file name (like Database Aliasing)

It is not possible to certify all the different ways of copying an InterBase multifile DB configuration. So you have to be aware of issues for your particular environment. An option is to simplify to a single DB file and then configure for multifile operation at deployment time. For more information please refer to the Operations Guide.pdf.Initiating Multi- and Single-file Backups (page 8-5ff).

    New IBCONFIG Parameter

The InterBase XE Update 4 patch installer provides an ibconfig.orig file. This file includes the new IBCONFIG parameter of "MAX_DB_VIRMEM_USE" This parameter controls the limit of Virtual Memory use, after which database cache allocations and expansions are disallowed. The default is 90 (however, if database cache allocation requests come in before we use 90% of Virtual Memory for the process. it is allowed).

If you have not made any changes to your default "ibconfig" from a previous installation, you can copy ibconfig.orig over ibconfig and restart the server. For further details, see the parameter definition and comments in "ibconfig" file.

    ADO.NET Provider for InterBase (32-bit and 64-bit)

RadStudio now has 64-bit drivers for dbExpress (with RadStudio XE2) which means you can use the 64-bit Ado.NET driver. The existing 32-bit installer of Ado.NET driver has been modified and incorporates the 64-bit assemblies into the same installer. This installer is intelligent enough to install the required assemblies on the target OS platform (32-bit assemblies for 32-bit OS, 32 and 64 assemblies on 64-bit OS).
For more information, please refer to ADO.NET Provider for InterBase (32-bit and 64-bit) in the Developer's Guide.pdf.

    OTW SSL TCP/IP Connection Update

If you are using OTW SSL TCP/IP connection: 
Starting with InterBase XE Update 3 release you no longer need to specify your server hostname by the IBSSL_SERVER_HOST_NAME parameter in /secure/server/ibss_config file. The new ibss_config default file included with this release has this parameter commented out, so this can be used in most cases. When the IBSSL_SERVER_HOST_NAME parameter is not set, the InterBase server will use the same hostname as used by the non-SSL TCP/IP connection.

If you do specify the hostname in the ibss_config file, you must ensure that the hostname resolves to IPv4 TCP/IP address and not a IPv6 address. One way to force a IPv4 resolution is to include your hostname in the hosts file with a valid IPv4 address. On Windows your hostname should be in the <Windows system file>\drivers\etc\hosts file.

    DES Encryption Keys Backup and Restore Enhancement

Backup/Restore operations can now be restricted on any encrypted database. For more information, please refer to Encrypting Your Data, page 13-20 in the Data Definition Guide.pdf.

    OpenSSL Updated from 1.0.0a to 1.0.0d

InterBase XE Update 2 has upgraded from 1.0.0a to OpenSSL 1.0.0d. For more information on using OpenSSL in InterBase XE, please reference Network Configuration in theOperations Guide.pdf, as well as Encrypting your Data in the Data Definition.pdf. For additional information on OpenSSL please refer to: http://openssl.org/

    InterBase Direct I/O for DataBase Files

InterBase XE Update 2 enables the "direct I/O" functionality on Windows OS. This was implemented to circumvent the issue observed by many on Windows 2008 R2 and Windows 7 64-bit OS editions where System File Cache uses up too much physical memory leading to sluggish system performance. For more information, please refer to InterBase Direct I/O for DataBase Files on page 12-15 in the Operations Guide.pdf.

    InterBase 32-Bit and 64-Bit Native Binary Applications

For both the 32-bit and 64-bit editions, if you are still using dialect 1, you must migrate to dialect 3. Performance monitor tables will not work in the counters and will generate errors. For more information please reference Understanding SQL dialects in the Operations Guide.pdf..

InterBase 32-bit Native Binary Application

The ib_install.exe is delivered with the 32-bit Edition issue. You will need to run this installer if you want to to use the 32-bit Edition on Windows.

InterBase 64-Bit Native Binary Application

  • With the 64-bit edition, you can continue to use 32-bit InterBase applications.
  • Please note that the 64-bit kit cannot be installed on a 32-bit operating system.
  • Because of InterBases focus on backward compatibility, it is easier to migrate to new editions.

The topics below cover the critical information you need to implement the 64-bit application.

Compatability Issues
  • The local and remote connections from older clients are expected to work with newer 32-bit/64-bit servers; and vice-versa.
  • IBMgr.exe and IBConsole.exe continue to be 32-bit applications. But they are expected to work with 32-bit and 64-bit servers.
  • This version supports existing ODS 12.x and ODS 13.x databases that were introduced in previous releases of InterBase.
  • You can expect to move databases between 32-bit and 64-bit kits of InterBase (with this version) as long as they support compatible ODS versions.
Client Library Name Changes for 64-Bit DLL's

The following table displays the new client library names for the 64-bit DLL's.

Library Name Location Notes
ibclient64.dll <interbase>/bin This is a new InterBase client DLL for native 64-bit applications. It is being used by 64-bit InterBase command-line tools currently, and will need to be deployed with 64-bit applications built by customers (in place of gds32.dll which is for the 32-bit target).
ibxml64.dll <interbase>/bin This is a new InterBase XML DLL for native 64-bit applications. It will need to be deployed with 64-bit applications built by customers (in place of ibxml.dll which is for the 32-bit target) if they are using the InterBase XML api.
ib_util64.dll <interbase>/bin This is a new InterBase UTILS DLL for native 64-bit applications. It will need to be deployed with 64-bit applications built by customers (in place of ib_util.dll which is for the 32-bit target).
ibclient64_ms.lib <interbase>/SDK/lib_ms Import library for building 64-bit applications targeting the ibclient64.dll.
ibxml64_ms.lib <interbase>/SDK/lib_ms Import library for building 64-bit applications targeting the ibxml64.dll.
ib_util64_ms.lib <interbase>/SDK/lib_ms Import library for building 64-bit applications targeting the ib_util64.dll.

    JDBC Driver Updates for Blob/Clob Support

New interfaces have been implemented for JDBC. For more information on Blob, Clob, and other related API Interfaces, please refer to Programming with JDBC, page 4-41 in theDeveloper's Guide.pdf

    Stronger Password Protection

Stronger password protection on InterBase databases can be implemented with InterBase XE. This additional functionality supports a longer effective password length, resulting in stronger password protection. For more information, please refer to Implementing Stronger Password Protection on page 6-4 in the Operations Guide.pdf

    Larger Database Cache Settings for 64-bit InterBase

There is now a larger database cache setting for 64-bit InterBase. The limit for the 64-bit engine is 75 million pages, as compared to 750K pages for 32-bit engines. For more information, please refer to Various InterBase Limits on page B-2 in the Operation's Guide.pdf

    EXECUTE STATEMENT for Stored Procedures

InterBase XE now provides support for the EXECUTE STATEMENT functionality. This feature enhances the InterBase Stored Procedure language. Once this is implemented, Stored Procedure developers can embed three variations of EXECUTE STATEMENT within their Stored Procedures. The variations depend on the number of rows returned from the EXECUTE STATEMENT command. The three cases are: No rows or data returned; One row of data returned; and Variable number of rows returned. For more information, please refer to EXECUTE STATEMENT on page 3-8 in the Language Reference Guide.pdf.

    Database Fast Sweep

Sweeping a database is a systematic way of removing outdated records. Periodic sweeping prevents a database from growing too large. In the past sweeping slowed system performance and users disabled the automatic database sweep function because of the impact on product operations. With the implementation of the fast sweep optimization in InterBase XE, the memory allocation issue has been mitigated. The user has the option to configure their databases for automatic sweep. For more information, please refer to Sweep Interval and Automated Housekeeping on page 7-22 in the Operation Guide.pdf.

    Table-Specific Blocking Factor

The term blocking factor is used to denote the number of records stored in a block. InterBase employs a single database-wide blocking factor that maximizes the number of rows that can be stored on a data page. The blocking factor values for individual tables can be observed in the system columns:

  • RDB$RELATIONS.RDB$DATA_BLOCKING_FACTOR
  • RDB$RELATIONS.RDB$BLOB_BLOCKING_FACTOR

For more information, please refer to Table 6.26 - RDB$RELATIONS on page 6-30 in the Language Reference Guide.pdf.

    Larger Index Key Segment Size

With the ODS 15 databases the maximum index key size limit is increased. Now larger column data can use this for both single-byte character sets and multi-byte (such as UTF8) columns. For more information, please refer to Various InterBase Limits, Table B.1 on page B-4 in the Operation Guide.pdf.

    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

New IBCONFIG Parameter APPDATA_DIRECTORY

To indicate the above "Program Data" location value to all InterBase applications (and database engine), a new IBCONFIG parameter value for APPDATA_DIRECTORY (new parameter in InterBase XE3) is now added automatically at the time of install. This value provides the absolute path of the above "Program Data" location. See the file <interbase>/ibconfig file for further details.

Program Files Location
The "Program Files" location will be used primarily for files which are required read only.

  • Directory: System "Program Files" (varies for 32-bit or 64-bit Windows)
    • ibconfig (this is where you will deliver an older customized ibconfig file if you are migrating from an older InterBase version)
    • binaries including server, graphical and command-line tools libraries
    • SDK
    • interbase.msg
    • Doc subfolder with PDF and HTML docs
    • Product EULA (License.txt and oss_license_notice.txt)

Windows Registry Changes from Borland to Embarcadero
InterBase uses the Windows Registry to store information for a particular installation of InterBase server-based products. Due to its Borland legacy, InterBase versions XE and before had stored this information under the Windows Registry key "HKEY_LOCAL_MACHINE\Software\Borland\InterBase\Servers\".

InterBase XE3 now uses the Windows Registry hierarchy under "HKEY_LOCAL_MACHINE\Software\Embarcadero\InterBase\Servers\". The InterBase server, guardian, client library, IBMgr, and IBConsole programs have been updated to support this change.

Backward Compatibility
If you have applications using older InterBase version client libraries on the same machine and must connect locally to the new server, update your client library to the latest version.

If you cannot do this and still need the old client libraries to access the "Borland" hierarchy registry settings, use the InterBase tool "instreg.exe". instreg now provides a "legacy" option to create the "Borland" hierarchy entries for your new instance so your application continues to work with the new InterBase server.

instreg has the following usage:

    instreg <action> [action] instance <instance name> [legacy]
    where <action> currently supports the following values... {install, display, remove}
    For example:
      instreg install "C:\Program Files\Embarcadero\InterBase" instance gds_db legacy
      instreg display instance gds_db
      
You can also use the Windows command "reg" to query for specific Windows registry key values, and thus verify this change.
    For example:
      REG QUERY HKLM\Software\Borland\Interbase\Servers /s
      

    Migration Issues for InterBase XE

  • 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 XE:
    • 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 don't 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 OperationsGuide.pdf "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 couldn't 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 can't assume that every database it restores should unconditionally install the default metadata privileges because it doesn't 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 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 temorary 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

UNICODE Character Sets

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.

InterBase XE3 supports no defined UNICODE collations in this release. The default collation is binary sort order for UNICODE.

Windows Error Reporting

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.

    Resolved Defects

The following table lists all resolved defects for InterBase. 


External Defect # (QC)
SalesForce #
Internal Defect #
Description
InterBase XE3 Update 1: November-2012, Bugs Fixed in 11.0.1 Version. 
INTB-1693 Trying to encrypt a database with AES puts database in an unusable state if "strong encryption" is not licensed (as in Developer Edition).
INTB-1681 Files from security folder from XE not installed.
INTB-1660 XE3 client library cannot connect locally via IPC to XE server.
INTB-1656 InterBase installer on Windows does not install examples database backup files (files are zero size).
QC: 108767, INTB-1634 ODBC Driver does not work with Microsoft Access 2007 when used against a UTF8 database.
INTB-1628 INSERT after massive DELETE causes Deadlock error.
INTB-1592 Error when trying to do an ORDER BY on a column that is the result of a coalesce expression.
INTB-1573 CALL HOME functionality required for superkey licenses (perpetual and time-limited).
INTB-1521 InterBase clients do not write interbase.log messages in the APPDATA_DIRECTORY folder.
INTB-1455 Corrupted admin.ib through OTW for constant connect/disconnect testing.
INTB-1336 Deadlock error after deleting and re-inserting large numbers of rows.
InterBase XE3: August-2012, Bugs Fixed in 11.0.0 Version. 
INTB-1569 InterBase tools cannot use service name SERVICE_MGR in uppercase form; lowercase "service_mgr" works.
INTB-1566 Calling isc_dsql_batch_execute_immed with 128K+ batch data, causes server CPU loop.
INTB-1524 Database files accessed with different path names on Windows (for example admin.ib) produce server hang.
QC: 106427, INTB-1467 Database shutdown does not prevent non-SYSDBA users from connecting.
INTB-1464 SQL Optimizer makes an inaccurate estimate of table cardinality for large records.
QC: 7952 , INTB-1462 Release the lock on a file used by an external file after drop table.
INTB-1459 iblockpr fails on Windows. If a .lck file exists, running iblockpr.exe on Windows always resulted in the error: "unable to access lock table - file too small".
SalesForce:265124, INTB-1440 SQL Optimizer chooses a less optimal plan in XE as compared to InterBase 2007 when using multiple JOIN conditions.
QC: 106199 , INTB-1431 JIRA Issue INTB-1407 has been resolved but Blob retrieval for large blobs was still a problem. This issue has now been resolved as well.
QC: 105905 , INTB-1410 Incremental database dump fails to report error when target database is in use.
QC: 106199 , INTB-1407 Get an error when inserting a binary file larger than 32kb to a BLOB field. When directly using InterClient classes, the application hangs until it is manually terminated. When using Hibernate on top of it, the interbase.interclient.CommunicationException appears.
INTB-1361 TCS: BUG_8189 causes request synchronization error when executing through IPC connections.
QC: 98872 , INTB-1239 "IB server manager" option appears on the remote Windows server.
InterBase XE Update 4: April-2012, Bugs Fixed in 10.0.4 Version
INTB-1357 Database validation reports "index key is out of order" for large index keys (having values greater than 256 bytes) when GFIX validation is run on it.
INTB-1352 The Index on VARCHAR(252) or larger column having NULL value results in index corruption/validation error.
INTB-1338 The execute statement does not return the last two characters of varchar.
INTB-1337 The InterBase Guardian Service Display name has a trailing space. This breaks an application that relies on this name to start and stop the service with Net Start and Net Stop.
INTB-1334 The Execute statement fails if varchar is reused and the number of characters in the varchar get smaller.
INTB-1325 Short-term recovery fails if a data page is marked as swept.
INTB-1324 Prepared Select query fails to return rows on every second execution when called via local connection on Windows.
INTB-1323 Creating multiple concurrent index results in deadlock error.
INTB-1322 Execute statement into timestamp causes crash.
INTB-1320 Corrupted index with the index pages out of order. This problem occurs when a large index is created where the index has duplicate keys. InterBase index keys are maintained in B-tree order pages:
  • leaf-pages contain ordered keys with pointers to data pages
  • non-leaf-pages contain pointers to non-leaf/leaf pages in the index page level hierarchy.
  • Duplicate keys (for the same value) are additionally ordered according to their record ID.

This bug was observed in non-leaf-pages which had duplicate keys (for the same value) and span multiple non-leaf-pages. But the order was not maintained for record ID (at the non-leaf level only). Since the order was not maintained, index corruption where non-leaf-level index pages were out of order was reported.
INTB-1289 Fast sweep garbage collects table's valid format descriptors.
INTB-1286 InterBase IBServer completely hangs up during certification on Linux.
INTB-1285 "write retry" error from InterBase server when restoring a database on a 1-CPU affinity system.
QC: 101564 , INTB-1265 751 executions of two unioned stored procedures results in error "too many concurrent executions of the same request."
QC: 100015QC: 101555, INTB-1264 Sub-query optimization using index causes crash in server.
INTB-1260 When there are attachments to an online dump, it is not possible to perform an incremental backup.
INTB-1253 IBConsole database validation reports no errors even if the database has errors.
INTB-1242 Cannot use -m -f -i options together with gfix.
InterBase XE Update 3: August-2011, Bugs Fixed in 10.0.3 Version
INTB-1228 Insert statement causes Server crash.
INTB-1215

This issue lists all IBConsole-related fixes in this update.

QC: 97534 When providing the password for a column encryption in Interactive SQL, an Access violation error message shows up.

QC: 97480 When altering a column to decrypt it, an error message shows up, but the column is decrypted.

QC: 96412 When starting the server from IBConsole, you receive an error message saying that the server can't start, even though the server is actually running; when connecting to a database, you receive an AV error message.

QC: 89388 When using the "New Connection" option from the Tools menu in the IBConsole, an AV error message shows up.

QC: 67161 UTF8 is missing in combo box for default character set.

QC: 97683 The memo dialog box that opens when you see the value for the RDB$DESCRIPTION field should not be read-only.

INTB-1210 Enhancement request to strengthen backup and restore operations on databases with DES encryption keys (allow only as a service).
INTB-1208 ISQL Extract (-x/-a) operation does not respect user authentication parameters.
INTB-1204 InterBase server on Linux stops accepting connections after hours of extensive use.
INTB-1178 Blob error on backup after restoring a database with -i.
INTB-1170 Installing InterBase to a very long directory path causes a server crash on local Windows database connections.
INTB-1162 Adding a member to a role doesn't work in IBConsole.
INTB-1149 Silent installer allows installation to c:\Program Files.
INTB-1148 64 bit installer fails to write the InterBase root directory to registry when the directory name contains a space character.
INTB-1141 InterClient does not expose certain IB Error Codes like isc_deadlock.
INTB-1133 Database aliases do not work for local connections on Windows.
QC: 94120 , INTB-1130 interbase.msg not found in Client Only install.
QC: 94455 , INTB-1124 SQL Unicode Char Type failure.
INTB-1116 Env. variables case: Operations Guide PDF, Chapter 4 "Server Configuration", sub-section "Using environment variables".
INTB-1115 IBConsole database encryption wizards not working.
INTB-1105 GFIX doesn't work with 2 switches at the same time, if the second switch is Write or Validate.
INTB-1099 GFIX doesn't change the write mode for a database when setting Buffers and Write Mode at the same time.
QC: 93524 , INTB-1092

GBAK fails if database file path contains spaces AND using InterBase Services.

If you are providing file path names with embedded spaces in them and using the InterBase service manager (-service switch in GBAK), you will need to multi-quote the file names:

<double_quote><single_quote>filepath<single_quote><double_quote>

The above is required because the command shell strips away the external double_quotes and only leaves the internal single_quotes for InterBase to know that it is a single string value.

For example:
# gbak service service_mgr r "'/path/with space/foo.ibk'" "'/path/with space/foo.ib'" user sysdba password masterkey

INTB-1090 Database entities (procedures, tables, encryptions) with space in the name (delimited identifier) gets truncated when setting/checking access privilege.
INTB-1080 ToGo Edition crash at end of backup or restore service execution from Delphi application using IBX components.
INTB-1066 Delphi XE build application using dbExpress causes InterBase server crash during text blob retrieval.
INTB-1007 DataDirect ODBC driver ignores Dialect 3.
InterBase XE Update 2: March-2011, Bugs Fixed in 10.0.2 Version
INTB-1054 XE client compatibility issue (with encryption and service manager).
QC: 90926, INTB-1052 ISQL crashes when "Show Procedures" command is issues if the database contains a stored procedure using UDFs.
QC: 92451, INTB-1051 Server crashes when executing statement with grouping by text blob field, when blob data length is greater than 126 bytes.
INTB-1035 Unable to restore AppWave database backup.
INTB-1033 Count of a query involving a join and a left join returns zero
INTB-1031 Inconsistent EVENT behavior.
INTB-1015 Server vulnerability with malformed packets.
INTB-1008 A parameterized query based on a union fails to return rows second time it is executed.
INTB-1004 InterBase XE Japanese InstallAnywhere installer creates invalid registry entry.
QC: 90879, INTB-1000 InterBase server crashes during validation phase, after database restore.
QC: 90582, INTB-998 OUTER JOIN query returns wrong result in InterBase XE (and works well in InterBase 2009).
INTB-985 Cannot establish a secondary connection for event processing for server behind a NAT router.
QC: 89559, INTB-954 Some queries with lots of ANDs and ORs cause server crash.
INTB-912 TCS: EX_NUM_ARRY_01 crashes ibserver on MacOS 10.6.
InterBase XE Update 1: December-2010, Bugs Fixed in 10.0.1 Version
INTB-890 Sysdba has no metadata rights to databases created with InterBase 6.0 or earlier which have not had readmeta.sql applied. Raid 280556 was this same problem.
INTB-860 InterBase crashes with a specific database when a foreign key is added.
INTB-853 SELECT count() returns BIGINT - compatibility issue with existing driver/applications.
QC: 88501, INTB-839 Sweep while inserts are happening on a database with journaling causes the server to hang and a corrupted database.
INTB-824 Investigate InterBase XE 64-bit server crash when querying for statistics using InterBase service manager.
INTB-822 RAID 280541: Server crash on ODS 13.1 database with complicated metadata script.
QC: 88241, INTB-818 Internal gds software consistency check (can't find shared latch (300)) error with multiple connections.
InterBase XE: November-2010, Bugs Fixed in 10.0.0.304 Version (UNIX builds)
INTB-791 When JAVA application connect/disconnect/operate to OTW port, IBSever claims "SSL_READ: SSL_ERROR_ZERO_RETURN" most of the times. This is a harmless issue, and does not cause any functionality issues.
INTB-756 IBConsole: crashes when pressing the F5 key.
QC: 62444, INTB-661 RAID 260610: Examples are built on UNIX but do not run successfully.
QC: 57839, INTB-673 RAID 279453: LEFT JOIN operation returns wrong result.
QC: 74055, INTB-546 Parameter's incorrect descriptor lengths showing up inside UDFs.
InterBase XE: September-2010, Windows
QC: 37729, INTB-772 RAID 279996: An error occurs when trying to create or change a password that begins with a question mark.
INTB-675 NullPointerException (instead of an sql error message) thrown when losing the network connection and trying to run a query.
QC: 79851, INTB-671 RAID 273825: getMetaData(). getPrecision() returning wrong value.
QC: 48152, INTB-670 RAID 251980: JOIN of 2 stored procedures give "arithmetic exception" error.
QC: 81786, INTB-669 RAID 278498: Increase request impure space size from the current 256K limit to a larger value.
QC: 62255, INTB-659 RAID 260612: QLI crashes as soon as "SHOW FUNCTIONS" command is given.
QC: 50375, INTB-654 RAID 260671: OnlineDump with multiple files.
QC: 55499, INTB-653 RAID 260629: Inserting from VARCHAR field in one table to BLOB in another table inserts additional junk in the target table.
INTB-650 no T privilege with grant option on table/view TableName.
QC: 2311QC: 77931, INTB-597 RAID 146832: ORDER BY using an index on a DATE column gives wrong order.
QC: 365, INTB-547 RAID 279571: Non-SYSDBA db owner SELECT fails even with GRANTED rights on the table.
INTB-538 RAID 273806: Optimizer regression in JOINS since InterBase 2007 Service Pack changes.
QC: 77315, INTB-523 COALESCE and aggregate functions.
INTB-513 RAID 191536: The java.sql.DatabaseMetaData.getColumns() method returns incorrect data type for arrays and blobs.
INTB-493 IndexOutOfBoundsException thrown when calling PreparedStatement executeBatch().
INTB-402 Unexpected behavior of database linger.
INTB-355 Parameterized query params order in SQLDA/SQLVAR not the same as visual order of question marks.
INTB-319 Possible Optimizer regression with fixes in the InterBase 2007 SP3.
INTB-267 Create Database from JDBC application does not respect character set requested.
INTB-264 RAID 272543: RDB$FILTERS does not have a unique index on filter name leading to duplicate filters.
INTB-253 RAID 270024: InterBase cannot use 2GB+ database cache even if Large Address Aware flag was set.
INTB-236 RAID 271600: "Request Synchronization error" reported on 8-core system with heavy activity.
INTB-235 RAID 270959: Accessing ODS 10.x database leads to server crash.
INTB-151 RAID 269627: Unique superkey license files belonging to the same "addon" package are all not loaded by the licensing engine.
QC: 3424 When you open the Properties form for a table or procedure and select the Permissions tab, the column headers rarely appear. If you select another tab and then come back to the Permissions tab, the column headers will be there.
QC: 4989 I add a UDF with a param of type DATE, the UDF is created, but when I try to show the property of the UDF, IBConsole shows the Message: 'unsupported Datatype' The UDF cannot be dropped in IBConsole. The UDF works fine in ISQL, and can be dropped in ISQL This happend also with TIMESTAMP and TIME.
QC: 6714 Create a table in an InterBase database and fill it with data. Then export the table to a Comma Seperated Value file using IBConsole and the export works fine. Check the exported file using MS Excel and it appears to be fine. Then empty the table. But when I try and import data from the .csv file that I exported the table to, I get the following message: Access Violation at address xxxxxxxx in module 'IBConsole.exe' Read of address 000000000. This is the case with any .CSV file that I try to import data from.
QC: 63968 Database Restore Fails: "No current record for fetch operation".
QC: 68637 DB Restore can't be done on IBconsole.
QC: 74598 The name of the directory that contains the IBConsole.xml file is misspelled.
QC: 75028 When trying to change the data type for a domain, an error appears.
QC: 76342 Metadata names longer than 22 characters are truncated.
QC: 76616 When trying to connect as a different user from the InteractiveSQL, the connection window opens but it doesn't connect as a different user and an error message appears.
QC: 76622 When disconnecting from a database using the InteractiveSQL then trying to reconnect to the database, an error message appears.
QC: 79418 When using the IBConsole for creating a journal, a journal archive, and to archive the database, the Archive Database option returns an error message (this fails for all types of connections.
QC: 79420 When creating a journal, a journal archive and a database archive for a database, using Interactive SQL, the 'Archive Database' option doesn't refresh after disconnecting from the database and then reconnecting to the database.
QC: 80580 IBConsole Open Table, Error.
QC: 81324 Interactive SQL in IBConsole: truncated RDB$ names.
QC: 82503 When creating a database then a generator using Interactive SQL, an error appears. You then have to use Task Manager to terminate the process.
QC: 82706 When using a field that can be null in the Primary Key constraint definition, then removing it from there, an error appears.
QC: 82776 When creating an external function with an entry point larger than 67 chars, an unclear error message appears.
QC: 82829 When altering a view to add a second column, the table name is added incorrectly.
QC: 82859 When altering a trigger by adding a local variable with the same name as another variable, then changing it back to the way it was, the changes cannot be made.
QC: 82904 When choosing a value larger than 10 digits for the input type of a blob filter, an error message appears and the Blob Filter Editor window closes.
QC: 83369 When choosing the 'New Connection' option from the Tools menu to connect to a different database then what is running a query, the IBConsole shuts down.
QC: 83370 When trying to see the License Manager from the Tools menu of the IBConsole, an error message appears.
QC: 83820 When trying to create a blob filter with a duplicate name, the Cancel button doesnt work.
QC: 83881 When creating a database with a name that already exists, the Cancel button doesn't work.
QC: 84783 Text cannot be copied inside the name area of procedures and triggers, even if the focus is inside the name area; the text is added inside the body area.
QC: 84934 When using the IBConsole to encrypt a database, then deleting the encryption from the system table of encryptions and changing the value of EUA, an AV error message appears.
QC: 85054 When performing a database sweep using the IBConsole, the text of the confirmation message isn't correctly aligned.
QC: 85104 For InterBase XE, License Manager from the Tools menu of the IBConsole doesn't open, and an AV error message is shown instead.
QC: 85514 When using the IBConsole to run a couple of queries without committing, disconnecting the database creates an AV error message.
QC: 86294 When connecting to a database as sysdso using IBConsole and trying to view data from a table that the user has select permission on, an error message appears.
QC: 86737 EUA_USER and EUA_PASSWORD options must be added to Database Restore.
QC: 86739 IBConsole should be using the new camel-cased and case-sensitive OTW parameter names (for IB OpenSSL clients).
QC: 86749 SELECT COUNT(*) and SELECT AVG should return a SQL_INT64 type. If there is any code in IBConsole that uses 32-bit integer type local variable to receive this value, it should be changed to a 64-bit integer type.
QC: 86924 IBConsole requires full path to backup file.
Documentation Updates: Sept-2010, Windows
INTB-773 Language Reference Guide: Chapter 3: WHEN...DO. Updated GDSCODE errcode. Also updated Table 5.5 with correct GDSCODE usage.
INTB-769 Operation Guide: Appendix B: Table B.1 InterBase Specifications. Updated maximum size of external table file.
INTB-744 Developers Guide: Chapter 14: Applying Cached Updates with a Dataset Component Method. Replaced old procedure example with a new IBTransaction1 example.
INTB-739 Language Reference Guide: Chapter 6: Table 6.34. Added table RDB$USERS.
INTB-736 Embedded SQL Guide: Chapter 13: Topic: SQL Datatype Macro Constants. Updated information on sqlsubtype settings.
INTB-735 Developers Guide: Chapter 6: Table 6.7. Updated integer information.
INTB-734 API Guide: Chapter 3: Environmental Variables Used by Interbase. Added two new variables: IB_PROTOCOL and INTERBASE.
INTB-733 Language Reference Guide: Chapter 6: Topic: RDB$DATABASE. Added missing fields to table 6.1.
INTB-731 Language Reference Guide: Chapter 2: ALTER TABLE, ALTER DATABASE, CREATE ENCRYPTION, CREATE TABLE. Added note to each topic: For detailed information on encryption and decryption, see the topics Encrypting Data(page 13-9) and Decrypting Data (page 13-11) in the Data Definition Guide.
QC: 22384, INTB-728 Operation Guide: Chapter 4: Topic Using ibmgr to Start and Stop the Server. Instructions for starting InterBase under the interbase user account have been updated.
INTB-726 API Guide: Chapter 5: Added new topic: Use of Commit/Rollback with Multidatabase Transaction.
INTB-725 Developers Guide: Chapter 6: Explanation of dsc_flags. Added DSC-systems information to Table 6.5.
INTB-723 Updated installation information. Desktop and ToGo setups are only available for Windows O.S.
INTB-722 Embedded SQL Guide: Chapter 6: Topic Using Comparison Operators in Expressions. Added Table 6.4 listing comparison operators in expressions.
QC: 5253, INTB-720 RAID Issue 171696: Developers Guide: Accessing InterClient extensions to the JDBC. Added a suitable example for how to cast the JDBC driver object.
INTB-719 RAID Issue 259389: isc_dpb_archive_journals and isc_dpb_archive_database not listed in documentation.
INTB-718 RAID Issue: 217986: Operation Guide: Appendix A: Topic: New InterBase Keywords. Need the new Keywords introduced in InterBase 7.5 and above.
INTB-515 The Operations Guide PDF (page 5-10 to 5-12) details the various OTW parameters that can be used by InterBase native and JDBC applications. With InterBase XE, the older named parameters can be removed from the table and ONLY the new ones mentioned. Note, the new OTW parameters are case-sensitive and hence the documentation in the above pages need to be cleaned up with exact camel-casing of OTW parameters.
INTB-43 Small omission in Language Reference Guide. Field rdb$depended_on_type and rdb$dependent_type do not list types 11 and 14. 14 is External Functions. 11 is a generator.
  RAID Issue 112111: Operation Guide: Chapter 11: Topic Edit. On Windows platforms, EDIT calls the text editor specified by the EDITOR environment variable. If this environment variable is not defined, then EDIT uses the Microsoft mep Notepad editor.
  RAID Issue 251988: Operation Guide: Chapter 9: Journaling Tips and Best Practices. Updated CHECKPOINT LENGTH information.
  RAID Issue 218084: Language Reference Guide: Chapter 6: TMP$STATE field not documented in description for TMP$DATABASE.
  RAID Issue 263959: Data Definition Guide: Chapter 13: gbak examples on page 13-17 have invalid syntax.
QC: 23253 RAID Issue 238178: Language Reference Guide. Chapter 2. The SQL example for the CASE statement won't work because it is truncated.
  RAID Issue 194123: Language Reference Guide. Chapter 2. Yearday for extract is listed as returning values 1-366. It should say 0-365. Hour and minute are similarly wrong. They are listed as going from 1-23 and 1-59. They should list 0-23 and 0-59.
  RAID Issue 256520. API Guide. Chapter 15. 
Signature for "isc_dsql_batch_execute()" incorrectly includes "isc_db_handle *db_handle". 
Signature for "isc_dsql_batch_execute()" incorrectly includes declaration using "ULONT
Signature for "isc_dsql_batch_execute()" incorrectly includes declaration "int dialect" when actually the argument is implemented as an "unsigned short" in ibase.h
  RAID Issue 240455. API Guide. Chapter 15. isc_string_too_large error is generated when SQL is greater than 64K. 64K should be changed to 2 GB.
  RAID Issue 218053. Language Reference Guide. Chapter 2. ALTER DATABASE describes it as "Adds secondary files to the current database." This does not consider other new actions that can now be taken. Changed to "Changes the characteristics of a database".
  RAID Issue 120748. API Guide. Chapter 3. Remove ISC_DATABASE from Table 3.1. It is not implemented any longer.
  RAID Issue 106998. Operations Guide. Chapter 7. Error OBJECT database_name IS IN USE is incorrect.
QC: 5742 RAID Issue 192587. Data Definition Guide. Chapter 8. Documentation says you cant use UNION when creating a VIEW in DSQL. This hasnt been true since IB 5.6.
QC: 84435 RAID Issue 276427. Data Definition Guide. Chapter 14. UTF_8 Maximum character size is changed from 1 byte to VARCHAR(63).
InterBase 2009 Update 4:
INTB-412 RAID 275463: Running delete statement two times causes constraint error, which causes the server to crash.
INTB-411 RAID 275462: Database corruption reported when deleting records from table with missing foreign key constraint index.
INTB-384 Indexes entries lost on savepoint rollback for updates across nested savepoints.
INTB-356 RAID 274857 and 274858: Table's current format descriptor can be garbage collected during sweep.
INTB-331 RAID 273917: gds32.dll not getting installed in system 32 directory.
INTB-305 During certification, ibserver often starts claiming errors into the interbase.log recursively until it has taken up the whole disk space.
INTB-292 Prepared statement query fails on UTF8 database.
INTB-281 InterBase server crashing with a batchupdate query from Java.
INTB-252 RAID: 272016: Event listener does not work with native OTW connection string in InterBase 2009 Update 2.
INTB-249 Trying to connect to OTW port without OTW settings causes client hangup.
INTB-231 RAID 270898: When executing SQL statements, JDBC driver returns SQL Warning beside the normal result, even on success.
INTB-230 Client crashes on DSQL error when interbase.msg cannot be found.
INTB-228 Wrong table name: Language Reference Guide: Table 5.3 refers to Table B-4. Should refer to Table 5.4.
InterBase 2009 Update 3:
  RAID 263854: Hot links from within the PDF documents to other PDF documents come up with an error.
  RAID 268798: Inner join with Stored Procedure that selects from the same table results in "No current record for fetch operation."
  RAID 270024: InterBase cannot use 2GB+ database cache even if Large Address Aware flag was set. Check Operations Guide PDF manual, chapter: InterBase Limits section Various InterBase Limits, Table B1, for new updates. Search for maximum number of cache pages per database description.
  RAID 270898: When executing SQL statements, JDBC driver returns SQL Warning beside the normal result, even on success.
  RAID 270959: Accessing ODS 10.x database leads to server crash.
QC: 75561 RAID 271600: "Request Synchronization error" reported on 8-core system with heavy activity.
INTB-146 RAID 268798: Inner Join with Stored Procedure that selects from the same table results in "No current record for fetch operation".
INTB-147 RAID 270284: Complicated query involving joins between tables and stored procedures runs very slowly.
INTB-150 RAID 270017: Multiple clients concurrently executing ALTER TABLE statement against different databases results in client error or hang.
INTB-152 RAID 269558: Online Dumps are missing 1 record after multi-client activity. The record is present in the source database, but is not included in the online dump.
INTB-153 RAID 269555: Online Dump files have corrupted indexes and page errors when taken from an encrypted database during multi-client activity.
INTB-155 RAID 269200: IBConsole Help is out of date on Windows Vista.
INTB-156 RAID 268686: InterBase client on Windows Terminal Services reports "Cannot attach to Services Manager" when run for extended period of time, or if the server is subject to intense database activity.
INTB-157 RAID 267667: Page xxxx wrong type (expected 7 and encountered 5) after many hours of stressful INSERT activity from numerous simultaneous clients.
INTB-159 OTW/SSL connections do not work via InterBase JDBC driver. Check Developer's Guide PDF manual, chapter "Programming with JDBC" section "SSL file properties" for new updates.
INTB-168 RAID 270396: Java clients are unable to connect to databases that require a System Encryption Password (SEP).
INTB-229 Missing Error Message.
INTB-230 Client crash on DSQL error when interbase.msg cannot be found.
InterBase 2009 Update 2:
  RAID 254988: Query with explicit and implicit joins results in "no current record for fetch operation" error.
  RAID 256996: Distinct in nested queries can return incorrect results.
QC: 65388 RAID 257272: Concurrent delete and select (and probably insert) cause database to be corrupted. 'internal gds software consistency check (exceeded index level)" error in interbase.log.
QC: 57839 RAID 257670: Join with Stored Procedure returns incorrect results.
  RAID 259585: Inner Join between two views which both have left joins results in error "no current record for fetch operation."
  RAID 260489: If journal files are lost, connecting to the database may fail. 
Fix notes: A new GFIX switch (-disable wal) is provided to disassociate a database from its journal files. No cleanup of the journal files or journal archive files is attempted and it is the case that committed data may have been lost. This could occur because the lost or inaccessible journals may have committed data that was never applied to the database files proper. However, it becomes possible to attach the database to access existing data contained therein.
  RAID 261953: Rogue TCP packet could cause server crash.
  RAID 261974: Server crash with big SORTMEM_BUFFER_SIZE on restore.
  RAID 263533: OTW: malformed connection string leads to server hang.
  RAID 265145: Invalid data entered into a Unicode column hangs client on retrieval operation.
  RAID 265481/2: Journaling and encryption combination fails with "decryption of encryption value failed?"
  RAID 265601: Running GBAK as a service incurs high CPU usage in the server.
  RAID 265824: Queries based on fields where the character_set_name and collation_name do not match and there is an index return no records.
  RAID 265905: Security vulnerabilities exploited by rogue clients.
  RAID 267372: InterBase cannot propagate events on both interfaces of a multihomed host.
  RAID 267433: Exceptions only display first 67 characters. They should display 78 characters.
  RAID 267550: Server crashes with BUS alignment error on Solaris 10.
QC: 70915 RAID 267860: Sweep under some conditions causes error "Maximum user count exceeded" and "Request depth exceeded for IRQ_93" in interbase.log.
  RAID 267874: Many users doing many inserts causes InterBase server crash with seg fault on Windows or Solaris if there are multiple CPUs.
  RAID 267963: After connecting to employee.gdb, subsequent validation of the database with gfix results in interbase.log having numerous "Page xxx is in use but marked free".
  RAID 268016: InterBase Services API has problems working on Windows Terminal Serivce.
InterBase 2009 Update 1:
QC: 65969 Backup/Restore of encrypted databases not supported in IBConsole.
  RAID 265043: Encryption failed when database or column has a character set.
  RAID 265241: Re-encrypting a column crashes the server.
  RAID 258311: Restore using gbak with buffers set high and -o (one at a time) causes server to crash.
  JDBC: DataBaseMetadata.getTables() does not work with delimited tables/columns.
  JDBC: DataBaseMetadata.getTables() wrong ordering of result set.
  JDBC: does not recognize InterBase 2009 reserved words.
InterBase 2009:
  RAID 240075: Running gfix -validate -full exhibits index corruption messages on table RDB$DEPENDENCIES.
  RAID 252301: IBMgr Cannot Start Server As A Service When Launched Directly From The Bin Directory. Instead, must be launched from the installed shortcut which passes "InterBase Server Manager [instance = gds_db]"
QC: 56532 RAID 255784: Running a select statement with specific OR conditions causes the InterBase server to crash.
  RAID 255847: Validating a freshly restored database reports many errors in index RDB$DEPENDENCIES.
QC: 56533 RAID 256021: JDBC driver: Calling PreparedStatement.addBatch() more than once results in error when calling PreparedStatement.executeBatch().
QC: 53957 RAID 256054: IBServer crash on select from table with data indexes.
  RAID 257272: Concurrent delete and select (and probably insert) cause database to be corrupted. "internal gds software consistency check (exceeded index level)" error in interbase.log.
QC: 51439 RAID 261546: isc_info_num_buffers returns incorrect information.
InterBase 2007 Update 3:
  RAID 240075: gfix -validate -full exhibits index corruption messages on table RDB$DEPENDENCIES.
QC: 34587 RAID 251616: gfix -validate -full exhibits index corruption messages on table RDB$DEPENDENCIES.
QC: 50554 RAID 253033: Using table alias in UPDATE statement gives error.
QC: 49895 RAID 253303: Incorrect results from left outer join query.
QC: 50461 RAID 253967: CodeGear InterBase Multiple Vulnerabilities.
  RAID 254988: Query with explicit and implicit joins results in no current record for fetch operation error.
QC: 56532 RAID 255784: Running a select statement with specific OR conditions causes the InterBase server to crash.
QC: 65387 RAID 255847: Validating a freshly restored database reports many errors in index RDB$DEPENDENCIES.
QC: 53957 RAID 256054: Server crash on select from table with date indexes.
  RAID 256996: Distinct in nested queries can return incorrect results.
QC: 65388 RAID 257272: Concurrent delete and select (and probably insert) cause database to be corrupted. "internal gds software consistency check (exceeded index level)" error in interbase.log. Join with Stored Procedure returns incorrect results.
QC: 57839 RAID 257670: Join with Stored Procedure returns incorrect results.
  RAID 258311: restore using gbak with buffers set high and -o (one at a time) causes server to crash.
  RAID 259585: Inner Join between two views which both have left joins results in error no current record for fetch operation.
QC: 60873 RAID 260621: Interbase 7.5 and 2007 Numeric Type have Bug.
  RAID 261974: Server crash with big SORTMEM_BUFFER_SIZE on restore.
  RAID 265601: Running GBAK as a service incurs high CPU usage in the server.
InterBase 2007 Update 2:
  RAID 58205: Improve access method for full outer joins.
QC: 47598 RAID 58257: Left outer join performance without an index fixed.
QC: 51179 RAID 58462: Index is not used in a co-related sub select of an UPDATE statement, fixed.
QC: 47916 RAID 60128: Left outer join with table expressions not optimized when indexes should be used, fixed.
QC: 20359 RAID 60269: Query Optimization when using "IN" or "OR" keywords fixed.
QC: 25160 RAID 61347: Index is not used for the where clause when the query is outer join fixed.
QC: 10264 RAID 219990: Left join on a big table completion lag fixed.
QC: 49654 RAID 223805: The optimizer uses a sequential table scan to perform co-related sub-query, fixed.
QC: 47599 RAID 231879: Data inserted in the last transaction not seen if the database is made read only, resolved.
QC: 11219 RAID 239883: Installing Desktop Edition as Administrator does not make Programs listing available to other Users, fixed.
  RAID 243270: Connecting with 8.0 client to 7.1 server fails with unavailable database error, fixed.
QC: 40486 RAID 243299: InterBase 7.1 server crashes upon disconnect using 8.0 client with remove connection, fixed.
QC: 47604 RAID 243679: InterBase Server Manager starts as an ordinary user even if you are an administrator on Windows Vista, fixed.
  RAID 248755: interclient.jar JDBC driver now installed as part of the InterBase SDK.
  RAID 248850: Bookmarks are missing from Language Reference Manual, fixed.
QC: 47600 RAID 249045: InterBase 2007 Installer now works on SUSE Linux 10.
  RAID 249232: INSERT/COMMIT for each record delay when Journaling is enabled on some Windows platforms, fixed.
QC: 47602 RAID 251265: Query with many joins returns "size of optimizer block exceeded", fixed.
QC: 44565 RAID 251608: Optimizer block exceeded error fixed.
QC: 43874 RAID 251610: Bad query result on LEFT JOIN when multiple filters in the join, resolved.
  RAID 256161: Nested loops in triggers crashes the server, fixed.
InterBase 2007:
  RAID 60140: Backup and Restore causes problem with adding constraints.
  RAID 112113: Invalid 'CREATE SHADOW' statement will cause the ISQL crash.
  RAID 120473: DEFAULT is allowed for BLOBs, but causes errors (such as Conversion error from string "BLOB") when used.
  RAID 122700: FOREIGN KEY constraint DDL fails with multiple indices on REFERENCE key.
  RAID 124028: IBConsole cannot see the view data.
  RAID 124771: The error constraint not found is raised when one attempts to create a foreign key constraint if the parent table has both a Primary Key constraint and a separate unique index on the referenced column(s) and the name of the unique index sorts before RDB$PRIMARY.
  RAID 127168: InterBase server creates databases without absolute path in System32 directory.
  RAID 148143: Instead of getting the normal error message that field TI cannot be ***NULL*** you get a "conversion error from string "BLOB".
  RAID 157531: Obsolete ibconfig parameters included in ibconfig file.
  RAID 169965: SELECT * FROM TMP$PROCEDURES will crash server if a procedure has been dropped.
QC: 7997 RAID 200567: Support to INSERT and UPDATE in BLOB field with SQL command.
  RAID 213125: It is impossible to drop a trigger that starts with the name RDB$.
  RAID 217985: List of System temporary tables (currently page 244) does not list TMP$HEAPS and TMP$TRIGGERS.
  RAID 218040: Invalid INTERBASE env variable value gives misleading error.
  RAID 228356: Allow connection string to a different port to specify a different port number in addition to the port label we already have.
  RAID 230142: If you select 'no' for 'run interbase server as a service on Linux', it runs InterBase server as a service on Linux.
  RAID 237809: Better error messages required for database re-routing failures.
  RAID 238414: Select after update generates cannot update read-only view error.
  RAID 238638: A connection made via a server alias will fail if other non alias connections are concurrent.
  RAID 239254: Embedded data user authetication section missing from manual.
QC: 24859 RAID 239622: gds32.dll enhancement, require spb support for instance name.
  RAID 239690: Select from view which calls UDF that returns a blob can cause server crash.
QC: 13183 RAID 239730: Alias support for IBConsole.
QC: 28518 RAID 239847: DataDirect ODBC driver doesn't work with SELECT procs with input params.
QC: 14563 RAID 239880: Add support to command select, insert, update on Blob fields.
QC: 11220 RAID 239882: Incomplete entries in Services File.
QC: 9014 RAID 239886: Database Alias fails when database already opened via full path.
QC: 31288 RAID 240793: BLOB as (VAR)CHAR functionality failure in Stored Procedures.
  RAID 241006: IBConsole crashes when you access "IBConsole help under the Help menu.

    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/.



Server Response from: ETNASC01