FirebirdSQL/0/4

出自VFP Wiki

在2005年4月7日 (四) 06:57由Elleryq (對話 | 貢獻)所做的修訂版本
跳轉到: 導航, 搜尋

本文是版本1.0衍生到1.5的最重大的變更大網.假設你已經熟悉Firebird 1.0. 由於完整的變更及加強的一覽表是很長,這裏只針對最重大的變更,如果要知道完整資料請參考"Release Notes for Firebird 1.5" (available on www.firebirdsql.org).


目錄

FirebirdSQL 將會改進的主要項目

  1. Codebase is converted to C++
  2. Windows Classic builds released
  3. Windows Embedded builds released
  4. Explicit pessimistic locks
  5. Savepoints
  6. CASE/NULLIF/COALESCE
  7. Improved aggregate tracking
  8. Universal triggers
  9. EXECUTE STATEMENT
  10. Performance improvements
  11. Major bugfixes

Windows Embedded builds released

  1. SuperServer core in a single DLL
  2. No local loopback or any other IPC overhead
  3. Drop-in replacement of fbclient.dll/gds32.dll
  4. Embed and use it from Java using Jaybird Type 2 driver

Codebase is converted to C++

  1. Big type-safety cleanup was performed
  2. We use C++ exceptions now
  3. Memory manager is rewritten from scratch in C++
  4. Configuration manager is also rewritten from scratch in C++
  5. Aliases management and directory security is also pure C++ code

Windows Classic builds released

  1. Support SMP machines running Windows
  2. Performance is comparable to Linux Classic builds
  3. Services API are partially supported (and they are supported is other classic builds too!)

Explicit pessimistic locks

  1. Allow to prevent record modification by another transaction
  2. Lock is removed at transaction finish time
  3. Have consistent waiting behavior in all TPB modes
  4. Never report update conflicts, only deal deadlocks are reported

Savepoints

  1. Allow to mark a named state of transaction and return to it later
  2. Available in DSQL
  3. Syntax complies with SQL standard

CASE/NULLIF/COALESCE

  1. New built-in functions that comply to SQL99 standard

Improved aggregate tracking

  1. Allow to link to outer aggregates from subqueries
  2. Fully backward-compatible for correct queries
  3. Detect all incorrect queries

Universal triggers

  1. Create a single trigger for a set of actions
  2. You always have access to both new and old record context from universal triggers
  3. You can get a reason of invocation from inside the trigger via accessing INSERTING/UPDATING/DELETING variables

EXECUTE STATEMENT

  1. Allows to execute dynamic SQL statement from inside procedure or trigger
  2. All metadata operations are supported
  3. You can get the result of singleton query or iterate dynamic result set

Performance improvements

  1. New memory manager
  2. Optimizer improved in many cases
  3. Savepoint undo log is now stored in B+ tree
  4. Index-management code is somewhat optimized
  5. Performance of metadata operations improved introducing deferred BLR compilation and adding system indices
  6. New thread scheduler for Windows SS builds

Major bugfixes

  1. Multiple DDL failures
  2. Several database corruption cases
  3. Parameter ordering bugs
  4. Solved annoying “OBJECT IN USE” errors while you have a single connection