meta data for this page
General notes
The v.2.0 release cycle of Firebird brought a large collection of long-awaited enhancements under the hood that significantly improved performance, security and support for international languages. Several annoying limitations, along with a huge pile of old bugs inherited from the legacy code, have gone. Many of the command-line tools have been refurbished and this release introduces the all-new incremental backup tools NBak and NBackup.
The old “252 bytes or less” limit on index size is gone for good, replaced by much-extended limits that depend on page size. Calculation of index statistics has been revamped to improve the choices the optimizer has available, especially for complex outer join distributions and DISTINCT queries.
Many new additions have been made to the SQL language, including support for derived tables (SELECT … FROM ( SELECT … FROM)), PSQL blocks in dynamic SQL through the new EXECUTE BLOCK syntax and some handy new extensions in PSQL itself.
Sub-release 2.0.7
This sub-release, likely to be the last for the 2.0-series, does not add any new functionality to the database engine. It incorporates a number of bug fixes that did not make it into the v.2.0.6 sub-release in June 2010 or have been backported from subsequent 2.1.x and 2.5.x releases.
Sub-release 2.0.6
This sub-release does not add any new functionality to the database engine. Several important bug fixes that have turned up during development of versions 2.1.x and 2.5 have been backported.
Of special note are the fixes for the gfix validation and shutdown issues described below in the Known Issues for v.2.0.5. The Tracker ticket numbers are CORE-2271 and CORE-2846, respectively.
Note also few backported improvements that are present in this release:
- The firebird.conf ConnectionTimeout can now be applied to XNET connections, to help with a specific slow connection problem on some Windows installations.
- A backported optimizer improvement could help to speed up some complicated queries involving cross joins.
- A backported nBackup improvement for POSIX platforms could help alleviate a reported problem of resource-gobbling during full backup.
Sub-release 2.0.5
This sub-release does not add any new functionality to the database engine. Several important bug fixes that have turned up during development of versions 2.1.x and 2.5 have been backported.
Important change to API DPB parameters
A long-standing, legacy loophole in the handling of DPB parameters enabled ordinary users to make connection settings that could lead to database corruptions or give them access to SYSDBA-only operations. The loophole has been closed, a change that could affect several existing applications, database tools and connectivity layers (drivers, components). Details are in Chapter 3, Changes to the Firebird API and ODS.
Recently discovered issues with gfix
1. It has been discovered that the gfix utility has a legacy bug (CORE-2271) that exhibits itself during the database validation/repair routines on large databases. The bug has been fixed in version 2.1.2 and affects all preceding versions of Firebird, including this sub-release. The privilege level of the user running these routines is checked too late in the operation, thus allowing a non-privileged user (i.e., not SYSDBA or Owner) to start a validation operation. Once the privilege check occurs, the database validation can be halted in mid-operation and thus be left unfinished, resulting in logical corruption that might not have been there otherwise.
It appears likely that this trouble occurs only with quite large databases: on small ones, the changes performed may complete before the privilege check.
This is not a feature!
Documentation has always stipulated that the SYSDBA or Owner must perform operations that do database-level changes. The gfix code was always meant to enforce this rule. If you have discovered this loophole yourself and have regarded it as an undocumented feature that allowed ordinary users to do validation and repair, then you are on notice. It is a bug and has been corrected in versions 2.1.2 and 2.5. It will be corrected in versions 2.0.6 and 1.5.6.
2. A regression issue surfaced with the implementation of the new gfix shutdown modes when shutdown is called with the -attach or -tran options. If connections are still alive when the specified timeout expires, the engine returns a message indicating that the shutdown was unsuccessful. However, instead of leaving the database in the online state, as it should, it puts the database into some uncertain off-line state and further connections are refused.
It affects all versions of Firebird up to and including v.2.0.5 and v.2.1.3, and all v.2.5 alphas, betas and release candidates. See Tracker ticket CORE-2846.
Sub-release 2.0.4
This sub-release does not add any new functionality to the database engine. Several important bugs have been fixed, including a number of unregistered nbackup bugs that were found to cause database corruptions under high-load conditions.
During Firebird 2.1 development it was discovered that Forced Writes had never worked on Linux, in either the InterBase or the Firebird era. That was fixed in v.2.1 and backported to this sub-release.
The issue with events over WNet protocol reported for v.2.0.3 has been fixed. The full list of bugs fixed in v.2.0.4 is in the bug fixes chapter and also in the separate bug fixes document associated with v.2.1, which you can download from the Documentation Index at the Firebird website.
Sub-release 2.0.3
This sub-release does not add any new functionality to the database engine but fixes v.2.0.3, one of which caused the v.2.0.2 sub-release to be recalled a week after it was released.
To all intents and purposes, therefore, this is the sub-release following sub-release 2.0.1. However, in the interim, the port of Firebird 2.0.3 to Solaris 2.10 (Solaris 10) has been completed for both Intel and SPARC platforms.
Warning: Please be sure to uninstall Firebird 2.0.2. It should not be necessary to revert databases to pre-2.0.2 state but, if you used EXECUTE STATEMENT to operate on varchars, varchar data written from results might have suffered truncation.
Known issues
A regression appeared after v.2.0.1, whereby events cannot work across the WNet protocol. A call to isc_que_events() will cause the server to crash. (Tracker ID CORE-1460).
Sub-release 2.0.2
This sub-release does not add any new functionality to the database engine. It contains a number of fixes to bugs discovered since the v.2.0.1 sub-release.
Some minor improvements were made:
- A port of Firebird 2.0.2 Classic for MacOSX on Intel was completed by Paul Beach and released.
- In response to a situation reported in the Tracker as CORE-1148, whereby the Services API gave ordinary users access to the firebird.log, Alex Peshkoff made the log accessible only if the logged-in user is SYSDBA.
Sub-release 2.0.1
This sub-release does not add any new functionality to the database engine. It contains a number of v.2.0.1 discovered since the release.
Minor improvements:
- Gentoo or FreeBSD are now detected during configuration (Ref.: Tracker CORE-1047). Contributions by Alex Peshkoff and D. Petten.
- It was discovered that the background garbage collector was unnecessarily reading back versions of active records (Ref.: Tracker CORE-1071). That was removed by Vlad Horsun.
Windows Vista and XP/Server2003 users
Bug fix (CORE-1133) The XNET (IPC) communication protocol would not work across session boundaries affects those attempting to access databases using the local protocol on Windows Vista as well as those using remote terminal services locally on XP or Server 2003. This fix, done in v.2.0.1, should remove the problems encountered under these conditions.
Important reversion
An important reversion to 1.5 behaviour has occurred in sub-release 2.0.1, as follows:
In Firebird 2.0, a deliberate restriction was imposed to prevent anyone from dropping, altering or recreating a PSQL module if it had been used since the database was opened. An attempt to prepare the DDL statement would result in an Object in use exception.
Many people complained that the restriction was unacceptable because they depended on performing these metadata changes “on the fly”. The restriction has therefore been removed. However, the reversion in no way implies that performing DDL on active PSQL modules is “safer” in Firebird 2.0.1 and higher than it was in v.1.5.
Before you proceed
- If you are upgrading from v.2.0 or v.2.0.1 to v.2.0.2, please study the sections summarising the latest v.2.0.2.
- If you are moving to Firebird 2.0.2 directly from Firebird 1.5.4 or lower versions, please take a moment to read on here and note some points about approaching this new release.
Back up!
The on-disk structure (ODS) of the databases created under Firebird has changed. Although Firebird 2.0 will connect to databases having older ODS versions, most of the new features will not be available to them.
Make transportable gbak backups of your existing databases - including your old security.fdb or (even older) isc4.gdb security databases - before you uninstall the older Firebird server and set out to install Firebird 2.0. Before you proceed, restore these backups in a temporary location, using the old gbak, and verify that the backups are good.
Compatibility issues
Naturally, with so much bug removal and closing of holes, there are sure to be things that worked before and now no longer work. A collection of Known compatibility issues is provided to assist you to work out what needs to be done in your existing system to make it compatible with Firebird 2.0.
Give special attention to the changes required in the area of user authentication.
Incomplete implementations
In a couple of areas, planned implementations could not be completed for the v.2.0 release and will be deferred to later sub-releases:
64-bit support
64-bit builds for both Superserver and Classic are ready and available for installing on Linux. Note that the 64-bit ports have been done and tested for AMD64 only. These builds should also work on Intel EM64T. The Intel IA-64 platform is not supported in this release. A FreeBSD port of the 64-bit builds has also been done. Win64 hosts are running without problems and the MS VC8 final release seems to work satisfactorily, so we are able to say we are no longer hampered by problems with the Microsoft compiler. The Win64 port is complete and into testing, but is still considered experimental. It will become publicly available in a subsequent v.2.x release.
Installer support for multiple server installations
Although the capability to run multiple Firebird servers simultaneously on a single host has been present since Firebird 1.5, we still do not provide the ability to set them up through our installer programs and scripts.
Support for databases on raw devices
During Firebird 2 development, a capability to create and access databases on raw devices on POSIX systems was enabled to assist an obscure platform port. To date it is undocumented, has not been subjected to rigorous QA or field testing and is known to present problems for calculating disk usage statistics. A Readme text will be made available in the CVS tree for those who wish to give it a try and would like to make a case for its becoming a feature in a future release.
Bug reporting and support
If you think you have discovered a bug in this release, please make a point of reading the instructions for bug reporting in the article How to report bugs effectively, at the Firebird Project website.
Follow these guidelines as you attempt to analyse your bug:
- Write detailed bug reports, supplying the exact server model and build number of your Firebird kit. Also provide details of the OS platform. Include reproducible test data in your report and post it to our Tracker.
- If you want to start a discussion thread about a bug or an implementation, do so by subscribing to the firebird-devel list and posting the best possible bug description you can.
- Firebird-devel is not for discussing bugs in your software! If you are a novice with Firebird and need help with any issue, you can subscribe to the firebird-support list and email your questions to firebird-support@yahoogroups.com.
Tip: You can subscribe to this and numerous other Firebird-related support forums from the Lists and Newsgroups page at the Firebird website.
Documentation
A full, integrated manual for Firebird 2.0 and preceding releases is well on the way, but it's not quite with us yet. Meanwhile, there is plenty of documentation around for Firebird if you know where to look.
Study the Novices Guide and Knowledgebase pages at the Firebird website for links to papers and other documents to read on-line and/or download.
Don't overlook the materials in the /bin directory of your Firebird installation. In particular, make use of the Firebird 2.0 Quick Start Guide to help you get started.
The "Firebird Docs" Project
The Firebird Project has an integral user documentation project, a team of volunteers who are writing, editing and adapting user manuals, white papers and HowTos. At the time of this release, the hard-working coordinator of the Docs project is Paul Vinkenoog.
An index of available documents can be found in the on-line documentation index. Published docs currently include the essential Quick Start Guides for Firebird versions 1.5 and 2.0 in English and several other languages.
For the official documentation we use a Docbook XML format for sources and build PDF and HTML output using a suite of Java utilities customised for our purposes. These notes were developed and built under this system.
Paul Vinkenoog has written comprehensive, easy-to-follow manuals for writing Firebird documentation and for using our tools. You can find links to these manuals in the aforementioned index. New team members who want to do some writing or translating are always more than welcome. For information about the team's activities and progress you can visit the Docs Project's homepage. We have a lab forum for documenters and translators, firebird-docs, which you can join by visiting the Lists and Newsgroups at the Firebird web site.
Your main documentation
These release notes are your main documentation for Firebird 2. However, if you are unfamiliar with previous Firebird versions, you will also need the release notes for Firebird 1.5.3. For convenience, copies of both sets of release notes are included in the binary kits. They will be installed in the /doc directory beneath the Firebird root directory. Several other useful README documents are also installed there.
For future reference, if you ever need to get a copy of the latest release notes before beginning installation, you can download them from the Firebird web site. The link can be found on the same page that linked you to the binary kits, towards the bottom of the page.
If you do not own a copy of The Firebird Book, by Helen Borrie, then you will also need to find the beta documentation for InterBase ® 6.0. It consists of several volumes in PDF format, of which the most useful will be the Language Reference (LangRef.pdf) and the Data Definition Guide (DataDef.pdf). The Firebird Project is not allowed to distribute these documents but they are easily found at several download sites on the Web using Google and the search key “LangRef.pdf”. When you find one, you usually find them all!
–The Firebird Project