📄 whatsnew.txt
字号:
* Fixed bug SF #558364.
Triggers fail to compile if PLAN used.
Note:
Now you can use plans in triggers.
Contributor(s):
Ignacio J. Ortega <nacho at siapi.es>
* Fixed unregistered bug.
Distributed (2PC) transaction cannot be properly rolled back due to network errors.
Contributor(s):
Vlad Horsun <horsun at kdb.dp.ua>,
Erik Kunze <erik.kunze at philosys.de>
* Fixed Alpha 2 bug.
Possible buffer overrun if dynamic exception messages are used.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed Alpha 2 bug.
Problem with sub-select and GROUP BY clause.
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed Alpha 2 bug.
The server hangs with a bugcheck #284 (cannot restore singleton select data).
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Generic cleanup.
ISC_STATUS_LENGTH and MAXPATHLEN macros.
Contributor(s):
Erik Kunze <erik.kunze at philosys.de>
* Fixed Alpha 2 bug.
Version information is missing in libraries and tools.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed Alpha 2 bug.
Backported a few bits of FB1 code which have been lost.
Contributor(s):
Claudio Varderrama <cvalde at usa.net>,
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed bug SF #496784.
When optimizer find indexes for LEFT JOIN, work like INNER JOIN.
Note:
Fixed problem which caused complex outer joins to produce wrong results.
Contributor(s):
Nickolay Samofatov <skidder at bssys.com>
* Fixed Alpha 2 bug.
Changes in aliases.conf are not applied until the server is restarted.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
**************
* v1.5 Alpha 2
**************
* Fixed unregistered bug.
BLOB subtype is ignored in system domains generated for expression fields in views.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed installation bug.
instreg.exe doesn't create "GuardianOptions" registry value.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug.
Resource leaks in DDL recursive procedure handling which caused some DDL to fail.
Contributor(s):
Nickolay Samofatov <skidder at bssys.com>
* Fixed unregistered bug.
Check constraint which uses only one table field is now dropped automatically when this field is dropped.
Contributor(s):
Nickolay Samofatov <skidder at bssys.com>
* Fixed Alpha 1 bug.
GROUP BY ordinal doesn't work with column aliases.
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed Alpha 1 bug.
Views are not being created correctly (missing records in RDB$VIEW_RELATIONS).
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
**************
* v1.5 Alpha 1
**************
* Fixed unregistered bug.
A well-known "decompression overran buffer" error appears during the schema creation.
Contributor(s):
Evgeny Kilin <john at citycard.izhnet.ru>
* New ROWS_AFFECTED system variable (SF #451927).
Return number of rows affected by the last INSERT/UPDATE/DELETE statement.
Notes:
1. Available in PSQL only.
2. For any other statement than INSERT/UPDATE/DELETE, result is always zero.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Dynamic exception messages (SF #446240).
Allow to throw an exception with another message than this exception has been created with.
Syntax:
EXCEPTION name [value];
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* New SQLCODE and GDSCODE system variables (SF #547383).
Provide an access to a code of the catched error within the WHEN-block.
Notes:
1. Available in PSQL only.
2. Makes sense in WHEN-block only, in other places returns 0 (success).
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Exception re-initiate semantics.
Allow an already catched exception to be re-thrown from the WHEN-block.
Syntax:
EXCEPTION;
Note:
Makes sense in WHEN-block only, in other places evaluates to no-op.
Contributor(s):
Digitman <digitman at hotbox.ru>
* Fixed unregistered bug.
The server crashes during the garbage collection under heavy load.
Contributor(s):
Nickolay Samofatov <skidder at bssys.com>
* Deferred metadata compilation.
Solve a lot of reasons of the well-known "object in use" error.
Contributor(s):
Nickolay Samofatov <skidder at bssys.com>
* New NULL order handling.
Allow user-defined ordering of NULLs.
Syntax:
[ORDER BY <order_list>]
<order_list> = {col | int} [COLLATE collation]
[ASC[ENDING] | DESC[ENDING]] [NULLS {FIRST | LAST}]
[, <order_list> ...]
Note:
Default behaviour is NULLS LAST.
Contributor(s):
Nickolay Samofatov <skidder at bssys.com>
* Fixed unregistered bug.
gstat shows wrong value for maxdup element.
Contributor(s):
Dmitry Kuzmenko <kdv at ibase.ru>
* New registry key is used on win32.
Currently it's SOFTWARE\Firebird Project\Firebird Server.
Contributor(s):
-
* User-defined constraint index names (SF #451925).
Allow an index name to be either constraint name or user-defined name.
Syntax:
<col_constraint> = [CONSTRAINT constraint]
{UNIQUE [<constraint_index>]
| PRIMARY KEY [<constraint_index>]
| REFERENCES other_table [( other_col [, other_col ...])]
[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[<constraint_index>]
| CHECK ( <search_condition>)}
<tconstraint> = [CONSTRAINT constraint]
{{PRIMARY KEY | UNIQUE} ( col [, col ...]) [<constraint_index>]
| FOREIGN KEY ( col [, col ...]) REFERENCES other_table
[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[<constraint_index>]
| CHECK ( <search_condition>)}
<constraint_index> = USING [ASC[ENDING] | DESC[ENDING]] INDEX name
Note:
Index is named the same way as a constraint by default.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* New RECREATE VIEW statement.
A shorthand for DROP VIEW / CREATE VIEW couple of statements.
Syntax:
RECREATE VIEW name <view_definition>;
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug.
Trigger which name starts with 'RDB$' cannot be altered or dropped at all.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Changed file names.
Renamed distribution files to make sure we're Firebird. Now they're fbserver, fbclient, firebird.msg etc.
Note:
The client library is fbclient now and it should be used in all new FB-based projects. gds32 contains nothing but redirected exports and is provided for compatibility only.
Contributor(s):
-
* Minor ODS upgrade.
Added new system indices (RDB$INDEX_41, RDB$INDEX_42, RDB$INDEX_43), now ODS version is 10.1.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>,
Nickolay Samofatov <skidder at bssys.com>
* New CREATE OR ALTER statement (SF #451935).
Allow either creating or altering a database object depending on its existance.
Syntax:
CREATE OR ALTER name <object_definition>;
Notes:
1. Applicable to SPs/triggers only.
2. The statement has the same meaning as CREATE OR REPLACE one in Oracle.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug.
Broken dependencies (like DB$34) appear in the database after metadata changes.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Enhanced declaration of local variables.
Simplify syntax and allow declaring and defining variable at the same time.
Syntax:
DECLARE [VARIABLE] name <variable_type> [{'=' | DEFAULT} value];
Example:
DECLARE my_var INTEGER = 123;
Contributor(s):
Claudio Valderrama <cvalde at usa.net>
* Disabled BREAK statement for triggers (like EXIT) due to known internal limitations.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Enhanced grouping (SF #555839, #546274).
Allow to GROUP BY internal functions and subqueries. Also allow to GROUP BY ordinal (i.e. column position).
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* New COALESCE internal function (SF #451917).
Allow a column value to be calculated by a number of expressions, the first expression returning a non NULL value is returned as the column value.
Syntax:
COALESCE (value {, value} ... )
Notes:
1. COALESCE (V1, V2) is equivalent to the following case specification:
CASE WHEN V1 IS NOT NULL THEN V1 ELSE V2 END
2. COALESCE (V1, V2, ..., Vn), for n >= 3, is equivalent to the following case specification:
CASE WHEN V1 IS NOT NULL THEN V1 ELSE COALESCE (V2, ..., Vn) END
3. The function has the same meaning as NVL one in Oracle.
Example:
SELECT
PROJ_NAME AS Projectname,
COALESCE(e.FULL_NAME, '[> not assigned <]') AS Employeename
FROM
PROJECT p LEFT JOIN EMPLOYEE e ON (e.EMP_NO = p.TEAM_LEADER)
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* New NULLIF internal function (SF #451917).
Return a NULL value for a sub-expression if it has a specific value, otherwise return the value of the sub-expression.
Syntax:
NULLIF (value, value)
Note:
NULLIF (V1, V2) is equivalent to the following case specification:
CASE WHEN V1 = V2 THEN NULL ELSE V1 END
Example:
UPDATE PRODUCTS
SET STOCK = NULLIF(STOCK, 0)
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* New CASE internal function (SF #451917).
Allow the result of a column to be determined by a the results of a case expression.
Syntax:
<case_specification> = <simple_case> | <searched_case>
<simple_case> = CASE value <simple_when_clause> ... [ELSE value] END
<simple_when_clause> = WHEN value THEN value
<searched_case> = CASE <searched_when_clause> ... [ELSE value] END
<searched_when_clause> = WHEN <search_condition> THEN value
Note:
The function has the same meaning as DECODE one in Oracle.
Examples:
1. Simple case:
SELECT
o.ID,
o.Description,
CASE o.Status
WHEN 1 THEN 'confirmed'
WHEN 2 THEN 'in production'
WHEN 3 THEN 'ready'
WHEN 4 THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM
Orders o
2. Searched case:
SELECT
o.ID,
o.Description,
CASE
WHEN (o.Status IS NULL) THEN 'new'
WHEN (o.Status = 1) THEN 'confirmed'
WHEN (o.Status = 3) THEN 'in production'
WHEN (o.Status = 4) THEN 'ready'
WHEN (o.Status = 5) THEN 'shipped'
ELSE 'unknown status ''' || o.Status || ''''
END
FROM
Orders o
Contributor(s):
Arno Brinkman <firebird at abvisie.nl>
* Fixed bug SF #545725.
Automatic/background sweep hangs.
Contributor(s):
Alexander Peshkoff <peshkoff at hotmail.ru>
* Fixed unregistered bug.
The server crashes when XSQLDA structures are prepared for not all statement parameters.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Enabled support for empty BEGIN...END blocks.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Partially fixed bug SF #567931.
Metadata security hole.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed unregistered bug.
INT64 arrays don't work.
Contributor(s):
Artem Petkevych <artem at protec.kiev.ua>
* Fixed bug SF #437859.
Execute procedure and string concat.
Note:
This change allows any expression to be used as a SP parameter.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Fixed bug SF #562417.
Aggregate concatenated empty char.
Contributor(s):
Dmitry Yemanov <yemanov at yandex.ru>
* Readline (cmd history) support added to ISQL.
Contributor(s):
Mark O'Donohue <mark.odonohue at cytopia.com.au>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -