--- Release version 1.18 (7.10.1999) -------------------------------------

1. Make it possible sort records by length of array fields.

--- Release version 1.19 (14.10.1999) ------------------------------------

1. Fix bug in cursor::reset method introduced in 1.17 version by incorrect
   __INSURE__ conditional compilation.

2. Fix mistyping in assert statement at database.cpp:3029

3. Fix bug with reseting cursors opened by at() method.

--- Release version 1.20 (20.10.1999) ------------------------------------

1. Add RAW BINARY type.

--- Release version 1.21 (01.11.1999) ------------------------------------

1. Cascade deletes.
2. New implementation of B+Tree index (placing full string keys at the
   internal pages of the tree, case insensetive search, improved performance).

--- Release version 1.22 (11.11.1999) ------------------------------------

1. Add get peer name method to the WWWapi.
2. Fix bug with calculating length by strxfrm in B+tree.
3. New implementation of cascade deletes.
4. Implementation of queue manager for WWW API.
5. New example of Web database publishing - CLIDB.
   Example of multithreaded server development using queue manager.
6. Add type of cursor parameter to the select statement.
7. Support pointers to arrays as querry parameters

--- Release version 1.23 (16.11.1999) ------------------------------------

1. Fix bug in B+Tree implementation

--- Release version 1.24 (29.11.1999) -------------------------------------

1. Correctly handle non-persistent connections to HTTP server
2. Fix minor bugs in CLIDB example

--- Release version 1.25 (7.12.1999) -------------------------------------

1. Fix bug with specifying cursor type when at() method is used.


--- Release version 2.00 (20.01.2000) -------------------------------------

1. Handle "create table" in SubSQL.
2. Add CLI (call-level interface).
3. Multithreaded server support.
4. Fix bug with in place update of records with varying components.

--- Release version 2.01 (18.02.2000) -------------------------------------

1. Add copy constructor to dbArray class
2. Fix bug with transaction rollback
3. Supports Sun CC compiler

--- Release version 2.02 (22.02.2000) -------------------------------------

1. Port to FreeBSD
2. Fix mistypings in array.h and makefile

--- Release version 2.03 (03.03.2000) -------------------------------------

1. Fix bug in Btree
2. Check compilation flags in dbDatabase constructor

--- Release version 2.04 (14.03.2000) -------------------------------------

1. Fix bug in copy constructor of dbException class
2. Compile with pthreads at Unix by default

--- Release version 2.05 (27.03.2000) -------------------------------------

1. Indexed joins (see testjoin.cpp example)
2. Fix bug with sorting/comparing field with smallest integer value

--- Release version 2.06 (11.04.2000) -------------------------------------

1. Fix bug with deleting first/last record in the cursor for all records in the table
2. Modification in memory allocation algorithm for better space reusing

--- Release version 2.07 (30.04.2000) -------------------------------------

1. Fix bug with packing array of strings
2. Add dbDate class
3. Non blocking online backup
4. Fix bug in clitest.c

--- Release version 2.08 (06.05.2000) -------------------------------------

1. Fix bug with incorrent beginning of transaction by dbCursor::at method.
2. Add dbDatabase.getAllocatedSize() method

--- Release version 2.09 (12.05.2000) -------------------------------------

1. Common makefile for all Unix platforms
2. "make NO_PTHREADS=1"

--- Release version 2.10 (14.06.2000) -------------------------------------

1. BLOBs
2. B-Tree containers
3. dbAnyCursor::selectByKey method
4. New segment allocation strategy (first segment is included in cursor object)
5. Indexed merge
6. Fix bug with B-Tree object allocation

--- Release version 2.11 (28.06.2000) -------------------------------------

1. Fix bugs in BLOB implementation
2. GNU autoconfig stuff for Unixes

--- Release version 2.12 (21.07.2000) -------------------------------------

1. Fix bug in local_win_socket::read 
2. Fix memory leaks in CLI server
3. Add isLast, isFirst methods to the cursor

--- Release version 2.13 (1.08.2000) -------------------------------------

1. Fix bug in rollback "create table" statement
2. Long-live cursor - freeze/unfreeze

--- Release version 2.14 (4.08.2000) -------------------------------------

1. Correctly set INDEXED flag when load classes from the database
2. Correctly report database errors

--- Release version 2.15 (12.08.2000) -------------------------------------

1. Support of UNICODE strings
2. New implementation of locking (update locks, FIFO order of granting lock reuests)

--- Release version 2.16 (27.09.2000) -------------------------------------

1. Fix bug in dbSmallBuffer
2. Fix bug in dbSelection::merge

--- Release version 2.17 (17.10.2000) -------------------------------------

1. Support of Borland C++Builder 5.0 done by Guram Dukashvili
2. Fix bug in parellel sequention search algorithm intrifuced in version 2.15  
3. Release mutex when longjmp is used instead of C++ exceptions to unwind stack.

--- Release version 2.18 (23.10.2000) -------------------------------------

1. Fix bugs in locking algorithm
2. Fix bug with temporary buffer allocation for index search 

--- Release version 2.19 (25.10.2000) -------------------------------------

1. Fix lock upgrading bug
2. Fix bug in server::stop method

--- Release version 2.20 (27.11.2000) -------------------------------------

1. Fix bugs in implementation of multifile
2. RAID-0 support

--- Release version 2.21 (29.11.2000) -------------------------------------

1. Fix operator, problem for MS Visual C++
2. Reduce number of memory leaks caused by "living forever" GigaBASE objects

--- Release version 2.22 (26.12.2000) -------------------------------------

1. PHP language interface
2. Enhansed C CLI API (cli_decimal and cli_any type, cli_describe function)
3. Fix bug in load scheme 

--- Release version 2.23 (25.01.2001) -------------------------------------

1. Support array of strings in C CLI API, add array support to PHP CLI API
2. Support implicit conversion from string types in SubSQL

--- Release version 2.24 (31.01.2001) -------------------------------------

