Firebird Documentation Index → Firebird 3.0.6 Release Notes → New In Firebird 3.0 → Summary of Features |
The following list summarises the features and changes, with links to the chapters and topics where more detailed information can be found.
With the completion of true SMP support for Superserver, the Firebird core is now a unified library
that supports a single ODS, loadable either as an embedded engine or by the “network listener”
executable. Choice of server model is determined by settings for a new configuration parameter ServerMode
,
defining the locking and cache modes. It is specified at global level in firebird.conf
.
By default, ServerMode = Super (alias ThreadedDedicated), i.e., SuperServer.
The previous aliases.conf
is replaced by databases.conf
,
now including not just aliases for databases but also (optionally) configuration parameters to enable
configuration of databases and/or alternative security databases individually.
The changes are described in more detail in the chapter Changes in the Firebird Engine.
In Superserver mode, the engine now makes use of multiple CPUs and cores when spawning connections.
Tracker: CORE-775
Implemented by V. Khorsun
Object-oriented C++ APIs enable external code routines to plug in and run safely inside Firebird engine space, including (but not limited to):
Encryption schemes for data
User authentication schemes, including secure key exchange
Eventually, plug-in support for stored procedures, triggers and functions written in Java, C++, ObjectPascal, etc.
Custom configuration at database
level can now be achieved with formal entries in databases.conf
(formerly aliases.conf
).
Transaction IDs, attachment IDs, statement IDs all have increased maximum values.
Maximum number of page buffers in cache is increased for 64-bit servers.
Maximum database size is increased.
For details, see Chapter 4, Changes to the API and ODS.
Firebird now supports user access control via more than one security
database on the server. Each database can
be configured, using the parameter
SecurityDatabase in databases.conf
, to use a
specific database other than the default security3.fdb
. The user
structures may even be defined within the user database itself.
The flag MON$SEC_DATABASE was added to the monitoring table MON$DATABASE to assist in determining what type of security database is used—Default, Self or Other.
Changes in architecture, stiffening of rules for security and data integrity, along with feature requests, have given rise to a raft of new SQL commands for managing users and their access to objects.
Provided the new authentication provisions are used, the system can accept user names and passwords containing non-ASCII characters. See International Character Sets for User Accounts in the Security chapter.
A true BOOLEAN type (True/False/Unknown), complete with support for logical predicates, e.g.,
UPDATE ATABLE SET MYBOOL = (COLUMN1 IS DISTINCT FROM COLUMN2)
For details, see BOOLEAN Type.
IDENTITY type, spawning unique identifiers for the defined column from an internal generator. For details, see IDENTITY-Style Column.
The NOT NULL attribute on a column or domain can now be managed using the ALTER TABLE or ALTER DOMAIN syntax, respectively. For details, see Manage Nullability in Domains and Columns.
For details, refer to Packages.
Now, triggers can be written to execute when database objects are modified or deleted. A typical use is to block unauthorised users from performing these tasks.
For details, refer to DDL Triggers.
A whole new series of analytical functions to work with multiple subsets in DML. See Window (Analytical) Functions.
A suite of statistical functions returning values for a variety of variance, standard deviation and linear regression formulae. See Statistical Functions.
The query engine now supports bi-directional (“scrollable”) cursors, enabling both forward and backward navigation in PSQL and in DSQL with support from the API. See Scrollable (Bi-directional) Cursor Support.
Support implemented for SQL-2008-compliant OFFSET and FETCH clauses as an alternative for {FIRST and SKIP} or {ROWS and TO} clauses. See SQL:2008-Compliant OFFSET and FETCH Clauses.
Firebird 3 can use IPv6 connections on both client and server sides. See the notes for the new configuration parameter IPv6V6Only.
On-line validation, first implemented in Firebird 2.5.4, has been ported forward to Firebird 3.0. See Perform Some Validation Services On-line.
Verbose output from gbak can now include run-time statistics, reporting times elapsed, page reads and page writes. Also supported in the Services API.
Firebird Documentation Index → Firebird 3.0.6 Release Notes → New In Firebird 3.0 → Summary of Features |