Om grote hoeveelheden gegevens op te slaan worden vaak databases gebruikt. Aangezien deze beter te onderhouden en te benaderen zijn dan een simpel tekstdocument waarin de gegevens worden vastgelegd. Bekende namen zijn natuurlijk Oracle met zijn Oracle 9i database, IBM met de DB2 database en Microsoft met SQL Server.
Firebird heeft als oorsprong de InterBase database van Inprise Corp (tegenwoordig Borland Software Corp), de geschiedenis van InterBase en Firebird is op deze pagina na te lezen. Deze relationele database ondersteunt verschillende besturingssystemen waarop het geïnstalleerd kan worden, zoals het Linux- en Windows-platform waardoor het breed kan worden ingezet. De ontwikkelaars hebben versie van 1.5.3 uitgebracht met de volgende opmerking:
The Firebird 1.5.3 sub-release introduces a number of retrospective fixes to bugs that became apparent and were fixed in the Firebird 2 tree during the pre-alpha and alpha phases of the Firebird 2 development.
- ISQL Improvement: Command line switch -b to bail out on error when used in non-interactive mode.
- ISQL Improvement: Return an error code to the operating system from command-line isql
- Make Old Column Naming Convention available
Added OldColumnNaming parameter to firebird.conf to allow users to revert to pre-V1.5 column naming in Select expressions.
- Security diagnostics added
Attempts to send signals via a missing gds_relay may be an exploit attempt. They are now logged.
- Closed an Endemic Security Hole
Previously, a user could log into a server on a Unix/Linux host remotely, using a Linux UID and password accepted on that host. It was recognised as a security hole and fixed in Firebird 2 development. It is an endemic security bug in previous versions and InterBase. The security fix has been back-ported to Firebird 1.5.3: a UID received from the client side is now not trusted.
- Bug # 1242982: Compound index key mangling exhibited a bug. Now fixed.
- Unnecessary evaluation was being performed on the last argument of the COALESCE function.
- Bug # 1016969: Using search parameters in a SUM() operation would return incorrect results
- Bug # 1016969: UPDATE with a CASE expression involving parameters would throw an SQLCode -804 exception ("Data type unknown").
- COALESCE/CASE displayed a bug regarding BLOB sub-type.
- The wrong error was being detected when a write failure occurred. (v.1.5 Regression.) Fix was back-ported from Firebird 2 HEAD.
- Bug # 1106825: An access violation could occur in fcblient.dll v1.5.2 on disconnecting. (v.1.5.2 Regression.) Fix back-ported from Firebird 2 HEAD.
- Generators were being initialized with garbage values on restoring from a metadata-only backup. (v.1.5.1 regression.) Fix backported from Firebird 2 HEAD.
- User savepoints were not being released when commit retaining was issued. Fix back-ported from Firebird 2 HEAD.
- Back-ported some isql fixes from Firebird 2 HEAD:
- Another fix for the -b (Bail On Error) option when SQL commands are issued and no database connection yet existed.
- Applied Miroslav Penchev's patch for a bug discovered by Ivan Prenosil, where the -Q switch would always return 1 to the operating system.
- Fixed a conflict between single-line and block comments.
- If a table contained a computed column of BLOB or ARRAY type, the first column of the table could be zeroed during a restore. Fix back-ported from Firebird 2 HEAD.
- The server would lock up if a request to attach to security.fdb was unsuccessful. (v.1.5 regression.) Fix back-ported from Firebird 2 HEAD.
- The fbudf function AddMonth() exhibited wrong behaviour when facing January. Fix backported from Firebird 2 HEAD.
- Bug # 1124720: The FOR EXECUTE STATEMENT ... DO SUSPEND construct in PSQL was exhibiting problems. Fix back-ported from Firebird 2 HEAD.
- Bugchecks were being exhibited on AMD64 (and possibly other platforms) when a database was copied, rather than migrated using backup/restore. Fix back-ported from Firebird 2 HEAD.
- There were issues with descending indices used in referential constraints. Fix back-ported from Firebird 2 HEAD.
- Bug # 1242982: An equality search on the first segment of a compound index, if it was an integer type, would result in redundant additional scans on specific values (2^n, e.g. 131072). Fix back-ported from Firebird 2 HEAD.
- Comparisons between strings in character set NONE and another character set would cause an error. (V. 1.5.2 regression.)
- Bug # 1175157: An error in the thread scheduler would cause the server to lock up if an I/O error occurred at database attachment.
- The isc_user_* (add/modify/delete) functions worked wrongly under Administrator account on Win32.
- At some point during InterBase development, the intention was to make the Win32 implementation work so that Superuser privileges on Unix were emulated for Administrator on Win32 (SuperUser/root on Unix/Linux can log into the security database without entering any username and password). It worked, up to a point. However, if the Win32 Administrator user tried to call these functions through a SYSDBA login, the connection would hang with some strange path resolution errors. The code for a root-style login has been disabled in the Win32 clients (fbclient.dll and fbembed.dll). Now any Windows user, including Administrator, must supply the SYSDBA user name and password.
- Denial-of-Service vulnerability: an extra-long database file name could crash the server. Endemic security bug. One of many overflow vulnerabilities fixed in the Firebird 2 code, this fix has been backported to v.1.5.3.
- The server would crash during some DDL operations. Fix back-ported from Firebird 2 HEAD.
- In some cases, a BLOB filter declaration would cause the server to crash. Fix back-ported from Firebird 2 HEAD.
- A locally exploitable stack overflow vulnerability was detected and fixed.
- The server could crash while performing a metadata scan for a complex table. Fix backported from Firebird 2 HEAD.
- Database corruption could occur due to allowing certain pre-trigger actions, such as deleting a record in a BEFORE UPDATE trigger. Fix back-ported from Firebird 2 HEAD.
- CPU load would rise to 100% when a write failure occurred. Fix back-ported from Firebird 2 HEAD.
- Bug # 1076858: A source of possible corruption was exhibiting in the Classic server as a page type exception "page 0 is of wrong type (expected 6, found 1)". Identified, fixed and back-ported from Firebird 2 HEAD.
- When the gfix service code tried to reattach to a database that had become unavailable, the server would crash. An endless loop would occur due to the inability of the service to interact with the end user, causing the service buffer to overflow eventually and result in the crash. Fixed and back-ported from Firebird 2 HEAD.
- Character set and/or collation specified for local variables in PSQL would get lost, potentially causing string conversion errors. Fix backported from Firebird 2 HEAD.
- If any DDL operations were active during a database shutdown, the server would crash. Fix back-ported from Firebird 2 HEAD.
- Bug # 1110717: Subqueries in in VIEWs were returning character data with the wrong character set. Fix back-ported from Firebird 2 HEAD.
- There was an issue with quoted identifiers in the ISQL command SHOW GENERATORS in Dialect 3.
- No more than 32767 identifiers were being generated by GPRE.
- Wrong permissions were installed for the QLI help database.