1. Add Java CLI API
2. Fix bugs related with arrays fields handling in CLI server.
3. Fix bugs with cascade deletes

--- Release version 2.25 (07.02.2001) -------------------------------------

1. Fix bugs in CLI server and Java API. 

--- Release version 2.26 (05.03.2001) -------------------------------------

1. Fix bugs in parallel search implementation

--- Release version 2.27 (19.03.2001) -------------------------------------

1. Sharing of tables between several databases.

--- Release version 2.28 (26.03.2001) -------------------------------------

1. Support authentication in CLI protocol. Connection pooling.

--- Release version 2.29 (05.04.2001) -------------------------------------

1. Comatibility with GCC 2.96

--- Release version 2.30 (13.04.2001) -------------------------------------

1. Add support of datetime type in CLI

--- Release version 2.31 (28.04.2001) -------------------------------------

1. Find bug with handling long keys in B-Tree
2. Fix bug with closing of multifiles

--- Release version 2.32 (15.05.2001) -------------------------------------

1. Port to AIX with IBM C++ compiler and to BSD.

--- Release version 2.33 (08.06.2001) -------------------------------------

1. Optionally place all GigaBASE classes in separate namespace
2. Build DLL for Windows

--- Release version 2.34 (29.06.2001) -------------------------------------

1. Add query dump
2. Add precommit function to CLI
3. Port to OpenBSD
4. Fix bug with table creation in SubSQL
5. Perl API done by Pavel Zheltouhov. 

--- Release version 2.35 (14.07.2001) -------------------------------------

1. Fix bug with dealloaction of query elements

--- Release version 2.36 (27.07.2001) -------------------------------------

1. Optimized version of memory allocator
2. Fix bug with checkin duplicates in scheme load
3. Fix bug with temporary cursors used by query optimizer
4. Make it possiblew to specify poo size for subsql (through DB_POOL_SIZE environment variable)\
5. Fix bugs in dbCursor::selectByKey
6. Fix bug  and improve dbBlob implementation (LIFO discipline for BLOB pages)
7. Add methods dbAnyCursor::selectByKeyRange and dbAnyCursor::skip

--- Release version 2.37 (09.08.2001) -------------------------------------

