Firebird Project HOMEBack to Novice's Guide
This is an overview of some of the most important changes in Version 1.5 against the 1.0 release of Firebird. It is assumed that you are familiar with Firebird 1.0. The complete list of changes and enhancements is long. Here are just some of the highlights. For the full story, please refer to the Release Notes for Firebird 1.5 (in six languages, PDF files HERE).

New codebase

This release was built from code ported from the
original C to C++, a process that begun back in 2000.
Extensive code cleanup and bug­fixing has continued,
along with new memory management and language
enhancements.

Enhanced Optimizer

During the v.1.5 development process, the SQL query
optimizer has undergone several enhancements and
fixes, resulting in reported speed improvement of
30 to 60 percent and more.

New Architectures

Two significant new additions for Windows platforms
are Classic server and Embedded server.
There has not been a Classic server on Windows
for nearly eight years. This one can utilize multiple
processors, something which still eludes the Windows
SuperServer. Though usable, Classic on Windows
should be regarded as experimental.
Embedded server is a dll that merges a single client
attachment with a Firebird SuperServer for building
very quick and efficient stand­alone and briefcase
applications.

New language features

Several important new language features have been
added, including the SQL­92 case expression
functions CASE, COALESCE and NULLIF. For syntax
of these and other new language implementations,
please refer to the Language Enhancements
section in the Release Notes.

Universal Triggers

Now you can write conditional insert / update / delete
actions in one Before or After trigger to have the one
trigger cover all DML actions for that trigger's phase.
This cuts down the composition and maintenance of
triggers without deprecating the ability to have
multiple triggers per phase.

Database Aliases

In the new aliases.conf file you can specify server­
side aliases for your databases, so you don't have to
store the full path to the database on the client side.
You can connect from a client app with the new
Server[/Port]:Alias syntax.

Varchar Trimming

Varchars now cross the wire right­trimmed to
actual length plus two bytes.
NOTE: As it is the client that requests the server to
trim varchars, the Firebird 1.5 client (fbclient.dll or
libfbclient.so) will trim, even if connected to a pre­1.5
server version. If you use an old client, you will not
get trimming, even if you are connected to a 1.5 or
later server.

Max. Number of Indexes

Now in both Release 1.0 and 1.5 the maximum
number of indexes you can define for a table has been
increased from 64 to 256.

Execute Statement

This PSQL extension takes a string which is a valid
dynamic SQL statement and executes it as if it had
been submitted to DSQL. Available in Triggers and
Stored Procedures.

New context variables

Among those are CURRENT_CONNECTION and
CURRENT_TRANSACTION: Each of these integer
context variables returns the system identifier of the
active connection or the current transaction context,
respectively. Available in DSQL and PSQL.

Enh. Named Constraints

Indexes that enforce named integrity constraints may
now be named with user­defined identifiers. Warning:
if you use this feature, your database will not be
downgradable to v.1.0.x or InterBase®.

Transaction Savepoints

New SQL99­compliant user Savepoints (a.k.a. nested
transactions) provide a convenient method to handle
business logic errors without needing to roll back the
transaction. Available only in DSQL.

New Configuration File

Several files have been renamed in this release. In
most cases, the new names involve some variant of
"firebird" or "fb", e.g. the old gds32.dll is now called
fbclient.dll. One of them is the extended configuration
file now named firebird.conf. Firebird 1.5 provides
enhanced security settings and several tuning options
available through settings in this file.