
Firebird SQL è un database management system relazionale (RDBMS)
opensource distribuito sotto licenza IPL (Interbase Public License) o IDPL (simile alla Mozilla
Public License).
Supporta numerosi sistemi operativi: Win32/64 - Linux x86 - Linux AMD64 -
MacOS X - Solaris
Le principali caratteristiche di questo RDBMS sono l´alto livello di
conformità con gli standard SQL, la completa integrazione con molti linguaggi di programmazione e la
facile installazione e manutenzione del software.
Changelog:
#Fixed -
*
Core Engine/API -
- (CORE-3046) - After an ALTER TABLE was executed in one connection, an
assertion would occur if another connection tried to select from the table.
- (CORE-3038) - An
insert would fail with a spurious validation error on a specified column definition.
-
(CORE-3034) - If a request was cancelled for some reason, such as database shutdown or by a user
request, while inserting key into an expression index, it could lead to bugcheck 300 (can´t find
shared latch).
- (CORE-3017) - Files were being left behind in Firebird´s lock directory.
-
(CORE-3016) - On disconnect a “Fatal lock manager error: invalid lock id (0), errno: 0” could show
up in firebird.log.
- (CORE-3015) - Various “Cannot initialize the shared memory region” errors
were reported.
- (CORE-3010) - On the first connect to any database, the monitor would report
MON$MEMORY_USED = 4Gb.
- (CORE-3003) - New checks for the existence of a SUSPEND statement in a
procedure being called via SELECT statement were working properly: if the procedure was called via a
SELECT statement and SUSPEND was not present, an error would be thrown, e.g., “Procedure ... is not
selectable (it does not contain a SUSPEND statement)”. However, if the same error condition occurred
during a RESTORE, it could cause the restore to fail.
- (CORE-2995) - A single error in the
status vector was being reported twice.
- (CORE-2993) - On a highly loaded system, the fatal lock
manager error “Invalid lock id (NNN)” could occur while working with monitoring tables.
-
(CORE-2920) - Volatile SQL statements inside an EXECUTE STATEMENT construct could be executed
incorrectly.
- (CORE-2900) - Using a request containing an aggregated DISTINCT could cause
regular but random memory access violations.
- (CORE-2985) - Altering COMPUTED columns was not
dealing properly with dependencies.
- (CORE-2981) - An error would occur in the trace plugin when
localized characters were used in a query.
- (CORE-2977) - The server was working incorrectly
with indexed fields of type DATE in databases with ODS lower than 10.
- (CORE-2971) - Invalid
usage of the UPDATE OR INSERT statement syntax could give rise to a “request depth exceeded”
exception.
- (CORE-2966) - On 32-bit builds, wrong results or unexpected errors could arise while
sorting a large data set.
- (CORE-2965) - The ROW_COUNT value returned after a subquery involving
a SINGULAR predicate was inconsistent with the rules, viz., ROW_COUNT is meant to count rows
affected by an update or delete and should not return non-zero value from subqueries.
-
(CORE-2956) - Problems with requests processing procedure parameters.
- (CORE-2943) - An error
would occur during parsing of a recursive query with two recursive parts.
- (CORE-2942) - Huge
(>10Gb) memory was being consumed by some fb_inet_server processes.
- (CORE-2940) - Trace
output could contain garbage data left behind from filtered out statements.
- (CORE-2936) - If
two consecutive leaf index pages were removed (garbage collected) from an index simultaneously by
two different connections, the linked list of sibling pages could be broken, with the sibling
pointer at another index page left pointing to the freed index page. When the freed page was
allocated again, index corruption would be reported as “Wrong page type (expected 7 found N)”.
-
(CORE-2934) - Memory leak in the trace plugin (fbtrace).
- (CORE-2933) - An optimization issue
with the system tables would cause very slow execution of a script that was creating a lot of
metadata.
- (CORE-2930) - DROP VIEW would drop the output parameters of used stored
procedures.
- (CORE-2929) - The error “invalid ESCAPE sequence” could be thrown when connecting
to a database.
- (CORE-2923) - Problem with dependencies between a procedure and a view using
that procedure.
- (CORE-2917) - The server could hang with an I/O error during the “open”
operation for the file /tmp/firebird/fb_trace_ksVDoc
- (CORE-2916) - Error handling was broken in
the case of a conversion error occurring during index creation.
- (CORE-2910) - The primary key
index was being ignored for optimizing derived tables.
- (CORE-2907) - Exceptions thrown inside a
dynamically-built EXECUTE STATEMENT could not be returned to clients in a recognisable fashion.
Exception handling in EXECUTE STATEMENT has been enhanced to provide a solution.
- (CORE-2898) -
CHAR_TO_UUID and UUID_TO_CHAR behaviours differed according to whether platform architecture was big
endian or little endian.
- (CORE-2893) - An expression within a subquery could be treated as
invariant and produce incorrect results.
- (CORE-2886) - Query with NOT IN <subselect from
view> would fail.
- (CORE-2879) - Sweep could raise the error page 0 is of wrong type
(expected 6, found 1).
- (CORE-2876) - Unintelligent error handling when using ALTER DATABASE ADD
DIFFERENCE FILE could cause the engine to get confused about the backup mode of a database.
-
(CORE-2875) - Comparing a CHAR column longer than 4096 bytes with a string constant would cause a
string right truncation error.
- (CORE-2871) - If a derived table or a view contained both a
left/right join and an ORDER BY clause and the outer query also contained an ORDER BY clause, the
outer ORDER BY clause would have no effect.
- (CORE-2867) - SuperClassic was leaking semaphores
on disconnect.
- (CORE-2864) - The listener process of Classic Server was leaking handles.
-
(CORE-2858) - Memory trashing was possible when raising some exceptions to signal failed security
checks.
- (CORE-2856) - A non-NULL key in a unique index could not be found when the key was
removed
- (CORE-2851) - The fb_cancel_operation() API call was exhibiting a problem.
-
(CORE-2833) - Changing data that affected an expression index would fail if that data contained
references to null date fields.
- (CORE-2826) - Join condition would fail for UTF-8
databases.
- (CORE-2756) - An expression deriving a string from taking a substring from a
timestamp value would return an unexpected result.
- (CORE-2628) - FreeAdhocUDF library functions
were denied on 32-bit Windows platform.
- (CORE-1089) - Selecting from a view that used DISTINCT
and LEFT JOIN returned records in the wrong order if the ORDER BY clause did not include columns
from the right-side (non-mandatory) table.
- (CORE-195) - Regression of an old bug, previously
fixed in v.1.5.1, whereby a bugcheck 291 (cannnot find back record version) would occur when
updating the same record that had already fired an action in a BEFORE UPDATE trigger. The regression
that was reintroduced in v.2.0 was less destructive, insofar as it affected only the record that was
physically first in the table.
* Server Crashes -
- (CORE-3011) - The server could hang or
crash while monitoring connections that were repeatedly attaching and detaching.
- (CORE-2908) -
The engine could crash or raise unexpected errors when working with an ODS 8.x database.
-
(CORE-2888) - A source of memory corruption could cause incorrect query evaluation and could even
crash the server.
- (CORE-2852) - The server could crash when executing a syntactically wrong SQL
statement during an active trace session.
* Command-line Utilities -
- (CORE-3000) - An
error would be thrown while deleting a user with the user name ADMIN. The issue was due to gsec
ignoring the double quotes around the reserved word ADMIN when it submitted the SQL command
internally. The solution, provided the database and client are dialect 3, was to force gsec to
retain the quotes.
- (CORE-2928) - Buffer overflow in gsec. For reasons unknown, the gsec code
copies the value of the password hash to an internal user data structure during a display operation.
Since V.2.0, when the newer hash algorithm made the hash longer than previously, the buffer used for
storing it could be too short. This does not create a vulnerability because the hash value does not
travel anywhere. It is harmless, anyway: the buffer overflow cannot be exploited because the first,
middle and last names are filled immediately after the password. It is fixed now, thus avoiding
having newer versions of glibc detecting this overflow.
- (CORE-2984) - gbak -b -v srv:db stdout
was causing a broken backup to be created.
- (CORE-2914) - Restoring a database having an
expression index referencing a non-existent UDF would cause the server to crash.
- (CORE-2859) -
The security database was remaining locked after replacing the database.
- (CORE-2846) - If gfix
-shut <mode> -attach <timeout> failed after the specified timeout due to connections
being still active, connection to the database would become impossible.
- (CORE-2844) -There were
some unresolved symbol references when linking fbsvcmgr and fbtracemgr.
- (CORE-2750) - Physical
backup could not restart operations after the explicit difference file had been dropped.
*
POSIX-Only Issues -
- (CORE-3067) - On 64-bit POSIX, except HP-UX, objects were not being
unmapped when shared memory was closed. The 64-bit pointer had been masked with a 32-bit mask, which
turned out to be a really bad idea: with Object == 0x7FAB12345678 and page size == 4K, the upper
bits were lost and the starting address would be at 0x12345000 instead of the intended
0x7FAB12345000.
- (CORE-3021) - Fixed a condition that was causing a segfault in DEV_BUILD.
-
(CORE-3019) - On a recent version of Gentoo Linux, an attempt to source the function library
/etc/init.d/functions.sh would fail with the message “* ERROR: firebird does not have a start
function” and neither SuperServer nor SuperClassic would start.
- (CORE-3006) - Group privileges
for the /tmp/firebird directory and files within it were being assigned as root (i.e. GID == 0)
instead of firebird in some circumstances.
- (CORE-3001) - Install was failing to create the
firebird user and group.
- (CORE-2948) - In rare cases, when Ctrl-C was pressed to stop the
Superclassic server, it would cause a segmentation fault during exit.
- (CORE-2926) - “make
install” was failing on Linux.
- (CORE-2919) - The Linux installation script was ignoring
non-standard ports.
- (CORE-2862) - configure --with-fbudf was breaking the build on CentOS.
-
(CORE-2845) - The build process on Solaris would stop with the message: “need to use SFIO”. On the
whole, Solaris 10 no longer requires SFIO - the 64-bit builds do not suffer the issue with the
maximum 255 file descriptors and there are simple work-arounds for 32-bit builds. See this article
for details. However, the issue still affects Solaris 10 3/05 through Solaris 10 11/06. Some patches
are needed to correct the problem. For the time being, the easiest solution is to leave the define
in the code, but comment it with the relevant information for Solaris 10. The define can be removed
if the patches have been applied or the user is running an unaffected version of Solaris 10. Updated
information concerning this issue has been inserted into common.h. Anyone building 32-bit Firebird
on Solaris 10 will have to make an informed decision according to the version and build/patch level
of Solaris before uncommenting the SFIO define.
- (CORE-2825) - Some patches were applied to
facilitate building on Debian/kFreeBSD and FreeBSD.
La community con le risposte che cerchi! Partecipa é gratis!
Iscriviti al Forum
Vuoi ricevere tutti gli aggiornamenti di SWZone direttamente via mail?
Iscriviti alla Newsletter
Accedi al forum
Accedi all'area relax di SWZone