1. Fix bugs introduced in 2.36 release
2. Add delayed binding of pararameters (make it possible to eexcute the same query concurrently
by multiple threads.

--- Release version 2.38 (17.08.2001) -------------------------------------

1. Add online backup scheduler
2. Implements delayed commit model

--- Release version 2.39 (20.08.2001) -------------------------------------

1. Fix UNICODE support problems
2. Supports of the latest SUN Forte 6U2 C++ in autoconfiguration

--- Release version 2.40 (30.08.2001) -------------------------------------

1. Preserve cursor consistency by automatic update of the current record in cursor when the
object is updated (by other cursor or because of inverse reference propagation).
2. New version of PerlAPI.
3. Fix bug with inherited attributes cleanup (can be a source of memory leaks and even 
craches in "exists" construction)
4. Graphic SubSQL for OCaml made by Arturo Borquez.


--- Release version 2.41 (07.09.2001) -------------------------------------

1. Fix bug in cursorsUpdate (cause access violation when updating record through CLI)
2. Add missed gbi.lmi file to GBI
3. Native local sockets support for Java CLI.

--- Release version 2.42 (09.09.2001) -------------------------------------

1. Enable read access to the database during transaction commit
2. Improved support of user defined types: now it is possible to use raw binary type in queries, 
indices and sort clause.
3. Version 1.03 of Perl API implemented by Pavel Zheltouhov <pavlo@stud.vsu.ru>

--- Release version 2.43 (11.09.2001) -------------------------------------

1. Fix bugs of 2.42 release
2. Introduce UDT raw binary type with user defined compare function

--- Release version 2.44 (17.09.2001) -------------------------------------

1. Add support of std::string type.
2. Fix bug with dbPagePool:flush introduced in 2.42 version.

--- Release version 2.45 (21.09.2001) -------------------------------------

1. Add autoincrement fields support. To use it you should recompile the system
with -DAUTOINCREMENT_SUPPORT enabled. Attension: GigaBASE compiled with this option will not be 
able to work with databases created without this option and visa versa.

--- Release version 2.46 (25.09.2001) -------------------------------------

1. Fix bug with autoincrement fields update

--- Release version 2.47 (07.10.2001) -------------------------------------

1. Add validation of request in CLI protocol (done by Arturo Borquez <aborquez@altavista.com>)
2. Version 1.04 of Perl API prepared by Pavel Zheltouhov <pavlo@stud.vsu.ru>

--- Release version 2.48 (26.10.2001) -------------------------------------

1. Add dbDatabase::cleanup method to avoid all memory leaks.
2. Fix SMP bug in my local windows sockets implementation
3. Add missed operator = method to the query class

--- Release version 2.49 (1.11.2001) -------------------------------------

1. Fix compilation problems with 2.48 release.

--- Release version 2.50 (27.11.2001) -------------------------------------

1. Support of rectangle type and spatial index (R-Tree)
2. Fix bug in PHP CLI interface
3. Add possibility to compare integer parameters with references
4. Prohibit access to parent directory in GET method in built-in HTTP Server
5. Add cli_skip method to CLI interface. 

--- Release version 2.51 (28.11.2001) -------------------------------------

1. Support "LIMIT [S,]N" construction in queries.
2. Add dbSymbolTable::cleanup() method to make it possible to cleanup symbol table.
   Add CLONE_INDENTIFIERS macro which force cloning identifiers. This is needed to prevent
   hanging references if library using GigaBASE was unloaded.
3. Add version information to the database header
4. Fix bug with SubSQL method invokation in compiler
5. Preserve compatibility with versions prior 2.50 which was broken in 2.50.

--- Release version 2.52 (30.11.2001) -------------------------------------

1. Fix bug in compiler with ORDER by statement introduced in 2.51
2. Fix bug with dbFieldDeallocation with GENEATE_DLL=1 introduced in 2.48

--- Release version 2.53 (03.12.2001) -------------------------------------

1. Fix compilation bug in exception.cpp when no -DTHROW_EXCEPTION_ON_ERROR is defined
2. Fix compilation bug in query.h with -DNO_MEMBER_TEMPLATE 
3. Fix bug in configure 

--- Release version 2.54 (06.12.2001) -------------------------------------

1. New version 1.05 of Perl CLI interface and
   first version 0.01 of Perl DBI interface done by Pavel Zheltouhov <pavlo@tvrn.ru>  
2. Fix compilation problems with namespaces in R-Tree implementation
3. Cleanup of wobs array in page pool.

--- Release version 2.55 (06.12.2001) -------------------------------------

1. Fix bug in transaction rollback

--- Release version 2.56 (14.01.2002) -------------------------------------

1. Add exera parameter to dbDatabase::open method which allows to specify
file open mode.
2. Fix bug with case insensitive LIKE index search.
3. Add makefile.bcc for Borland C++ 5.5.1

--- Release version 2.57 (18.01.2002) -------------------------------------

1. User defined functions with more than one argument and user defined operators.
2. UPDATE statement in SubSQL

--- Release version 2.58 (09.02.2002) -------------------------------------

1. Support "backup compactify" command in SubSQL which makes it possible 
to perform database defgragmentation.
2. Fix bug in delayed trasnaction mode.

--- Release version 2.59 (14.03.2002) -------------------------------------

1. Generalized Search Tree support
2. Replication mechanism
3. Fix bug in w32sock setting socket parameters

--- Release version 2.60 (20.03.2002) -------------------------------------

1. Provide iterators for fields in dbTableDescriptor and dbTableField classes
2. Add toArray method in cursor class
3. Fix UNICODE problems
4. Makes it possible to specify acess mode and page pool size for SubSQL by means
of SUBSQL_READONLY and SUBSQL_POOL_SIZE environment variables

--- Release version 2.61 (04.04.2002) -------------------------------------

1. Fix bug in query omptimizer introduced with user defined types (in some cases 
indices are not applied).
2. Change optimization rule: in case of ((x = C) AND p2) condition, 
where x is some unique indexed field, C is constant and p2 is arbitrary predicate, 
optimizer will use index search for x and check precondition p2 for all selected records. 
Old versions will try to apply index also to p2 and if it is possible, 
merge result of two index searches. 
3. Fix bug with method descriptors.
4. Fix bug in index search using inverse references.

--- Release version 2.62 (26.04.2002) -------------------------------------

1. Fix problems with building DLL under Windows
2. Makes it possible to build Gigabase DLL with __stdcall calling convention.
3. Fix bug with UPDATE in SubSQL utility

--- Release version 2.63 (16.05.2002) -------------------------------------

1. Port to MinGW (makefile.mingw)
2. Fix bug with handling array components in SubSQL

--- Release version 2.64 (01.06.2002) -------------------------------------

1. Fix bugs in PHP API
2. Fix bug in dbQuery::reset not resetting selection limit
3. Fix bug in copyRecordExceptOneField method for class descriptors with methods
4. Fix bug with SubSQL comparision operators for date types
5. Fix bug in dbDate::asString method

--- Release version 2.65 (05.07.2002) -------------------------------------

1. Fix bug in comparison and sorting of user defined types
2. Local CLI implementation

--- Release version 2.66 (09.08.2002) -------------------------------------

1. Fix bugs in NAMESPACE and UNICODE modes.
2. Fix minor bug in backup method. 
3. Fix bug in search with ignoring case. 
4. Many changes and bug fixes in internal HTTP server implementation done by Alexis KARTMANN <akartmann@maporama.com>
5. Fix in local win32 sockets implementation allowing communication between processes at different security
6. Repalce int8 type with db_int8
7. Support "follow by next", "follow by previous" clauses in "start from" construction.

--- Release version 2.67 (23.08.2002) -------------------------------------

1. Fix bug with calculation offsets of structure fields in subsql.
2. Port to Windows CE
3. Fix UNICODE bugs in subsql and localcli.
4. Support of non-POD types in dbArray

--- Release version 2.68 (03.09.2002) -------------------------------------

1. Support of inserting/updating references in SubSQL
2. Fix for CodeWarrior 8 done by Rene Rivera <grafik666@redshift-software.com>
3. Fix synchronization bug in trasanction commit mechanism

--- Release version 2.69 (09.09.2002) -------------------------------------

1. C-Sharp API

--- Release version 2.70 (24.09.2002) -------------------------------------

1. Support arbitrary expressions in ORDER BY clause
2. Implement cli_create_table, cli_drop_table and cli_alter_table requests in
C, Java and C# CLI APIs. 

--- Release version 2.71 (18.10.2002) -------------------------------------

1. Fix bug with handling parentheses in ORDER BY clause. 
2. Fix bug in dbServer::describe_table method
3. Eliminate warnings about data truncation when dbDatabaseOffsetBits > 32
4. Doxygen documentation

--- Release version 2.72 (25.10.2002) -------------------------------------

1. Make it possible to specify WHERE caluse in DELETE statement in SubSQL.
2. Fix bugs in create_table/show_table methods in local CLI.
3. Implement batch inserts. Batch insert dramatically increase speed of databae initialization,
for example without batch inserts, inserting first million of records with 2 keys
takes about 460 seconds, inserting second million of records - 18000 seconds (5 hours) !!!
With batch inserts, inserting first million of records takes 95 seconds, and second million - 97 seconds!
 
--- Release version 2.73 (06.11.2002) -------------------------------------

1. Fix bug in implementation of update method in remote CLI server.
2. Change profile of set_fnc used in cli_column_array allowing this function to copy data itself.
3. Add pool of threads for parellel requests execution
4. Imporove indexed join algorithm in query optimizer 
 
--- Release version 2.74 (15.11.2002) -------------------------------------

1. Fix bug in cli_get_oid in local CLI implementation
2. Fix bug in delayed transaction mode
3. Add more methods to dbQueryExpression class
4. Make it possible to keep thread context and skip commit of transaction in dbDatabase::detach method
5. Make it possible to specify error handler without redefinition of dbDatabase::handleError method (also using local CLI API)
6. Fix bug with unpacking arrays in CLI.

--- Release version 2.75 (29.11.2002) -------------------------------------

1. Fix bug in implementation of cli_cstring type
2. Fix bug in handling rectangles in SubSQL
3. Add dbTimesSeries class
4. Support index search in descent order
5. Update all opened cursors when record is deleted
6. Support "select count(*)" in SubSQL

--- Release version 2.76 (11.12.2002) -------------------------------------

1. Add dbDatabase::allowColumnsDeletion method to allow column deletion from non empty table
2. Fix bug in reverse index traverse

--- Release version 2.77 (24.12.2002) -------------------------------------

1. Fix bug in cascade delete
2. Add remove method to dbTimeSeries class
3. Add dbCursor::seek and cli_seek methods
4. Fix bug in cli_unfreeze

--- Release version 2.78 (17.12.2002) -------------------------------------

1. Add REGISTER_TEMPLATE macro for Borland C++ compiler
2. Fix compilation problem with using namespaces
3. Fix bug in dbTimeSeries class

--- Release version 2.79 (11.02.2003) -------------------------------------

1. Add cli_attach, cli_detach methods to local CLI API
2. Fix memory leak in cli_create ins case of database open failure. 
3. Synchronize creation/deletion of statements in local CLI
4. Support appending binary data in WWWapi

--- Release version 2.80 (21.02.2003) -------------------------------------

1. Fix problems with UNICODE and WinCE support

--- Release version 2.81 (17.03.2003) -------------------------------------

1. Fix bug in selection truncation method
2. Flush root page to the disk when dirty flag is set 
3. Fix bug with in sorting by reference to string field

--- Release version 2.82 (22.04.2003) -------------------------------------

1. Fix bug with copying autoincrement counter during schema evaluation
2. Fix bug with handling inverse references in SubSQL
3. Fix bug in R-Tree
4. Fix uninitialized n_signals variable in dbEvent class
5. Fix stack overflow problem on Solaris

--- Release version 2.83 (25.04.2003) -------------------------------------

1. Fix incompatibilities with some MinGW releases. Also fix moast of the warning
produced by GCC in MinGW environment.
2. Fix compilation problem with MS-Visual C++ 5.0


--- Release version 2.84 (06.05.2003) -------------------------------------

1. Extend query optimizer to use indices on reference fields while traversing inverse references.
Now query with search predicate (exists i: (GS[i].G.N = '1')),  where there is inverse reference 
for field "GS" and index for field "G", can be evaluated using indices. 

2. Introduce OPTIMIZE_DUPLICATES flag for field indices, which improves performance of remove
operation for records which contain indexed field with restricted set of values
(there are many duplicated keys in index)

3. Add replication socket which allows CLI client to broadcast requests
to multiple servers and gather+compare responses from them. With replication
socket client can continue work with the database even in case of fault
of one or more servers. Client will just do not notice the server fault. 

--- Release version 2.85 (07.05.2003) -------------------------------------

1. Fix bug in implementation of "thick" indices (OPTIMIZE_DUPLICAES flag) for
scalar types. 

--- Release version 2.86 (12.05.2003) -------------------------------------

1. Fix compilation bug in cli.cpp for MS-Visual C++ 6.0
2. Add dbDatabase::getDatabaseSize() method

--- Release version 2.87 (15.05.2003) -------------------------------------

1. HTML database browser. "start http server URL" command was added to SubSQL. 
Once HTTP server is started, you can login to the specified URL from any Web browser, 
view database tables and execute queries. 

--- Release version 2.88 (19.05.2003) -------------------------------------

1. Fix compilation problems with UNICODE and DLL support enabled


--- Release version 2.89 (03.06.2003) -------------------------------------

1. Implement XML import/export in SubSQL 
2. Fix bug with setting referenced table name in tables created by SubSQL and CLI
3. Make it possible to define trace function and add cli_set_trace_function to CLI API. 

--- Release version 2.90 (06.06.2003) -------------------------------------

1. Fix bugs in XML import/export

--- Release version 2.91 (18.06.2003) -------------------------------------

1. Fix bug with accepting connections in CLI server 
2. Fix the problem with unligned memory allocation in Borland C++ 

--- Release version 2.92 (24.06.2003) -------------------------------------

1. Provide more convenient way to access database by local CLI:
   add cli_prepare_query, cli_execute_query and cli_insert_struct functions. 
2. Project file for embedded Visual C++

--- Release version 2.93 (03.07.2003) -------------------------------------

1. Make it possible to perform XML export to stdout, XML import - from stdin
2. Bugs fixes in XML export/import

--- Release version 2.94 (04.07.2003) -------------------------------------

1. Make it possible to provide user specific implementation of dbFile interface


--- Release version 2.95 (08.07.2003) -------------------------------------

1. Add dbCryptFile which provides encryption of database pages. 

--- Release version 2.96 (16.07.2003) -------------------------------------

1. Support inverse references in SubSQL
2. Support of MFC CString type
3. Fix bug in handling default page in WWWapi browser (mutating string literal)
4. Fix bug in calculation of dbDirtyPageBitmapSize which can cause database crash when
number of objects exceeds 2**20
5. Fix bug with int8 format for MinGW

--- Release version 2.97 (29.08.2003) -------------------------------------
1. Fix inconsistency in error code definiotions in Perl, PHP, Java and C# APIs.
2. Fix bug in SubSQL table creation method.

--- Release version 2.98 (12.09.2003) -------------------------------------
1. Support unsigned integer types for table fields and query parameters.
2. Add dbDatabase::isOpen method
3. Add dbCursor::isInSelection method

--- Release version 2.99 (26.09.2003) -------------------------------------
1. New alignment rule for packing record fields. It should fix
problems with alignment 8-byte fields at systems where malloc doesn't return 
address aligned at 8-bytes boundary.
2. Refetch updated record in all openned cursors where this record is current.
3. Eliminate method descriptors memory leak

--- Release version 3.00 (30.09.2003) -------------------------------------
1. Fix problem with alignment string components introduced in version 2.99
2. Eliminate dbDatabase::cleanup method and perform all necessary cleanup in static destructors

--- Release version 3.01 (17.10.2003) -------------------------------------
1. Fix memory leak in construction of order by statement.
2. Fix compilation problem with some GCC versions. 

--- Release version 3.02 (05.11.2003) -------------------------------------
1. Fix bug in static queries deallocation

--- Release version 3.03 (20.11.2003) -------------------------------------
1. Fix minor memory leak in field descriptors with methods
2. Project file for MS-Visual C++

--- Release version 3.04 (26.11.2003) -------------------------------------
1. Make it possible to alter table format using CLI and SubSQL.
2. Add dbTimeSeriesIterator class

--- Release version 3.05 (29.11.2003) -------------------------------------
1. Some additional methods in dbTimeSeries class

--- Release version 3.06 (08.12.2003) -------------------------------------
1. Fix bugs in dbTimeSeries class
2. Add reverse iterator to dbTimeSeries class
3. Fix problems with compilation under FreeBSD 5.0
4. Fix bug in sorting by multiple fields


--- Release version 3.07 14.12.2003 -------------------------------------
1. Fix critical bug in object index relocation algorithm

--- Release version 3.08 18.12.2003 -------------------------------------
1. Fix bug with alignment in dbSmallBuffer
2. Fix bug in dbTimeSeries::insertInBlock

--- Release version 3.09 30.12.2003 -------------------------------------
1. Fix bug in "stop server" SubSQL command.
2. Fix bug in XML import
3. Autocommit in SubSQL

--- Release version 3.10 07.01.2004 -------------------------------------
1. Add cli_get_field_offset and cli_get_field_size functions
2. Fix bugs in dbTimeSeries class

--- Release version 3.11 15.01.2004 -------------------------------------
1. Fix bug in cursor prefetch mode.
2. Fix problem with incorrect estimation of available memory size at modern 
Linux kerneles.

--- Release version 3.12 23.01.2004 -------------------------------------
1. Replace DEFS compilation macro with config.h file
2. Add const qualifier to read-only cursor methods
3. Add TestIndex.java to test performance of Java CLI API

--- Release version 3.13 12.02.2004 -------------------------------------
1. Fix bug in XML import of structure components

--- Release version 3.14 27.02.2004 -------------------------------------
1. Fix mermory leak in SubSQL
2. Refetch cursor record after update
3. Show information about field indices in SubSQL

--- Release version 3.15 07.03.2004 -------------------------------------
1. Fix memory leak in SubSQL
2. Port to MAX OS X

--- Release version 3.16 18.03.2004 -------------------------------------
1. Fix problems in dbBlob class: aligned allocation of blob extents
and limit maximal blob extent size.
2. Fix memory leak in cli_bind_array function
3. Fix problem in crypted file implementation

--- Release version 3.17 26.03.2004 -------------------------------------
1. Fix memory leaks in SubSQL
2. Make it possible to specify format of printing datetime fields in SubSQL 
(SUBSQL_DATE_FORMAT environment variable)
3. Fix WinCE build problems

--- Release version 3.18 16.04.2004 -------------------------------------
1. Fix problem with cli_oid_t definition at 64-bit platforms.
2. Fix bug class with description creation in Unicode mode.
3. Recognize "#xxx" format of OIDs in SubSQL.

--- Release version 3.19 26.04.2004 -------------------------------------
1. Fix bug in query parser
2. Define SIZEOF_LONG at Digital OSF
3. Fix bug in cli_get_field_offset
4. Make dbMethodTrampoline compatible with new C++ template class field lookup rule
5. Remove const qualifier from <code>isInSelection</code> method

--- Release version 3.20 09.05.2004 -------------------------------------
1. Fix bugs in dbContainer class 
2. Efficiently execute "current=ICONST" query

--- Release version 3.21 28.05.2004 -------------------------------------
1. Fix bug with updating cursor for inverse references
2. Fix bug in R-Tree index implementation (it doesn't evaluate "and" condition)
3. Correctly compile IN expression with single list element

--- Release version 3.22 18.06.2004 -------------------------------------
1. Introduce area_t type to specify type used for rectangle coordinates multiplication (spatial index)
2. Fix critical bug in query deallocation synchronization (which can cause crash in mutithreaded environment)

--- Release version 3.23 29.06.2004 -------------------------------------
1. Fix bug in cli_update function implementation (local CLI)
2. Fix problem with Unix domain sockets under Cygwin
3. Fix build problem undex MacOS X

--- Release version 3.24 15.07.2004 -------------------------------------
1. Add DLL configuration to Visual Studio project
2. Add dbDatabase::OpenParameters structure and dbDatabase::open(OpenParameters&) method

--- Release version 3.25 06.08.2004 -------------------------------------
1. Optimized execution of IN operator 
2. Fix bug in executeBatch() method for thick B-Tree indices (used when flag OPTIMIZE_DUPLICATES is set)
3. Change dbCursor::remove() method to always move current position forward. 

--- Release version 3.26 21.08.2004 -------------------------------------
1. Fix compilation problem with GCC 3.4
2. Fix bug in sort algorithm 
3. Optimize sorting by multiple expressions

--- Release version 3.27 02.10.2004 -------------------------------------
1. Fix problem with not resetting cursor in cli_fetch method
2. Second attempt to fix bug in executeBatch() method for thick B-Tree indices
3. Sparse file optimization at Windows (suggested by "Audun Arnesen Nordal" <Audun.Nordal@fast.no>)
4. Fix build problem at QNX
5. Fix memory leak in order by complex expression

--- Release version 3.28 29.10.2004 -------------------------------------
1. Fix bug in sort by complex expression
2. Fix project files for VC 6.0
3. Fix bug in limit(from,length) clause implementation 
4. Fix bug in backup with compactification (incorrect setting of bitmap end)


--- Release version 3.29 14.11.2004 -------------------------------------
1. Optimize LIKE operator 
2. Fix bug in XML array import
3. Do not perform flush if direct IO is used (when no_buffering flag is set and at OSes where it is supported)


--- Release version 3.30 28.11.2004 -------------------------------------
1. Fix problem with local CLI at Unix (application is hanged in cli_close if 
there are opened statements because of repeated lock of non-reentrant pthread mutex).
2. Fix bug in implementation of indexed inverse reference (inverse reference update doesn't 
update index)
3. Fix bug in parsing of IN operator introduced in one of previous versions
4. Support more than 2^28 objects in the database
5. Support O_DIRECT at Linux (when it is supported by kernel)

--- Release version 3.30 28.11.2004 -------------------------------------
1. Fix bugs in detection of direct IO support at Linux
2. Fix bug in updating array components in local CLI.

--- Release version 3.31 19.12.2004 -------------------------------------
1. Fix bug in local Windows sockets implmentation
2. Change all "char*" in API methods with "char const*"

--- Release version 3.32 02.03.2005 -------------------------------------
1. Add support of cli_rectangle type in local CLI
2. Fix bug in table creation using CLI

--- Release version 3.33 10.03.2005 -------------------------------------
1. Add loadMetaTable method to simplify creation of own CLI servers.
2. Support rectangle constans (for example (1,2,3,4))
3. Fix more bugs with handling rectangles in CLI

--- Release version 3.34 18.03.2005 -------------------------------------
1. Make it possible to specify list of columns in SubSQL select statement
2. Fix bug preventing optimizer use index for boolean fields
3. Fix bug in initializing of autoincrement field in SubSQL

--- Release version 3.35 24.03.2005 -------------------------------------
1. Fix bug in compilation of user defined functions with more than one parameter
2. Handle rectangle constant in isIndexApplicable function
3. Fix memory leak in deallocation of query elements in CLI at application exit
4. Fix error with handling parameters of rectangle types in CLI
5. Correctly handle combination of "LIMIT" and "START FROM...FOLLOW BY" clauses

--- Release version 3.36 11.04.2005 -------------------------------------
1. Make it possible to use batch insert for records with rectangle key
2. Disable sparse file optimization  for read only files
3. Fix bug in handling inferese references for cli_srray_of_oid in local CLI.
4. Add cli_create_encrypted function to local CLI (to use it SUPPORT_DATA_ENCRYPTION should be defined)

--- Release version 3.37 18.04.2005 -------------------------------------
1. Fix bug in optimization of "like '%xyz%'" operator
2. Add dbDatabase::backup(dbOsFile* file, bool compactify) method
to allow user defined implementations of backup media.

--- Release version 3.38 25.05.2005 -------------------------------------
1. Fix bug in dbTableDescriptor::equal in Unicode mode.
2. Fix bug in scheme evalaution of classes having BLOB components

--- Release version 3.39 06.06.2005 -------------------------------------
1. Add ALIGN_HEADER option. When build with this option (defined in config.h), GigaBASE will not be able to work
with databases created by older versions. But it will be possible to move database file
to the systems with similar byte order and word size, but with different alignment rules
(for example Windows/VC++ and Linux/GCC)
2. Fix bug in XML import of raw binary field
3. Fix bug with autodetecting pool size when computer has more than 2Gb of RAM.
 
--- Release version 3.40 29.06.2005 -------------------------------------
1. Fix bug eith uninitialized field in dbSynthesizedAttribute
which can cause crashes during executions of queries containing functions calls.
2. Test GigaBASE at the following platforms: aix 32 bit 4.3, aix 64 bit 4.3  ,aix 5 64 bit, 
solaris 5.6 32 bit , solaris 5.8 64 bit, osf1 4, hp11 , hp11 64 bit, hp11.23 64 bit, linux, 
linux on itanium, windows ,windows on itanium. Fix building problems at some platforms.
3. Fix bug with table defintion and altering using CLI

--- Release version 3.41 10.07.2005 -------------------------------------
1. Support work with compressed database (in read-only mode)
2. Add dbFile::no_sync attribute to be able to disable flushing file buffers
to the disk. It will greatly increase perfromance but may cause database corruption
in case of fault
3. Fix bug in batch insert mechanism in case of mutlithreaded access.

--- Release version 3.42 20.08.2005 -------------------------------------
1. Make it possible to specify dbArray<int4> and dbArray<int8> parameters
   and use index search for query "x in",arrParam
2. Add dbDatabase::prepareQuery method
3. Fix bug in parallel execution of sequential search at multiprocessor systems.
4. Fix problem with using sizeof() operator for arrays of char_t 

--- Release version 3.43 30.09.2005 -------------------------------------
1. Add Java native interface (jnicli)
2. Fix bug in SubSQL "alter table" statement
3. Fix problem with USE_LOCALE_SETTINGS support.
ATTENTION: content of indices created by old version of GigaBASE with USE_LOCALE_SETTINGS
enabled and using non-standard locale will be different with format used by this version.
So you will have to recreate indices in this case.


--- Release version 3.44 16.01.2006 -------------------------------------
1. Handle cli_optimize_duplicates and cli_case_insensitive flags in cli_alter_index function
2. Make it possible to execute query incrementally (incremental cursor support)
3. Fix compilation problems with GCC 4.0
4. Fix problem with backup of encrypted files
5. Fix bug in Java jnicli interface (declaring table with reference fields).
6. Fix compiler warings when building GigaBASE with dbDatabaseOidBits > 32
7. Fix bug with non-initialized inverse reference field pointer in table descriptor created using CLI
8. Add dbTraceEnable variable which allows to toggle tracing at runtime.
9. Support classnames with package names in Java JNI CLI constraint parser
10. Correctly handle autoincremented fields in local CLI API.
11. Fix problem with handling compound table names produced from Java class in SubSQL insert and delete statements
12. Fix array component access bug in JNICLI 
13. Support inverse reference field declaration in JNICLI table constraints
14. Add project files for building GigaBASE libraru and subsql utility using eMbedded Visual C++ 4.0
15. Fix bug with throwing exceptions in JNICLI

--- Release version 3.45 08.02.2006 -------------------------------------
1. Fix bug in R-Tree introduced in 3.44 version
2. Fix bug in cli_rectangle column type handling in CLI
3. Add "profile" command to SubSQL which show number of instances and total size of records for each table
4. Add multiclient access mode (based on OS file locks)
5. Fix bug in dbAnyCursor::setIncrementalHintMethod
6. Make it possible to specify incremental cursor mode through CLI API
7. Fix problem with using current record OID in ORDER BY expression
8. Check if range sepcifed in LIMIT clause belongs to the selection
9. Fix bug in R-Tree implementation: shadow pages were not created so transaction mechanism didn't work properly

--- Release version 3.46 24.02.2006 -------------------------------------
1. Fix compilation problems with WinCE
2. Replace all overlapped memcpys in btree with memmove
3. Fix bug with LIMIT clause introduced in 3.45 version
4. Fix bug in selectByKey method (some fields of cursor are not initialized)
5. Add MATCH operator which uses GNU regex library (to use it you should define USE_REGEX in config.h)

--- Release version 3.47 02.04.2006 -------------------------------------
1. Fix issues with support of Unicode and MFC strings
2. Fix memory leaks in CLI library.

--- Release version 3.48 15.04.2006 -------------------------------------
1. Fix project files for VC 6.0
2. Fix problem with use of incremental cursor mode in CLI
3. Add cli_lock function to local CLI interface
4. Fix bug in mutliclient mode support in local CLI interface
5. Fix bug with unlinking query in database in local CLI statement free function
6. Fix bug in handling rectangle type in remote CLI API

--- Release version 3.49 08.06.2006 -------------------------------------
1. Fix bug in read-only multiclient access mode
2. Fix bug in CLI connection pool
3. Fix bug in cli_get_next function (fetching array of strings)
4. Make it possible to export particular tables in XML format (extension made by Leo Sluis <leo@charm.nl>)
5. Fix bug in backup scheduler
6. Add runtime check of database versions compatibility

--- Release version 3.50 23.07.2006 -------------------------------------
1. Fix bug in dbDatabase::getVersion()
2. Add cli_remove_current function
3. Fix Unicode specific issues.
4. Fix bug in Java JNI API
5. Fix bug in XML import
6. Save field flags in database class descriptor
7. Fix bug in parallel execution of sequential search

--- Release version 3.51 12.08.2006 -------------------------------------
1. Fix incorrect conversion of int4 to time_t in datetime.h
2. Retry to allocate page pool with smaller size in case of failure
3. Fix problem with gethostbyname in unisock
4. Fix bug in cli_remove_current record
5. Fix bug in database backup (it didn't save mode)

--- Release version 3.52 06.10.2006 -------------------------------------
1. Fix bug in B-Tree iterator initialization (for incremental cursors)
2. Fix compilation problems in reference.h with Visual C++ 8.0 
3. Fix problem with lack of gethostbyname_r at MacOS-X
4. Fix bug with referenced field type checking for unassigned tables
5. Add getMemoryStatistic() function and "memory" command in SubSQl to show memory usage
6. Fix problem with keyword/identifier conflict resolution
7. Deallocate cursor bitmap in cli_free function
8. Fix problem with cursors reset in case of delayed commit

--- Release version 3.53 23.10.2006 -------------------------------------
1. Make it possible to explicitly set transaction context
2. Fix build problem with gethostname_r at SunOS
3. Correctly update 1-N relation when changes are propagated through a  N,1 insert.

--- Release version 3.54 10.12.2006 -------------------------------------
1. Make it possible to specify locale using SUBSQL_LOCALE environment variable for SubSQL
2. Choose non-null message in exception constructor when message text is not specified explicitly
3. Make it possible to explicitely disable check for duplicates in query result
4. Replace local arrays at stack in BTree::compactify method with preallocated buffer in dbDatabase to avoid stack overflow in some environments
5. Add cli_execute_query_ex functions accepting array with parameters
6. Fix CLI bug in building class descriptor containing arrays of structures
7. Add cli_describe_layout function to local CLI extending functionality of cli_describe by providing information about field offset and size

--- Release version 3.55 12.01.2007 -------------------------------------
1. Improved support of MFC CString type done by Gilad Novik <gilad_no@yahoo.com>
2. Fix problem with class fields alignment in JniCLI
3. Add freeSpaceReuseThreshold parameter to OpenParameters structure allowing to 
control frequency of space reallocation (database size/reference locality ratio)

--- Release version 3.56 03.03.2007 -------------------------------------
1. Add desctructor to dbUserFunction class (needed for DLLs)
2. Fix bug with cursor bitmap deallocation
3. Add cli_close_cursor function
4. Save and store field flags in CLI
5. Support Symbian OS

--- Release version 3.57 05.04.2007 -------------------------------------
1. Fix problem with wsprintf
2. Fix bug in cli_cerate_table in UNICODE mode
3. Fix bug with updating cli_autoincrement field
4. Fix bug with non-initialized variable in query parser which can cause errors with compiling expressions started with bracket
5. Fix bug in desctructor of queries with complex expressions in order by claused
6. Add methods for convenient concatenation expressions in query (And/Or)

--- Release version 3.58 29.04.2007 -------------------------------------
1. Fix bug in SubQSL delete statement with empty condition
2. Fix bug in reformating of empty table
3. Fix bug in local CLI statement allocator

--- Release version 3.59 23.09.2007 -------------------------------------
1. Fix bug in SubSQL autocommit
2. Change block format in time series class
3. Add dbDatabase::isValidOid method
4. Support index search for "is null" operator
5. Preserve values of autoincremented fields during XML import
6. Implement detached cursors (cursors which commit transaction immediately after execution of the query,
and then temporarily start new transaction for fetching each element.
Such cursor should be used in conjunction with DO_NOT_REUSE_OID_WITHIN_SESSION to detect removed objects.
Please notice that this cursor is static - it only executed from the selection removed objects,
but doesn't try to add the selection new records which match search criteria or remove 
record which do not match this criteria any more.
7. Remove dbCursor::nextAvailable and dbCursor::prevAvailable methods, now next() and prev() methods
provides the same behavior

--- Release version 3.60 22.10.2007 -------------------------------------
1. Replace ANSI C time functions with Windows equivalents for WinCE/WinMobile
2. Fix the bug with refreshing cursor when record is updated because of the operation with L2 list of records
3. Fix bug with uninitialized parser variable while compiling expressions in SubSQL update statement.
4. Use namespace prefix in KEY, TYPE_DESCRIPTOR, REGISTER... macro definitions to make it possible to use 
   them without "use namespace" statement.

--- Release version 3.61 08.11.2007 -------------------------------------
1. Fix build problems with Visual C++ 6.0

--- Release version 3.62 14.02.2008 -------------------------------------
1. Support unique contraint.
2. Optimized version of dbDatabase::findTableByName using hash table.
3. PutTie optimizations: update cursors only when it is necessary
4. Move XML import/export from SubSQL to dbDatabase class, 
   allowing embedded application to use these methods generating/parsing XML.

--- Release version 3.63 02.03.2008 -------------------------------------
1. Add macros for registered class with namespace prefix
2. Fix bug in dbCursor::removeAllSelected 

--- Release version 3.64 18.03.2008 -------------------------------------
1. Always define dbDescribeField and query operators for long type
2. Add write_through and delete_on_close flags to dbFile::OpenAttributes
3. Perform merge of large selections using bitmap
4. Ignore database schema reference integrity check errors in SubSQL
5. Protect chain of class descriptors by critical section to avoid race condition in case of concurrent DLL load

--- Release version 3.65 08.05.2008 -------------------------------------
1. Fix compilation problems with overloaded operators for long types introduced in 3.64 version
2. Fix problem with importing std::strings 

--- Release version 3.66 26.06.2008 -------------------------------------
1. Add rename field command to SubSQL
2. Fix bug with forward inverse references in SubSQL
3. Replace CPUID with MemoryBarries in local windows sockets implementation

--- Release version 3.67 08.10.2008 -------------------------------------
1. Fix MinGW compatibility issues
2. Fix synchronization bug in multiclient mode

--- Release version 3.68 19.01.2009 -------------------------------------
1. Make it possible to preserve existed indices during schema evoluation even
if correspondent fields are not marked as indexable in the class descriptor
2. Support of default field value (done by Sebastian Fischer)
3. Fix problem with estimating application class size (in some cases warning
that not all fields are described was produced incorrectly)

--- Release version 3.69 20.03.2009 -------------------------------------
1. Add local CSharp CLI interface
2. Add cli_backup and cli_schedule_backup functions to CLI

--- Release version 3.70 07.07.2009 -------------------------------------
1. Fix bug in CSharp local and support byte[] field type in it.
2. Add JniTestRelations example and fix some bugs in jnicli
3. Support of update of fields of array and rectangle type
4. Optimization for queries using more than one dereferences (a.b.c='some value')
5. Add query profiler

--- Release version 3.71 19.07.2009 -------------------------------------
1. Optimization of sorting in case of indexed join
2. Optimized insertion in inverse reference field

--- Release version 3.72 14.08.2009 -------------------------------------
1. Remote C++ interface to GigaBASE (dbSession class)
2. Support batch insert mode in local CLI API
3. Add cli_get_database_size for local CLI
4. Win64 fixes

--- Release version 3.73 09.09.2009 -------------------------------------
1. UNICODE fixes
2. Configuration file CMakeLists.txt for building GigaBASE using cmake provided by Victor Slonim <vslonim@comcast.net>
3. Fixes in autoconfig utility

--- Release version 3.74 01.11.2009 -------------------------------------
1. Support of Carbide C++ IDE for Symbian OS

--- Release version 3.75 21.12.2009 -------------------------------------
1. Make it possible to pass in query pointers to rectangle and user defined types
2. Catch GigaBASE C++ exceptions in localcli

--- Release version 3.76 21.03.2010 -------------------------------------
1. Fix DLL building issues in VS project files
2. Replace int8 with db_int8
3. Fix problem with dbHeader alignment
4. Add dbDatabase::profile method

--- Release version 3.77 06.06.2010 -------------------------------------
1. Change underflow criteria in B-Tree implementation
2. Fix bugs in error reporting

--- Release version 3.78 24.07.2010 -------------------------------------
1. Improve processing of AND and OR expressions in optimizer
2. Fix bug in alter schema CLI function
3. Change criteria of merge using bitmap 
4. Fix problem with raw keys comparison in B-Tree
5. Incremental backup

--- Release version 3.79 23.08.2010 -------------------------------------
1. Add flags to backup method to support combinations of different backup modes
2. Fix adding/dropping index in multiclient database
3. Add support of transaction logging

--- Release version 3.80 15.12.2010 -------------------------------------
1. Fix bug with preserving indices
2. Replace sprintf with strcat in ClassDescriptor constructor to avoid problems in SymbianOS
3. Fix problem with std_tmp_allocator in xml.cpp

--- Release version 3.81 29.03.2011 -------------------------------------
1. Change return type of select method to be able to selcet more than 2Gb records
2. Patch of SubSQL HTML dump done by Christen Volker improving visualisation of large arrays
3. Visual Studio 10 compatibilty fixes

--- Release version 3.82 06.05.2011 -------------------------------------
1. Fix bug with scheduled incremental backup
2. Fix namespace support
