FirebirdSQL/0/4
出自VFP Wiki
本文是版本1.0衍生到1.5的最重大的變更大網.假設你已經熟悉Firebird 1.0. 由於完整的變更及加強的一覽表是很長,這裏只針對最重大的變更,如果要知道完整資料請參考"Release Notes for Firebird 1.5" (available on www.firebirdsql.org).
FirebirdSQL 將會改進的主要項目
- Codebase is converted to C++
- Windows Classic builds released
- Windows Embedded builds released
- Explicit pessimistic locks
- Savepoints
- CASE/NULLIF/COALESCE
- Improved aggregate tracking
- Universal triggers
- EXECUTE STATEMENT
- Performance improvements
- Major bugfixes
Windows Embedded builds released
- SuperServer core in a single DLL
- No local loopback or any other IPC overhead
- Drop-in replacement of fbclient.dll/gds32.dll
- Embed and use it from Java using Jaybird Type 2 driver
Codebase is converted to C++
- Big type-safety cleanup was performed
- We use C++ exceptions now
- Memory manager is rewritten from scratch in C++
- Configuration manager is also rewritten from scratch in C++
- Aliases management and directory security is also pure C++ code
Windows Classic builds released
- Support SMP machines running Windows
- Performance is comparable to Linux Classic builds
- Services API are partially supported (and they are supported is other classic builds too!)
Explicit pessimistic locks
- Allow to prevent record modification by another transaction
- Lock is removed at transaction finish time
- Have consistent waiting behavior in all TPB modes
- Never report update conflicts, only deal deadlocks are reported
Savepoints
- Allow to mark a named state of transaction and return to it later
- Available in DSQL
- Syntax complies with SQL standard
CASE/NULLIF/COALESCE
- New built-in functions that comply to SQL99 standard
Improved aggregate tracking
- Allow to link to outer aggregates from subqueries
- Fully backward-compatible for correct queries
- Detect all incorrect queries
Universal triggers
- Create a single trigger for a set of actions
- You always have access to both new and old record context from universal triggers
- You can get a reason of invocation from inside the trigger via accessing INSERTING/UPDATING/DELETING variables
EXECUTE STATEMENT
- Allows to execute dynamic SQL statement from inside procedure or trigger
- All metadata operations are supported
- You can get the result of singleton query or iterate dynamic result set
Performance improvements
- New memory manager
- Optimizer improved in many cases
- Savepoint undo log is now stored in B+ tree
- Index-management code is somewhat optimized
- Performance of metadata operations improved introducing deferred BLR compilation and adding system indices
- New thread scheduler for Windows SS builds
Major bugfixes
- Multiple DDL failures
- Several database corruption cases
- Parameter ordering bugs
- Solved annoying “OBJECT IN USE” errors while you have a single connection