| Date | Version | Comment |
|---|---|---|
| |
||
| 20.05.2012 | 2.13.1 | Small fix for desc procedure command. Parameter type and size have not been indicated correctly. |
| 12.05.2012 | 2.13.0 |
The new version fixes a bug in CegoIndexCursor. The buffer pool fix for the data pointer (dataLock ) was not hold which might lead to invalid memory pointers from the calling method. |
| 02.05.2012 | 2.13.0 | Work on new version. This version supports a native client protocol which is expected to be much faster. ( XML generation and parsing seems to be pretty much overhead ) For comparison reasons, both protocols are supported and can be selected at daemon runtime. |
| 25.04.2012 | 2.12.8 |
Bug fix for system table selection ( select * from $table ... $index .. ) Column id was not set in CegoSystemObject::getObject, which lead to null values with optimized decoding algorithm Forced compilation of stored procedures, if "desc procedure" is called on uncompiled procedure |
| 09.04.2012 | 2.12.7 |
Fixes for outer join queries in combination with multidimensional index values ( in some situations, this lead to wrong results .. see check035.sql in the sample db directory) Fix in CegoTableManager::keyReferenceExists, the table cursor setup return value was not handled correctly. |
| 07.04.2012 | 2.12.6 |
Fix for insert-by-select queries in stored procedures. The procedure block pointer was not set up,
so procedure variables have no been resolved. ( Relevant for queries like "insert into t1 select :a, 'XXX' from t2" ) Fix in CegoProcedure for parameter check ( procedures with no arguments and return value ) Added further checks to the chkdb sample db |
| 05.04.2012 | 2.12.5 | Another fix for FLA-Cache has been added ( cache clearing completion for case conditions, functions and aggregations ) |
| 04.04.2012 | 2.12.5 | Fix in CegoLogRecord to avoid compiler warningh with clang++ Fix in CegoCLient for correct fixed type in dump file |
| 04.04.2012 | 2.12.4 | Added a bug fix for appropriate clearing of attribute cache |
| 31.03.2012 | 2.12.3 | Small fvl decoding bug fix in CegoQueryHelper::decodeFVL occured with performance enhancements and null value fields |
| 30.03.2012 | 2.12.2 |
Made some performance fixes - elemination of debug messages - improved version of CegoQueryHelper::decodeFVL ( linear approach ) - FLA-Cache in CegoFactor |
| 29.02.2012 | 2.12.2 | Added distinct option for aggregation ( select count( distinct a) from t1 ) |
| 22.02.2012 | 2.12.2 |
Fix in CegoAttrDesc::evalReferences, the tablename was not compared with the alias value
The code has been changed from
if ( _tableName == (Chain)pCO->getTabName() )
to
if ( _tableName == (Chain)pCO->getTabName() || _tableName == (Chain)pCO->getTabAlias() )
|
| 19.02.2012 | 2.12.2 | Fix in CegoAdminThread::medVerifyTableset and CegoAdminThread::correctTableSet. The tableset user was not set up correctly, which lead to an authorization problem |
| 16.01.2012 | 2.12.1 |
Fixed some problems occured with AIX 6.x In CegoBufferPool::initPool, invalid memory was written LIBOBJECTS fix in Makefile ( removed CegoJoinObject, not needed, but referenced class CegoPredDesc ) |
| 15.01.2012 | 2.12.0 | Changed to lfc-1.2.0 with IP v6 support.In the database XML file, now a static host binding supported to specify the server host, which should be used ( HOSTNAME attribute ) |
| 24.12.2011 | 2.11.8 |
Small cosmetic grammar change for export and import admin command ( export xml instead of xml export ) and checkpoint setting ( set checkpoint instead of checkpoint ) Improved online help for cgadm Exception handling fixed in case of unknown tablesets ( cgclt in interactive mode ) |
| 10.12.2011 | 2.11.8 | Small fix in CegoFunction::DATE2STR. In case of null values, the result was undefined. Now null string is returned. |
| 11.11.2011 | 2.11.7 | Added the chkload load simulation script in the sample/chkdb directory. The cgblow program was improved and configuration is more flexible now. Online help improvements for cgadm. Parser fix for cgadm user trace enabling command. |
| 08.11.2011 | 2.11.6 | Some code fixes to avoid warnings for clang compiler ( CegoXMLSpace.cc and CegoPredDesc.cc ) In CegoAction constructor, the variable _procContext now is initialized to false. This was detected with FreeBSD 9.0 tests, the boolean vars seem to be initialized as true. Another bug has been fixed in CegoDbThread::checkReloadRequest(). Before removing the ts entry from the list, the assignment int ts = *pTS; must be executed. |
| 06.11.2011 | 2.11.5 | Repeated crash recovery test ( chkrecover in sample/chkdb ) is running stable now for insert / delete TA operations with three clients. Actually, penetration tests on FreeBSD are going and and if successful, the version is going to be released... |
| 05.11.2011 | 2.11.5 | Improved crash recovery ist tested now in several situations. Online admin help has been improved |
| 22.10.2011 | 2.11.5 | Finishes crash recovery for the renamed rb segements. A simple trick is used : For each committed ( or rollbacked ) entry in the rbseg table, the tuple tid is set to the current tid. So in case of a crash recovery and a repeated commit or rollback, these entries are ignored |
| 18.10.2011 | 2.11.5 | Fix for nextcount and setcount function in CegoFunction::asChain. The function arguments have not been generated correctly |
| 15.10.2011 | 2.11.4 |
Cosmetic changes in CegoClient regarding error messages Improved transaction exception handling : Before commit or rollback, the corresponding segment is renamed to rbcommit or rbrollback. This enables an appropriate recovery of ongoing commit and rollback operations after a crash. ( crash recovery for the renamned segemnts is still todo ) |
| 12.10.2011 | 2.11.4 | Performance improvement regarding join optimization. The method CegoQueryHelper::evalAttrCond was madified in a way, that a more precise decision could be done for using any appropriate index. ( instead of boolean, now the method returns a enumeration INAPP, PARTIAL or COMPLETE ) The improves select performance in some special cases dramatically. |
| 09.10.2011 | 2.11.3 |
Dump mode fix for export strings containing newlines.Newloines have not been escaped. Newline handling fix for quote escape mode ( newline and other escaep characters have been not translated during input scan ) |
| 08.10.2011 | 2.11.3 |
A fix has been added for new transaction handling. If no modifying operations have taken place,
the commit/rollaback operations resulted with an error. The method CegoSelect::consolidateConjunctionList has been improved to handle or-conditions ( conditions should be not consolidated, if they contain or-conditions, otherwise index could not be used ) ( e.g. select * from t1 where a = 1 and ( b = 'a' or b = 'b') ) |
| 22.09.2011 | 2.11.2 | Added record timeout tuning parameter Adjusted default semaphore definitons in cgmkdb ( 2141 for page and rec sema, 1013 for file and pool sema ). This better avoids deadlocks in case of concurrent transactions. |
| 19.09.2011 | 2.11.2 |
Performance improvements in CegoTransactionManager. For each transaction, now a dedicated transaction file is created instead
of storing the undo information into a single file. In case of concurrent transactions, this should improve performance. Furthermore, no more reorganisation of the RBSEG area is needed. |
| 12.09.2011 | 2.11.1 |
Fixes for new role concept( e.g export and import of tablesets did not work ) Changed counter ids back to identifiers Added some datatype cast for decimal values |
| 10.09.2011 | 2.11.0 | New role and permssion concept added |
| 21.08.2011 | 2.10.14 | Thanks to Keve Nagy, the cgmkdb script was improved and stabilized very much. |
| 07.08.2011 | 2.10.13 |
Change in CegoDatabaseManager::useObject to avoid deadlock for queries like
update t2 set a = ( select a from t2 where b = 'ZZZ' ) where a = 1000;
useObject now checks for the calling thread and handles subsequent useObject-calls of the same thread.
|
| 05.08.2011 | 2.10.13 |
Added structore option for client dump mode |
| 02.08.2011 | 2.10.13 |
Improvements for cgmkdb script Added query optimization for like conditions The following execution plan CGCLT > plan select shortdesc from sysmt_mtview where shortdesc like 'Oracle Patch'; +----------------------------------------------------------------------+ | PLAN | | DESCRIPTION | +----------------------------------------------------------------------+ | Execution plan | | --------------- | | Joining view sysmt_mtview (sysmt_mtview) | | View plan for sysmt_mtview | | --------------------------- | | Joining table sysmt_project (prj) with Full table scan | | Joining table sysmt_system (sys) with index trace on pid = prj.pid | | Joining table sysmt_mt (mt) with index trace on sysid = sys.sysid | +----------------------------------------------------------------------+ ok ( 0.012 s )seems to be not optimal. It is rather useful to use the like condition for the table cursor inside the view. |
| 24.07.2011 | 2.10.12 |
Fix for aggregation queries Complex queries like select sum(a) + sum(b) + sum(c), sum(a) - sum(b), avg(a), avg(b) from t2; did not result correctly. Changed client profile format more compact ( pid:server:port:ts:prompt:user:pwd ) |
| 20.07.2011 | 2.10.11 |
Added parameter length check for procedure in parameter Added basefunc script for advanced date functions ( second, minute, hour, day, month, year ) Fix in CegoFunction::evalFieldValue ( date2str(sysdate) returned wrong date ) |
| 20.07.2011 | 2.10.11 | Fix in CegoQueryHelper for join optimization on between clause |
| 19.07.2011 | 2.10.10 |
Fix im Makefile for script install Added configuration parameters for NUMLOCKTRIES, PAGELOCKTIMEOUT, FILELOCKTIMEOUT and POOLLOCKTIMEOUT The parameters can be setup in the database xml configuration file Fixes for setcount function ( CegoFunction::toElement, fromElement, toChain ) |
| 18.07.2011 | 2.10.9 | Expression order for between expressions was not correct ( for views ) Added README for FreeBSD rc setup Tools are now also installed in the cego bin dir ( cgmkdb, cgbackup and cgrecover ) |
| 09.07.2011 | 2.10.8 | Fix for unionselect ( empty jfl in CegoSelect::nextTuple before calling union select ) |
| 08.07.2011 | 2.10.8 | Added cast from float to fixed, added cast from string to fixed |
| 07.07.2011 | 2.10.7 |
On Solaris x86, the CegoDbThread::loadObjects might lead to a core dump.
This is, because a dedicated CegoAction instance was allocated for the method.
Since this method is called by the forcereload option, many threads simultaniously
are allocating this large instance, which might fail.
Since there is no need to use a dedicated instance, the member variable _pPA is used for this.
( this effect was just observed on Solaris x86 platform ) The CegoDbThread::loadObject method was removed completely. This method is critical and due to dynamic object reloading, there is no more need of this method. |
| 03.07.2011 | 2.10.6 | The change for the counter handling functions ( nextcount and setcount ) was not done correctly. This version fixes the counter handling |
| 03.07.2011 | 2.10.5 | Small fixes in CegoDbThread. The thread synchronisation of the load queue for dynamic object reloading has been fixed ( mutex are used now from the db thread pool ) The forceload option for tableset startup is also supported now for admin startup command For batch processing, the forced object load at startup has been removed ( for performance reasons ) and is done dynamically now. |
| 02.07.2011 | 2.10.5 |
Introduced the admin command "correct tableset". After a system crash, some index tables could be invalidated
because they are written inconsistently ( for performance reasons ).
The correct tableset command rebuild all invalidated index entries.
Actually, this command has to be executed by the db admin manually. Introduced the tableset initfile. This is a batchfile containing standard db commands which is executed at tableset startup time. This file can contain initialization or check routines ( e.g. counter trigger to adjust counters after db crash ) Added setcount function to set up counter values in a stored procedure. |
| 30.06.2011 | 2.10.5 | Stabilization fixes for thread startup. In case of large thread configurations, the thread lock initialization error "Resource busy" was not catched at thread startup. It seems this might occur, if many thread are calling the pthread_rwlock_init system call at the same time. So the thread lock init method was moved to the constructor, which is called sequentially for all db threads. |
| 28.06.2011 | 2.10.4 | More fixes for new join optimization in CegoDistCursor, CegoAttrCond and CegoSelect Multidimensional indexes still have not been used for all required cases. View condition in CegoDistCursor was not reset, which might lead to wrong view results. |
| 27.06.2011 | 2.10.4 |
Small change in CegoAttrCond::getFilterCond. The attribute condition is provided in appropriate order for the
given schema. This is necessary for multidimensional indexes to ensure a valid comparison. Improved thread synchronisation for db thread pool ( syncToReady method introduced ). Some logic has been moved to syncToReady since large db thread pool configurations ( > 200 ) lead to a crash at system startup phase |
| 26.06.2011 | 2.10.3 |
Fix in CegoTableCursor::setup. The attribute condition has to filtered before creating an index cursor.
Index cursor requires attr cond with complete match of all attribute fields, otherwise wrong results are returned Introduction of attr cond strength to use the best available index ( e.g. select a from t1 where a = 1 and b < 100 uses index on a, because strength for equal is stronger than less than ) |
| 25.06.2011 | 2.10.2 |
Small fix in CegoAttrCond::setup to match attribute comparisons of type VAL Further fixes for attribute resolution, change of attribute condition handling in CegoDistCursor Cosmetic changes for stored procedures and views. For the text, more line breaks are used now. |
| 24.06.2011 | 2.10.1 | All tests for 2.10.1 finished. The iworxs schema was a good test case to proof all the new features. |
| 23.06.2011 | 2.10.1 | Fix in CegoDbThread::checkLoadRequest. In some cases the server has crashed, since there was a lack of thread synchroninsation for the view and procedure loadList which comes with 2.10.0. Fix in CegoDatabaseManager::useObject, the EXCLUSIVE_WRITE case was not handled for SHARED requests. In CegoSelect, the attribute management was completely redesigned. Instead of instance variables of the CegoAttrDesc class, references are now managed. This gives a better control for valid and invalid attribute references. Join optimization for join objects has been expanded. Now indexes are better used inside nestes join objects. This feature is still under investigation. The execution plan has been expanded to get information for join objects including the used indexes. |
| 21.06.2011 | 2.10.0 |
Elemination of many compiler warnings for the clang C++ compiler. This also brought up several bug fixes in the code. Thanks a lot to the clang team for these hints :) |
| 19.06.2011 | 2.10.0 | New feature added for multi dimensional index access and improved view condition setting in the CegoSelect class. These features are still under investigation. |
| 16.06.2011 | 2.9.6 |
Fix in CegoGroupSpace::dropGroupSpace, _groupSchema was not set to empty, which micht lead to list position exceeded errors Further fixes in CegoDistManager, dynamic view reload strategy has been redesigned and stabalized ( mt problems had been detected ) This version has been extensively tested with different concurrent create, drop and select operations on views and seems to be pretty stable. |
| 13.06.2011 | 2.9.5 | Elimination of some memory leaks for procedures. The leaks have been detected during heavy creation and drop of procedures. ( e.g. The destructor of class CegoProcStmt now is virtual, otherwise the destructor of the specialized classes are not called, desctructor of class CegoProcPred was not implemented correctly ) |
| 13.06.2011 | 2.9.4 | Some fixes in CegoLockHandler ( introduction of count locks ), lock statistics disabling via command line switch ( nolockstat ) In CegoSelect, invalid tables are checked now ( this problem arises with view defintions including undefined sub objects ) |
| 12.06.2011 | 2.9.3 | Small fixes in CegoFieldValue::toChain regarding escape charater handling ( quotes and backslashes ) Changed view and procedure loading strategy. Views now are loadad on demand and may contain sub objects which are still unknown. Views are now loaded on demand, whih increases database startup time significantly. |
| 04.06.2011 | 2.9.2 | Fix in CegoTableManager::updateDataTable. Result of QueryHelper::getAttributeCondList was not checked on acl size = 1 Small grammar extension to support table alias for update and delete operations |
| 03.06.2011 | 2.9.2 | Fix for CegoSelect::nextJoinTuple. The jfl array is just set empty before calling evalSelection. Otherwise in case of no row result, the field is set to empty which may casue problems for some nested inner and outer joins. |
| 02.06.2011 | 2.9.2 |
Another fix for inner joins. Evaluation was still not correct for all nested sub joins. Fixed alias problem in views ( create view v1 as select a from .. setus up alias a from attribute a ) Fix in CegoPredDesc::toChain(const Chain& indent), string have not been generated correctly for ISLIKE and ISNOTLIKE |
| 31.05.2011 | 2.9.1 |
Fix for inner join statements. An additional where condition was no handled correctly. ( e.g. select * from t1 inner join t2 on t1.a = t2.c where t2.d = 'xxx'; ) Enoding enhancement for nested aggregation queries ( e.g. update t1 set a = ( select max(a) from t2 ); ) Fix in CegoXPorter::writeTableObject, the check for blob tables is just needed for plain exports Fix in CegoSelect for ordering handling. Native order list introducd to generate valid select statements. Fix in CegoTableManager::dropTable, getObjectListByTable now called with ignoreInvalid = false to reach invalid index to drop. |
| 29.05.2011 | 2.9.0 | Fix in CegoDistManager::dropLocalObject. For table drops, the corresponding indexes, keys and checks have not been removed from the object cache. This might lead to problems, if tables are removed and recreated. |
| 28.05.2011 | 2.9.0 | Added client dump mode to dump a tableset in SQL syntax. This extension results in some constant changes so tableset xml exports of earlier versions can not be used any more ( ! ). Also there are some incompatibilities to the JDBC-Driver. The CegoJDBC version 1.3.2 supports cego 2.9.0. |
| 27.05.2011 | 2.8.5 | Another fix for CegoSelect added. The reset function now takes a doRelease parameter to specify, if the open cursors should be released or not. This is required to use the reset method for any nested queries ( e.g. CegoFactor::evalFieldValue ), otherwise locking problem can happen. Fixed a loop bug in CegoQueryHelper::evalSelection ( missing i++ ). Queries like select t1.* from t1 have lost in a endless loop |
| 25.05.2011 | 2.8.5 | Fix in CegoFactor::evalFieldValue. There was missing a prepare call before evaluating the query. This might lead to evaluation problems in stored procedures. Fixed another memory leak ( CegoSelect::cleanUp() call _parentAttrRefList.Empty() ) |
| 24.05.2011 | 2.8.4 | Fix of some memory leaks which occur for some nested queries in views In class CegoFactor::evalFieldValue(), for pSelect handle, the cleanUp method was called. Is is rather useful to call reset in this situation to achieve faster query execution. Furthermore, some fixes have been done for the CegoSelect::reset method, to also reset aggDone flag and orderspace. |
| 26.04.2011 | 2.8.4 | Output format modifications for pool info and tableset info in admin monitor |
| 19.04.2011 | 2.8.4 | Added return value in CegoCheckpoint::CeckpointEntry::operator = |
| 18.04.2011 | 2.8.3 | Fix in CegoFunction::date2int and CegoFieldValue::castTo and others added. The current datetime evaluation returned zero ( e.g. select date2int(sysdate) returned 0 ) which is not appropriate for comparisons ( e.g. select a from t where a < sysdate ) since the sysdate evaluation returned 0. Now the sysdate evaluation returned the current number of seconds according to the Unix timestamp. This is now useful for datetime comparisons with sysdate. |
| 03.04.2011 | 2.8.2 |
Added checkpoint management for periodic tableset checkpoints, if checkpoint interval has been reached.
Tableset checkpoints can be managed via cgadm. Improvements made for real time monitor. Data is now locally cached and polling requests are limited to avoid heavy admin requests in case of windows refreshing effects. |
| 02.04.2011 | 2.8.1 |
Added fix in CegoIndexManager::deleteIndexTable. In case IV, the nie IndexEntry was modified but the buffer was not released with a dirty mark.
if (pageNE.isFixed())
_pTM->releaseDataPtrUnlocked(pageNE, true); // was false
A problem occurs very rare, especially in case of very small pool configurations and if buffer writes are forced
After crash recovery, touched indexes are automatically set to invalid because they might be inconsitent. These indexes must be recreated. |
| 01.04.2011 | 2.8.1 | Added fix for average aggreagtion function regarding null values |
| 28.03.2011 | 2.8.0 | Added more monitor options and improved information |
| 26.03.2011 | 2.7.20 | Added curses based admin monitor option in the cgadm admin console ( option --mon ) |
| 26.03.2011 | 2.7.20 |
Small fix in CegoDbThread. If a tableset is stopped, for each db thread the transaction manager
is triggered to release its fixed rbseg pages. If this is not done, buffer fix errors might occur
if the tableset is started up again.
void CegoDbThread::unloadObjects(int tabSetId)
{
_pTabMng->getTransactionManager()->release(tabSetId); // added
_pTabMng->removeAllComp(tabSetId);
}
|
| 25.03.2011 | 2.7.19 | Added parameter count check for procedures. The class CegoProcVar has been expanded to store information for variable type and length instead of getting this information from the contained FieldValue member var. This seems to be more clean and avoid bad effects, if null value information should be stored in the param values. Before this expansion, it was possible to crash the database by calling procedure with wrong parameter count. Now this can not happen anymore also because parameter cound is checked now. |
| 22.03.2011 | 2.7.19 | Added admin command "list pool" to get detailed pool information |
| 22.03.2011 | 2.7.18 | Fix in CegoAction::insertBySelectStore. With the insert query expansion coming with 2.7.16, the insert by statement did not work any more. This patch fixes the problem. |
| 14.03.2011 | 2.7.17 |
Fix in CegoIndexCursor. The type assignment was not correctly in case of the following query
select * from t1 where a = null;
The value for the index was set to null too. Instead, now we take the type value retrieved from the index schema
Fix in CegoXPorter::readTableObject for binary import mode ( table has not been created ).
|
| 12.03.2011 | 2.7.16 |
Syntax expansion for insert statments to support two dimensional array inserts Sample
insert into t1 values (1,'xx'), (2,'yy'), (3,'zz');
|
| 11.03.2011 | 2.7.15 | Fix in CegoFieldValue constructor. If string sysdate is detected for type Datetime, the currect date is evaluated. An exception occured in case of Datetime default values in combination with table import. |
| 10.03.2011 | 2.7.14 | With the changed CegoOrderSpace code, the multidimensional ordering failed. This release adds a patch for correct multidimensional ordering like select a,b from t1 order by a,b |
| 06.03.2011 | 2.7.13 | Added pidfile command line option for cego daemon mode. This allows to specify the pidfile on command line level. If not set, the pidfile entry in the xml file is used. |
| 26.02.2011 | 2.7.12 | Small fix in CegoFieldValue for null value comparison ( operator > ) Fix in CegoXPorter for default value export |
| 19.02.2011 | 2.7.11 | Fix in CegoXPorter. Default values have not been exported with xmlExportTableSet method. Performance improvement for ordering. |
| 07.01.2011 | 2.7.10 | Fix in CegoSelect. The pointer variable pOrderSpace was not initialized to zero in the second constructor. This might lead to system crashes. I observed this in combination with stored procedures and cursors containing ordering statements. |
| 05.01.2011 | 2.7.9 | Fix in CegoMain. For import and export mode, the case sensitive flag was not defined yet. Since the value comparison during index creations depends on the flag, this might lead to wrong index trees. Also the quote escapce flag is set up now to the appropriate value. |
| 29.12.2010 | 2.7.8 | Column name check added in CegoTableManager::createDataTable ( create table t1 ( a int, a string(10)) still was accepted ) |
| 27.12.2010 | 2.7.7 | Cleanup of legacy lock handler orderlock methods. Renaming of tag MAXORDERSIZE to SORTAREASIZE. |
| 22.12.2010 | 2.7.6 | Cleanup of legacy ORDERSPACE object entries. |
| 12.12.2010 | 2.7.5 | Reimplementation has also done for the grouping space |
| 10.12.2010 | 2.7.5 | Cause by performance issues, the sort area ( OrderSpace ) was reimplemented. Since there is no need to store sorted data in the table space, the order space now is allocated in private heap memory This speeds up order performance significantely. Still there is missing an allocation limit to avoid uncontrolled sort area memory allocation. |
| 29.11.2010 | 2.7.4 |
Removed LOGNAME token from CegoAdm.def ( no more needed ) Fix in CegoDbThread::loadObjects. The reload method was not thread safe. Further, the tableset value for the CegoAction object _pPA was set to the target set for reloading. This might have confused running and active sessions. The CegoAction object is allocated locally now, so there is now conflict and no need for synchronisation |
| 21.11.2010 | 2.7.3 | Added more methods to the CegoAdmNet class. Small adaptions for clean Linux ( Ubuntu 10.10 ) compile ( include string.h and stdlib.h ) |
| 20.11.2010 | 2.7.2 | Another fix for the query cache was added, which should increase cache performance. A change in CegoProcFetch was made to allow to use proc fetch vars outside the current block ( constructor change from CegoProcVar to Chain, the variable is later on resolved using the pBlock reference ) |
| 18.11.2010 | 2.7.2 | Improved exception handling in CegoTableManager. In some cases, new allocated TableCursors have not been cleaned up in case of any thrown exceptions. This might lead to hanging locks. The exception handling has been cleaned for thsi module. |
| 17.11.2010 | 2.7.1 |
A bug was fixed in CegoTableManager to avoid the following problem
CGCLT > delete from sysmt_mtlog where sysid in ( select sysid from sysmt_system where pid = 10031 );
Error : list position exceeded
Query failed
ok ( 0.003 s )
This happened, if the result of the subselect was empty.
The subselect was not prepared and analyzed correctly. This also may occured for update queries in a similar manner
The problem was fixed by adding the following code to the methods CegoTableManager::deleteDataTable and CegoTableManager::updateDataTable
CegoSelect *pSelect = pPred->getSelectQuery();
if ( pSelect )
{
pSelect->setParentJoinBuf(&jfl, 1);
}
pPred->analyzeSelect();
A bug was fixed in CegoDistManager::startTableSet. In case of checkpoint writing, the max lsn was not set up correctly.
This was fixed with the line
maxlsn = writeCheckPoint(tableSet, true, false);
|
| 14.11.2010 | 2.7.0 | With the new admin C++ API ( CegoAdmNet ), minor version was increased to 2.7 |
| 12.11.2010 | 2.6.21 | Improvements for grouping, replaced CegoFactor with CegoExpr in CegoAggregation class. This is a small optimization, since before the the expr was encapsulated in a factor. Furthermore, the grouping logic has been redesigned to support any selection order ( select a,b, count(*) ... group by a,b ... or select count(*), a, b ... group by a,b ...). Also expression evaluation in the selection has been added ( select 10*count(*), a ... group by a ) |
| 07.11.2010 | 2.6.21 | Introduction of CegoAdmNet. This is a admin client interface used later for the Perl CegoCtl module. Via the CegoAdmNet interface, a set of admin actions can be performed. |
| 06.11.2010 | 2.6.20 | Added query abortion for delete and update operations. In case of delete queries, there is no rollack performed so some of the tuples are deleted. Since updated are executed in any case inside a transaction ( forced or by user ), rollback is performed to the original table state. |
| 29.10.2010 | 2.6.19 | Added profiling for CegoClient. The enables a user to manage several cego db connections in a client rc file. |
| 28.10.2010 | 2.6.19 |
Added check for tableset import. The name of the tableset in export file must match the name of the target tableset. This is required, since the tableset name occurs in view objects. To change tableset name, the XML export file should be edited to change the tableset name. This can be done using standard Unix string replacing methods ( sed ) |
| 18.10.2010 | 2.6.18 | Small bugfixes on CegoTerm::evalReferences and CegoNet::wasreset. No values were returned. This has been detected with Forte C Compiler on Solaris |
| 16.10.2010 | 2.6.17 |
Join optimization fix on views.
By the introduction of the CegoSelect::distIndexExists method, the index usage for view objects has been lost.
This has been fixed by expanding the if-Statement to the distObjectExists check for views
if ( _pGTM->distObjectExists(_joinList[i]->getTabName(),
_joinList[i]->getTabSetId(),
CegoObject::VIEW)
||
_pGTM->distIndexExists(_joinList[i]->getTabSetId(),
_joinList[i]->getTabName(),
pAC->getAttrName() ) )
Another fix has been done for quey caching. In the CegoSelect::cleanUP method, the cache has een cleanud and the isCached
flag is reset to false. Otherwise, views will use the cached data for subsequent calls instead of refreshing the data on every
new invokation.
|
| 11.10.2010 | 2.6.16 |
Query optimization added for nested queries. This has impact on queries, which contain
nested subqueries with no external table references. E.g.
select a from t1 where b in ( select t2.d from t2 where t2.c = 2 );
In this case, the result of the subquery is cached on first evaluation time and is reused for the next value retrievels.
In case of complex subqueries ( with no external references), this might improve query performance significantly.
|
| 08.10.2010 | 2.6.15 | Bug fix in CegoOutput::rowOut. The preFill variable was not set up correctly, which might lead to undefined value. As a result, this may lead to hanging output in case of some queries ( e.g. show view xxx ); The effect was observed on Solaris x86. |
| 17.09.2010 | 2.6.14 |
Changed library install location to plain lib directory ( instead of lib/cego ) Some adaptions for class CegoNet ( C++ programming interface ) |
| 05.09.2010 | 2.6.12 | Support added for lfc classes |
| 27.08.2010 | 2.6.11 |
Extensions of the C++ API ( CegoNet::getAffected(), CegoNet::getProcResult() ) for retrieving query and proc results |
| 22.08.2010 | 2.6.10 | More efficient implementation of CegoDistManager::distIndexExists ( usage of native CegoTableManager methods to avoid tableset lookups avoided ) |
| 21.08.2010 | 2.6.10 |
Exception handling improved in CegoXPorter Separated C-Wrapper and C++ Testprograms to samples directory |
| 19.08.2010 | 2.6.9 |
Small fixes in CegoAdmin to catch some missing command line options Added CegoTableManager::setAppend method to active append mode inside TableManager. Append mode was not activated for statement stored in stored procedures. Added CegoDistManager::distIndexExists as required method for index check in CegoSelect The method checks for an available index for the corresponding attribute and is used by CegoSelect to decide, if an attribute can be used as a TableCursor condition. Before this check was implemented, in some cases, an available index was not used. This occured, because a table cursor was created already for a different attribute for whích no index exists ( first acl match ). Increased bufferpool lock timeout, to avoid timeout exceptions for large pool configurations ( got this exception with a 3.2 GB configuration ) In CegoDefs.h
/* BufferPool lock timeout in msec */
/* this was increased becasue for large bufferpool configurations, timeouts may
occur during checkpoint writes */
#define BP_LOCKTIMEOUT 300000
|
| 17.08.2010 | 2.6.8 |
Continue with plain dump mode.
Now three export/import modes are supported: |
| 16.08.2010 | 2.6.8 | Changed binary import and export to plain dump export. Restriction are blob values, which can not be exported with this method. ( rows are exported and imported as plain byte stream with no structure analysis ) This method increases import and export performance about 10 times. On my iMac with 2.66 GHz Intel Core 2 Duo, import performance is about 100k rows per second |
| 14.08.2010 | 2.6.8 | Introduction of CegoNet class to provide a more powerful C++ API |
| 13.08.2010 | 2.6.8 | Message cleanup in CegoAdminThread for several error handling messages. Fixes on distributed queries ( drop object, create index ) |
| 12.08.2010 | 2.6.8 |
Added utility script mkcgdb
Added multicolumn output format in CegoOutput for better message formatting
Sample:
CGADM > start tableset TS1;
+-----------+---------------------+-------------------------------+
| ADM | ADM | ADM |
| ROLE | HOSTNAME | MSG |
+-----------+---------------------+-------------------------------+
| mediator | dude.local | Tableset TS1 must be in |
| | status offline to be started |
+-----------+---------------------+-------------------------------+
ERROR : Admin action failed
|
| 09.08.2010 | 2.6.7 | Append mode could not be disabled for update queries. This is fixed now. |
| 03.08.2010 | 2.6.6 | In CegoAction::setObject123 added object name len check to avoid object names longer than MAX_OBJNAME_LEN |
| 26.07.2010 | 2.6.6 |
Added encoding for CegoFunction. This was needed for check constraints containing
a function, e.g. alter table xxx add check c1 on length(b) < 10 |
| 26.07.2010 | 2.6.5 | Completed distributed query for check creation. |
| 24.07.2010 | 2.6.5 | Added admin command set logmng 'path' to set up log manager program interactively. |
| 23.07.2010 | 2.6.5 | Added list check command to list all constraint checks. The drop check operation was still not implemented. Now completed. Added attribute check for create check operation. If no tuples are in the table, this avoid defintion of checks with unknown attributes. |
| 12.07.2010 | 2.6.4 |
Fix in CegoSelect::filterPredRef. For the BETWEEN-Predicate the expressions have not been filtered, which leads to unknow attribute error, if the attribute just occured in the predicate ( and not selection list ) |
| 07.07.2010 | 2.6.4 |
Added admin command list object for tableset to list all objects in a tableset. Added duplicate attribute check for create table command |
| 06.07.2010 | 2.6.4 | Small fix for admin command info tableset. GID was not indicated, TID double time. |
| 04.07.2010 | 2.6.3 | Some more small fixes regarding tableset propagation for distributed mode. Distributed mode works, but still seems to need some exception handling. |
| 03.07.2010 | 2.6.3 | Fixes in CegoBeatConnection, CegoMain, CegoMediatorThread for password handling. ( encrypted password was reencrypted ) |
| 02.07.2010 | 2.6.3 | Changed orderspace objects to fix pages in NOSYNC mode. This avoids forced check points in case of large sorts and small buffercache. Changed semaphore array sizes from 31 to 37 since this seems a much better value for spreading in the arrays. |
| 01.07.2010 | 2.6.3 |
Added tableset array to start up n tableset in daemon mode ( --tableset=t1,t2,t3,.... ) Added method CegoDistTableManager::stopDistTableSet for cleanup of cached objects in CegoDatabaseManager |
| 30.06.2010 | 2.6.3 | Changed output for admin command info tableset to show the sum ( total + used ) of all data spaces ( system, temp, app ) |
| 28.06.2010 | 2.6.2 | Added set counter statement to set counters to an expression value |
| 28.06.2010 | 2.6.1 | Changed password encryption to AES |
| 24.06.2010 | 2.6.0 | Protocol change to allow larger admin messages ( e.g. "message too long" error in case of admin command "list rec lock" and about 1000 rRecords locks are configured ) |
| 22.06.2010 | 2.5.16 |
Check of unique use of tables in join.
select * from t1, t1;
is not allowed anymore, since unique attribute references are not possible.
Rather table aliases should be used like
select * from t1 ta, t1 tb;
|
| 22.06.2010 | 2.5.16 | Lock optimization made by introducing system record locks ( CegoLockHandler::lockSysRecord/unlockSysRecord ). These are record locks dedicated for records on system pages. Since these contain hot spot records ( during sustained inserts in CegoObjectManager::insertData ), often there can occur deadlocks on record locks by sustained insert and concurrent select operations. Deadlocks are avoided significantely now. |
| 18.06.2010 | 2.5.16 |
Completed CegoFactor::getFieldList for function case to allow queries like
select sum( date2int(a) ) from t1;
|
| 17.06.2010 | 2.5.15 | Changed exception msg to use new getBaseMsg method from Exception class. |
| 16.06.2010 | 2.5.15 |
Fix in CegoFactor::evalFieldValue(). Exception for select evaluation in QUERY case was not catched.
So no cleanup was made for the select handle and the locked object was not released. Added drop if exists clause to grammar for drop counter statement |
| 13.06.2010 | 2.5.15 | Some more exception cleanup Moved WILDCARD definition from CegoSelect.cc to CegoDefs.h |
| 13.06.2010 | 2.5.14 | Bug fixes for encoding and decoding in CegoAttrDesc::encode() and CegoAttrDesc::decode() This was detected, since the recovery for special update queries did not work |
| 12.06.2010 | 2.5.13 | Shared library build patch for FreeBSD |
| 03.06.2010 | 2.5.12 | Command line option added for database lockfile. On default, lockfile is writte to /tmp/cego.lock since after host reboot, the lockfile should be removed. |
| 20.05.2010 | 2.5.11 |
Fixes in CegoMain to delete CegoDatabaseManager also for setDbUser, setAdminUser, define and create tableset mode Fixes in CegoTableManager to delete created index entries in case of a insert error. A problem may happen in case of multiple indexes on a table and for example a contraint violation occurs on a index. It was not handled, that alread insert index entries have to be rolled back ( removed ) |
| 16.05.2010 | 2.5.11 |
Improvements for exception handling for procedures and exception messages |
| 15.05.2010 | 2.5.10 |
Improved deadlock resolution for concurrent ( update ) queries Some deadlocks resulted in a hanging system, since the exception handling was not clean This has been fixed and heavily tested |
| 14.05.2010 | 2.5.10 |
Introduced database lockfile to avoid startup of multiple cego processes. |
| 08.05.2010 | 2.5.9 | Method cleanup in CegoTableManager::insertDataTable and CegoTableManager::updateTuple. VirginIndex was added as a method parameter and the member variable was removed, since this seems to be more clean. The native method for insertDataTable using table name was removed. |
| 07.05.2010 | 2.5.9 | Expanded update mode in CegoBlowTab |
| 05.05.2010 | 2.5.9 |
Fix in CegoMain::exportTableSet exit(returnCode) replaced with return returnCode Fix in CegoFileHandler::initDataFile, better exception handling for existing datafile |
| 30.04.2010 | 2.5.9 |
Changed system table names in CegoAction::selectTable1 to tablename without prefix since this lead to
the following error for queries refering the system table attributes ( e.g. select * from $table where name like 'XXX' )
CegoFactor.cc(659) : Unknown attribute field <table.name>
|
| 02.04.2010 | 2.5.8 |
Added if exists drop option for defensive object deletion |
| 26.03.2010 | 2.5.7 |
Added further functions ( mod, div, power, bitand, bitor, bitxor ) Added assign2null statement ( required for procedure calls in procedurs ) Catched division by zero in CeegoFieldValue::div Fixes bug in CegoFactor::toChain, braces have not been generated for expression case |
| 22.03.2010 | 2.5.7 |
Fix for empty result set ordering
CGCLT > select count(*) from dab_mt where shortdesc like 'ACL564%' order by mtfrom; Error : Orderspace not created, cannot insert tuple Query failed ok ( 0.007 s ) |
| 16.03.2010 | 2.5.7 |
Add orderspace cleanup at CegoDistManager::startTableSet |
| 16.03.2010 | 2.5.6 |
Small fix in CegoSelect::nextGroupedTuple, a return value for having-case was missing Fix in CegoOrderSpace. The fields id values are set up now with values from the orderschema. This also includes aggregation id values which are required for group ordering. |
| 13.03.2010 | 2.5.5 |
New grouping feature finsihed and tested. Fixed a bug in CegoQuery::execute. For teh INSERT_BY_SELECT case, the select handle was not cleaned up. This may lead to blocked table objects in case of using the query in stored procedures. |
| 12.03.2010 | 2.5.5 | Changed grouping to store intermediate results rather in tem space than in memory. For this, new classes CegoGroupSpace, CegoGroupEntry and CegoGroupCursor have been introduced. CegoGroupAggregation is now obsolete. |
| 03.03.2010 | 2.5.5 |
Memory leak fixed in CegoQueryHelper::evalPredicate. flArray was allocated but not freed Changed CegoSelect::nextJoinTuple from cursor deletion to cursor reset. This improves performance for sub select queries for about ten times Here a snapshot sample Before
CGCLT > select month, count(*) from dab_mtmonth m where year = '2010' and m.pid in
> ( select pid from dab_prj2bgrp where bgid in
> ( select bgid from dab_usr2bgrp u2g, dab_user u
> where u2g.uid = u.uid and u.dbuser = 'lemke' ))
> group by month order by month;
+---------------------+---------------------+
| m | AGGR |
| month | count(*) |
+---------------------+---------------------+
| 01 | 29 |
| 02 | 75 |
| 03 | 87 |
| 04 | 20 |
| 05 | 13 |
| 06 | 16 |
| 07 | 19 |
| 08 | 10 |
| 09 | 15 |
| 10 | 19 |
| 11 | 12 |
| 12 | 12 |
+---------------------+---------------------+
ok ( 7.349 s )
CGCLT > quit;
ok ( 0.000 s )
After
dude.local > ./dabclt
CGCLT > select month, count(*) from dab_mtmonth m where year = '2010' and m.pid in
> ( select pid from dab_prj2bgrp where bgid in
> ( select bgid from dab_usr2bgrp u2g, dab_user u
> where u2g.uid = u.uid and u.dbuser = 'lemke' ))
> group by month order by month;
+---------------------+---------------------+
| m | AGGR |
| month | count(*) |
+---------------------+---------------------+
| 01 | 29 |
| 02 | 75 |
| 03 | 87 |
| 04 | 20 |
| 05 | 13 |
| 06 | 16 |
| 07 | 19 |
| 08 | 10 |
| 09 | 15 |
| 10 | 19 |
| 11 | 12 |
| 12 | 12 |
+---------------------+---------------------+
ok ( 0.645 s )
|
| 24.02.2010 | 2.5.5 | Exception cleanup in CegoFileHandler and CegoObjectManager. Exceptions are stacked now for better problem analysis. Fixed a bug in CegoSelect occured with new OrderSpace implementation ( cleanup of orderspace lead to seg fault, if execution plan was requested for ordered queries ) |
| 24.02.2010 | 2.5.4 |
Replaced Timer with NanoTimer in CegoBufferPool
Changed the average read/write delay calculation to avoid floating point exception Removed unnessesary seek(0) in CegoFileHandler::releasePage |
| 22.02.2010 | 2.5.4 |
Some optimizations in CegoOrderSpace to improve order performance For this, the insertData method with sysEntry datapointer was used to avoid table lookup. Furthermore, the insertLast flag was set. |
| 21.02.2010 | 2.5.3 |
Fixes in CegoOrderCursor to avoid locking and treat page claiming in the right way.
Some fixes were also made for CegoIndexCursor. In addition to OrderRecordLocks, RBRecord locks have been introduced. This optimzes locking access for rollback operations. The lockstat admin command has been added to get an overall view for all locks. |
| 19.02.2010 | 2.5.3 |
Fixes in CegoOrderSpace::insertTupleInTree, claimDataPtr replaced with claimDataPtrUnlocked, since
the access of the orderspace is exclusive and must be not locked In addition, several fixes have been added for CegoOrderSpace and CegoOrderCursor Some code cleanup detected with compiler options -Wall and -pedantic Changed lockId in CegoLockHandler from int to unsigned long to avoid overflow ( 64bit ) |
| 18.02.2010 | 2.5.3 |
Null value problem fixed for datetime values. This requires xml-1.0.18 with the Element::hasAttribute method Introduced ordering record semaphores to avoid deadlocks for ordered queries |
| 16.02.2010 | 2.5.2 |
Small fix in CegoQueryHelper::getAttributeCondList, empty table string is also accepted now Fix in CegoTableCursor::getIdxSchema, the schema is stored now during setup in _idxSchema and is returned as a copy with getIdxSchema Changed JDBC info strings for index retrieval to idx / uidx ( jdbc idx ts table ) |
| 14.02.2010 | 2.5.2 | Added MAXFIXTRIES database tuning parameter |
| 13.02.2010 | 2.5.2 | Added date2int and int2date datetime conversion functions |
| 10.02.2010 | 2.5.2 | Fix in CegoDbHander::receiveTableData and CegoImpInStream::insertData. XML values x="" have been converted to null values, which is not really correct. This has been changed, so the type information ( STRING ) is stored together with a zero length string. |
| 05.02.2010 | 2.5.1 | Fix in CegoDistCursor::getTuple. In case of join objects, the cursor method did not return false which may lead to an infinite loop. Fix in CegoTableObject::alterTableObject. The maxFid value was not propagated correctly. |
| 04.02.2010 | 2.5.1 | Locking improvements in CegoObjectManager for several object access methods |
| 02.02.2010 | 2.5.1 |
Fix in CegoObjectManager::insertData and CegoObjectCursor::getObjectCursor In case of object renaming, the hashpage range was not calculated correctly which may lead to "object not found" results. Fix in CegoObjectManager::alterTableObject Index altering was not treated correctly. |
| 26.01.2010 | 2.5.0 | Stable version finished |
| 23.01.2010 | 2.5.0 | Strong redesign in CegoSelect and CegoDistCursor for join performance optimization and better outer join support |
| 20.01.2010 | 2.5.0 | Further performances improvements in CegoSelect::nextJoin. The join buffer is no more copied so the evalPredicate and evalSelection use data directly. This improves performance for about 8 to 10 times. |
| 18.01.2010 | 2.5.0 |
Fix in CegoIndexCursor. Attribute condition NOT_EQUAL have not treat correctly
Sample
create table t1 ( primary a int not null, b int);
insert into t1 ...
insert into t1 ...
select * from t1 where a != 12;
|
| 17.01.2010 | 2.5.0 | Started with preparation for BTree index implementation. |
| 16.01.2010 | 2.4.9 | Performance improvements for joined tables. CegoTableCursor::setup and CegoIndexCursor::getFirst Are using cached data now. This improves retrieval time for joined tables using indexes more than 100 percent. |
| 16.01.2010 | 2.4.8 |
Fix in CegoSelect. The evalViewCond flag was removed since the evaluation already is done
in the CegoDistCursor |
| 02.01.2010 | 2.4.8 | Fix in CegoProcBlock. The cursorlist was not handled correctly in case of cleanup. ( drop procedure ). cursorlist was changed to a pointer list for improved cursor handling. |
| 01.01.2010 | 2.4.8 |
Fix in CegoSelect::clone. The method was still not completed since there was missing treatment for
optional union select, procedure block and select preparation.
The problem occured with the following query
select mid from dab_mtview
where sid in ( select sid from dab_systemview where project = 'XXX' )
and ( date2str(mtto, '%m') = '09'
or ( date2str(mtfrom, '%m') < '09' and date2str(mtfrom, '%Y') = '2009');
The condition is transformed to conjunctive normal form which results in a cloning of the subquery.
Since the cloned query was still not prepared, this results in the error
Error : Unknown attribute fieldfrom the view in the nested query Fix in CegoPredDesc::cleanUp. Conditions have not been treated yet here. This was added now. |
| 30.12.2009 | 2.4.7 | Further join optimizations have been added for subqueries ( better evaluation of parent field list ) |
| 29.12.2009 | 2.4.7 | Memory leak fixed in CegoSelect::buildJonTables. Allocated table objects have not been released in all cases. |
| 19.12.2009 | 2.4.7 |
Fix in CegoSelect::setViewCond. The Between-mode in CegoAttrCond was still not treated here |
| 18.12.2009 | 2.4.7 |
Completed execution plan for subqueries
The following query
plan select a, ( select l from t6 where k = mv.e )
from myview2 mv, t4
where mv.a = t4.g
and t4.h = 'beta'
and t4.g in ( select i from t5 where j = 'xxx');
would result in the corresponding execution plan
+--------------------------------------------------------+
| PLAN |
| PLAN |
+--------------------------------------------------------+
| Execution plan |
| --------------- |
| Joining table t4 (t4_2) with index trace on h = 'beta' |
| Joining view myview2 (mv) |
| View plan for mv |
| ----------------- |
| Joining view myview1 (tx) |
| View plan for tx |
| ----------------- |
| Joining table t1 (tx) with index trace on a = null |
| Joining table t2 (ty) with index trace on c = tx.a |
| Joining table t3 (ty) with index trace on e = tx.a |
| ################## |
| Execution subplan |
| ------------------ |
| Joining table t6 (t6_1) with Full table scan |
| ################## |
| Execution subplan |
| ------------------ |
| Joining table t5 (t5_3) with index trace on j = 'xxx' |
+--------------------------------------------------------+
|
| 18.12.2009 | 2.4.6 |
Bug fix in CegoSelect::nextJoinTuple : The flag _indexOnViewCond was not reset to false after the setup for the table cursor was called. This may lead to invalid query results if the cursor ( the view ) is used for different setups |
| 16.12.2009 | 2.4.6 |
Fix for distinct operator in combination with order clause, ordering in clause was ignored ( e.g. select distinct a, b from t1 order by b ) |
| 15.12.2009 | 2.4.6 | Extension for execution plan evaluation ( expr list and predicate included ) |
| 14.12.2009 | 2.4.6 | Fix for admin action list logfile |
| 13.12.2009 | 2.4.6 | Introduction of between clause ( where a between b and c ) |
| 09.12.2009 | 2.4.6 |
Extended view condition handling to support conditions on expr Sample;
create view tv as select date2str(dt, '%Y') as year from t1;
select * from tv where year = '2009';
|
| 06.12.2009 | 2.4.5 |
Several small fixes for distribution mode ( create table, tableinfo, update and delete count ... ) Started with distributed database test suite |
| 05.12.2009 | 2.4.5 |
Small fixes for distribution mode |
| 04.12.2009 | 2.4.5 |
Distributed actions completed. Actually no more open TODOs in code |
| 03.12.2009 | 2.4.5 |
Changed inheritance from CegoRecoveryManager to member class usage This was caused, since the CegoDistManager is used by the RecoveryManager for complete recovery ( CegoDistManager is used in some predicates where select statements occur ) |
| 28.11.2009 | 2.4.5 |
Table access during transaction commit phase has been restricted Read operations during transaction commit may lead to wrong results, since the tuples data is temporary inconsistent For this the method CegoTransactionManager::getTransactionAffectedTables has been introduced Complettion of distributed queries ( startTransaction, commitTransaction, rollbackTransaction, getTID ) |
| 27.11.2009 | 2.4.5 |
Added numTries parameter for all locking calls in CegoLockHandler This ensures a repeated lock call try in case of any database deadlock situations |
| 26.11.2009 | 2.4.5 |
Bug fix in CegoQueryHelper::decodeUpdRec and CegoQueryHelper::encodeUpdRec The variable cwas declared as type int, should be of type char This leads at least to redo log recovery problems for SPARC versions |
| 24.11.2009 | 2.4.5 |
A bug has been fixed in CegoFunction::fromElement. Just the first expression element has been put into
the expression list |
| 23.11.2009 | 2.4.5 |
Fix in CegoQueryHelper::copyBranch for CNF construction, invalid copy constructor was used for CegoPredDesc branch copy. This has been replaced by clone method. A memory problem occured for the following query
select mid, date2str(mtfrom,'%d'),
date2str(mtfrom,'%m'),
date2str(mtto,'%d'),
date2str(mtto,'%m'), sid, shortdesc, status
from dab_mtview
where date2str(mtfrom, '%m') = '11' and date2str(mtfrom, '%Y') = '2009'
or date2str(mtto, '%m') = '11' and date2str(mtto, '%Y') = '2009'
or date2str(mtfrom, '%m') < '11' and date2str(mtto, '%m') > '11'
and date2str(mtfrom, '%Y') = '2009' and date2str(mtto, '%Y') = '2009';
|
| 21.11.2009 | 2.4.4 |
Extension of aggregation to support full expressions. Now queries like select b, 2 * count(*) from t1 group by b having count(*) + 1 = 2 are allowed. Fix for check constraint. check was not removed if table was dropped. Fix for long datatype error in CegoFieldValue::add,sub,mul |
| 20.11.2009 | 2.4.4 | Added nextcount function for counter usage ( in stored procs ). |
| 06.11.2009 | 2.4.3 |
Changed admin threadinfo db operation to threadinfo db [id] This allows a better output and retrievel of last action for a specific db thread |
| 04.11.2009 | 2.4.3 |
Fixes on null value encoding / decoding |
| 03.11.2009 | 2.4.2 |
Correction of delete counter value in CegoTableManager::deleteDataTable |
| 02.11.2009 | 2.4.2 |
No-Alignment logic in encodeEVL/decodeFVL lead to problems for SPARC versions. So all pointer value assignments changed to memcpy ( val = *(int*)pF->getValue() changed to memcpy(&val, pF->getValue(), sizeof(int)) ) |
| 01.11.2009 | 2.4.2 |
Added size attribute to system tables $table and $index |
| 30.10.2009 | 2.4.1 |
Fixed a bug for alter table rename column statement |
| 28.10.2009 | 2.4.1 |
Added drop statement for check constraints Fixed a problem in CegoQueryHelper::encodeFVL and CegoQueryHelper::decodeFVL In some cases, the decoding has not been worked correctly ( null values at the end of tuple ) The alignment has been removed and a terminating check id has been added to recognize end of tuple |
| 21.10.2009 | 2.4.0 | Added check constraints to CegoXPorter |
| 17.10.2009 | 2.4.0 | Introduction of check constraints |
| 17.10.2009 | 2.3.12 |
Fix for foreign key ( index check failed, if foreign key attribute name not equal primary key attribute name ) Fix for rename tables with foreign keys ( key was not found although the key exists ) |
| 14.10.2009 | 2.3.12 | Fixed rename bug in CegoTableManager::renameTable. Table name was not set to new tablename. |
| 13.10.2009 | 2.3.12 | Added implicit cast from int/long to bigint |
| 12.10.2009 | 2.3.12 | Fix for alter table modify in CegoTableManager::alterDataTable |
| 03.08.2009 | 2.3.11 | Introduction of class CegoSystemObject for management of system table like $table, $procedure, etc. |
| 30.07.2009 | 2.3.11 |
Some post corrections for the new execution plan evaluation Fixed a problem regarding query cleanup. Predicates have not been cleaned up correctly Expanded stored procedure grammar to provide initial assignment for variables ( like var i int = 42; ) |
| 28.07.2009 | 2.3.11 |
Fixed a bug in the CegoDistCursor::evalCondition method. Evaluation was not done correctly. Changed execution plan to work also for empty query results. |
| 16.07.2009 | 2.3.10 |
Further optimization on join logic ( treating appropriate predicates in where-condition
before joining inner and outer tables |
| 14.07.2009 | 2.3.9 |
Extension of CegoDistCursor to enable condition evaluation. Fixes made in CegoSelect for inner joins, since some queries did not return the correct result |
| 13.07.2009 | 2.3.9 | Join optimization correction for view joins. The CegoDistCursor::distSetup returned false. This has been changed, so now the value of the _viewCondOptimized variable of CegoSelect is now returned. |
| 09.07.2009 | 2.3.9 |
Joinlists in combination with nested queries have not been treated correctly
For example
select a from t1 inner join t2 on b in ( select c from t3 ) left outer join t4 on d = 0;
lead to exceeded list errors. Fix done.
|
| 08.07.2009 | 2.3.8 |
Fix for view condition handling in CegoSelect ( to support view condition join optimization for aliased attributes ) ( e.g. view xview as select a as Alpha from t1; select * from xview where Alpha = 1 now Alpha = 1 is mapped to a = 1 index condition, if index on a exists ) |
| 07.07.2009 | 2.3.8 |
Changed ordering to support attribute level ordering |
| 26.06.2009 | 2.3.8 |
Added length calculation for attributes in desc command ( improved format ) |
| 25.06.2009 | 2.3.8 |
Adaptions for the C-Wrapper library. Caught exception in CegoLogThreadPool, if logfiles could not be copied to archive destination |
| 20.06.2009 | 2.3.7 |
Added shared library support ( required for PHP integration ) . Implementation of round function |
| 15.06.2009 | 2.3.7 |
Fixes done for tableset xml import and export. Default value handling Blob value handling Proc and view db threadpool reloading after import |
| 14.06.2009 | 2.3.7 |
Thanks to the support of Mr. Schiliro ( iworxs GmbH ) and the intensive tests with the iworxs ECM-Suite,
many improvements have taken place in the current release.
|
| 11.06.2009 | 2.3.7 |
Improvements for cego mode ( distributed mode ) For tableset copies, now percentage for copy completion is now indicated ( list copy command ) |
| 10.06.2009 | 2.3.7 |
More work on new admin protocol. Added numRequest attribute to threadinfo to indicate the number pf performed request for each thread |
| 07.06.2009 | 2.3.7 |
Bug fix for grouping queries. The pGroupList was double freed in CegoAction::cleanup().
This must be avoided by setting the variable to zero
void CegoAction::selectGroupClause()
{
_groupClauseStack.Push(_pGroupList);
_pGroupList = 0;
}
More work on extended admin handler ( dialog messages )
|
| 04.06.2009 | 2.3.7 |
Extended admin handler dialog to support intermediate information messages. First usage of the
dialog has taken place for the verifyTableset admin routine |
| 03.06.2009 | 2.3.7 |
Length attribute added for desc output |
| 26.05.2009 | 2.3.5 |
Fixed rawmode for interactive cgadm usage Adaptions for external logmanager |
| 24.05.2009 | 2.3.5 |
Format extension to CegoOutput for better output formatting |
| 21.05.2009 | 2.3.4 |
Improvements for tableset recovery. Support for external log manager added |
| 19.05.2009 | 2.3.4 | Some cosmetic issues in CegoDefs and exception message handling |
| 18.05.2009 | 2.3.3 |
Dramtic performance improvement for delete queries ( no reset of cursor, delete tuples in one run )
Fix for CegoObjectCursor and CegoTableCursor. Caused by performance optimizations,
cursors are now aborted ( not deleted ). Abort for ObjectCursor did not reset the cursor
in a correct way. reset method was introduced for resetting the cursor for next retrievel Added Cntrl-C query abort for CegoClient |
| 17.05.2009 | 2.3.3 |
Fix in CegoXMLSpace. The PR locking was not correct. Concurrent read access to Element::getAttributeValue() ist not handeled. So PR was changed to PW. |
| 12.05.2009 | 2.3.3 |
Intrduction of CegoRecoveryManager for encapsulation of recovery logic. Extension of logging for ALL-module support |
| 09.05.2009 | 2.3.3 |
Fix in CegoAction::selectTable2 ( missing assignment of _pJoinTD, which leads to problems with inner and outer joins ) Fix in CegoSelect::filterFacRef ( prepare should be called for query-factors before calling getAttrRefList) |
| 08.05.2009 | 2.3.3 |
Added code formatting for procedure code |
| 02.05.2009 | 2.3.3 |
Small grammar change for JoinSpec production ( from Predicate to Condition ) This enables join spec conditions without brackets |
| 01.05.2009 | 2.3.2 |
Fixes for inner, left and outer joins Fixes for recovery ( variable handling in CegoFactor ) Added DTFORMAT parameter for date format customizing in database xml Case sensitive flag is checked in CegoAction::nextChar |
| 28.04.2009 | 2.3.2 |
Added blob import/export for binary mode Added module based logging ( in combination extended base Logger class ) |
| 15.04.2009 | 2.3.2 |
Fixes for redo logfiles. ( drop queries were not recoverd correctly ) Counters are now treated in redo logs |
| 15.04.2009 | 2.3.1 |
Added quote escape mode ( oracle style ) for string values Encoding fix for blob values in CegoTableManager::encodeFVL/decodeFVL |
| 14.04.2009 | 2.3.1 |
Changed CegoMain from GetOpt to GetLongOpt ( new command line option conventions ) This requires base version 1.1.19 |
| 13.04.2009 | 2.3.1 |
Small fixes on CegoClient in terms of logfile handling Small exception handling fix in CegoAdminThreadPool ( replaced e.print() ) |
| 11.04.2009 | 2.3.1 |
Introduced affected count to indicate afected rows for insert, update, delete queries Changed grammar for not-Predicate to handle unbracked conditions more friendly ( select a from t1 where not a = 1 and not b = 4 works now without any brackets ) |
| 08.04.2009 | 2.3.0 |
Introduction of case-sensitive database mode for case-sensitive/insensitive string compares Fix for transactions ( introduction of transaction step ( tastep ) tuple field) Fix for distinct aggregation mode ( select distinct count(a) from t1 ) |
| 03.04.2009 | 2.2.8 |
Added locale support ( evaluation of the LANG environment variable) Fix for index creation ( changed CegoDistManager::createLocalIndexTable from SHARED to EXCLUSIVE_WRITE locking ) Fix in CegoIndexManager ( ALLOW_UNIQUE_NULL Handling was wrong, which lead to a problem by updating indexed null values ) Changed to smooth handling for commit actionin case of non-active transaction ( no more error result ) |
| 02.04.2009 | 2.2.8 |
Added locale support ( evaluation of the LANG environment variable) |
| 31.03.2009 | 2.2.8 |
Continue with db verification procedure, first table and index checks ready |
| 30.03.2009 | 2.2.8 |
Start of db verification procedure for tableset consistency verification |
| 28.03.2009 | 2.2.8 |
Added counter objects for autoincrement implementation Some code cleanup in Cego.def and CegoAction |
| 27.03.2009 | 2.2.8 |
Fixed a problem occured with ordering and grouping
select statdate, sum(numhit) from webstats ws group by ws.statdate order by ws.statdate asc;
The statdate attribute was not found. Fixed in CegoSelect.
|
| 25.03.2009 | 2.2.8 |
Added C wrapper functions cego_putblob, cego_getblob and cego_delblob for blob handling |
| 22.03.2009 | 2.2.7 |
Blob support added with corresponding interface in CegoDbHandler
putBlob
getBlob
delBlob
Added blob check routines in CegoBlowTab |
| 14.03.2009 | 2.2.7 |
Added autocommit switch mode Added transaction isolation level switch ( read committed / read uncommitted ) |
| 14.03.2009 | 2.2.6 |
Added default values Small bugfixes for iworxs database |
| 01.03.2009 | 2.2.6 |
Added union all feature Small bugfixes for precedure return values ( missing len for decimal ) and join predicates |
| 25.02.2009 | 2.2.5 |
Quality gate B extended More exceptions catched in case of lock exceeds. Catched wrong procedure and function call including wrog return statments ( return value required for functions, return value invalid for procedures) |
| 24.02.2009 | 2.2.5 |
Quality gate B extended Some fixes for distinct queries were made ( used in procedures ) |
| 22.02.2009 | 2.2.4 |
Quality gate checks introduced Since the quality checks are embedded in procedures, this brought up several improvements and bug fixes ( especially regarding procedure handling ) |
| 20.02.2009 | 2.2.4 |
Performance improvement for update operations Introductoion of table and index reorg feature |
| 15.02.2009 | 2.2.3 |
Improvements for transaction handling ( introduced TupleState to store transaction information for each tuple) This makes datafile structure incompatible to older releases ( export/import needed) !!! Fix for AdminThread to handle client network timeouts ( occured with new NetHandler class ) |
| 14.02.2009 | 2.2.3 |
Join optimization fix for views ( view condition was not treated correctly ) Join fixes for outer joins Cosmetic improvements for sample test suite |
| 12.02.2009 | 2.2.2 |
C-Library completed Clean exception handling in case of deadlocks in CegoDistCursor and CegoIndexCursor |
| 06.02.2009 | 2.2.1 |
Added plain c-library interface Some bugfies |
| 19.01.2009 | 2.2.1 |
Introduction of "list transaction" admin command Some performance optimizations in CegoTableManager ( to avoid redundant getObjectList calls in delete and insert methods ) |
| 17.01.2009 | 2.2.0 |
Fixes on binary export Fix in CegoTableManager::deleteDataTable, foreign key check is not appropriate for update operations Syntax change for update operations ( no more braces in set clause ) Performance optimizations in CegoTransactionManager. Use of single tables rbcatlog an updtab to avoid table creation for each transaction |
| 11.01.2009 | 2.2.0 |
Binary export/import mode implementation completed. First measurements indicated a speedup of about three times compared to xml ( about 35 000 rows per second ) A fix is included for transaction handling. Open transactions are closed also in case of aborted db sessions A fix is included for thread procedure load. In CegoDbThread::loadObject the static CegoAction instance is now allocated dynamically to avoid core dump |
| 11.01.2009 | 2.1.5 |
Started with binary export/import implementation. His should boost up the export/import performance pretty much |
| 10.01.2009 | 2.1.5 |
Tableset online check added in CegoDbThread ( for each query ) Check added for foreign keys to refer to a valid primary key |
| 08.01.2009 | 2.1.5 |
Bug fixes regarding procedure and view object reload and corresponding thread locking |
| 07.01.2009 | 2.1.4 |
Changed buticket to tsticket to store complete tableset data Objects are reloaded now by all db threads in case of creating or dropping objects (views or procs) Timeout option introduced for sync tableset admin commmand Performance improvement for tableset import ( 2 times ), introduced nologging option to speed up import |
| 02.01.2009 | 2.1.4 |
Completion of alter table statements, including rename, modify and drop attribute handling Corresponding keys and indexes are treated Completion of select statement encoding and decoding for logging and distributed queries |
| 23.12.2008 | 2.1.3 |
Added class CegoCaseCond to support case-when-clauses in queries Expanded Order clause to support complete expressions in the ordering Added support for right outer join queries |
| 19.12.2008 | 2.1.3 |
Lock fix in CegoDistManager::updateLocalDataTable, lock mode changed to EXCLUSIVE_WRITE
( the EXCLUSIVE_WRITE mode was introduced in CegoDatabaseManager to allow read operations on an exclusive write lock) |
| 24.11.2008 | 2.1.2 |
Performance optimization for tuple update in CegoTableCursor::getNext().
The ignoreTouched flag is evaluated before expensive getRBOperation() Support of additional system and temp files has been added |
| 24.11.2008 | 2.1.1 |
More work on distributed queries ( insert, update, delete ) to enable predicate transfer ( fromElement, toElement methods) |
| 22.11.2008 | 2.1.1 |
Added CegoSelect::setViewCond feature for using index access in view queries |
| 01.11.2008 | 2.1.1 |
Completion work on CegoDistManager, including xml encoding for
distributed update and delete queries ( CegoPredDesc::toElement) |
| 11.10.2008 | 2.1.0 |
Some stability fixes for distributed mode ( execution of subsequent copy tableset commands hang up ) Added info copy feature to request status of running and finished or aborted copies |
| 30.09.2008 | 2.1.0 |
Logical logging basically works. For some special query types,
the encoding and decoding still has to be implemented Admin command for tableset info retrievel expanded ( more detailed info ) |
| 27.09.2008 | 2.1.0 |
Started with implementation of consequent logical logging Introduction of encode, decode and getEncodingLength methods for CegoPredDesc and members |
| 25.09.2008 | 2.0.12 |
Added missing cleanDataFile call in CegoTableManager::regDataFiles for user datafiles The missing call lead to problems in case of logfile crash recoveries The method CegoDataPointer::getEncodingLength is used now for all encoding length calculations regarding datapointer objects. As a result, the class CegoDataPointer can be modified to reduce the required dp data. Instead of 3 * 32bit ( fileId, pageId, offset ), the data might be reduced to 2 * 32 bit ( 16 bit fileId, 16bit pageId, 32bit offset ). This can be useful for larget index objects, where lots of dp references are used for the balanced tree structure. |
| 21.08.2008 | 2.0.12 |
Fixed CegoXPorter::exportTable, the output file was not closed and the handle not deleted Changed object usage from EXCLUSIVE to SHARED in CegoDistManager::createLocalIndexTable |
| 13.08.2008 | 2.0.12 |
Improved grouping attribute check for grouping queries in CegoSelect::groupTuple |
| 10.08.2008 | 2.0.12 |
Added rowlimit option for select statements to limit result rows Role abbreviation for list user admin command |
| 23.07.2008 | 2.0.11 |
Fixes in several inline functions. Introduction of randstr and randint function Added a db sesson pool in CegoDatabaseManager for managing connections from distributed queries More work on distributed queries ( list table ). |
| 19.07.2008 | 2.0.11 |
Fix in CegoTransactionManager::getRBOperation In case of heavy update operations, a timing problem could be occur with available rollback entries. To avoid this, a retry loop was introduced in getRBOperation |
| 18.07.2008 | 2.0.11 |
Catched missing command line arguments for cego in CegoMain Corrections of several functions |
| 04.07.2008 | 2.0.10 |
Fix on RBSEG creation coming with the object hash entry strategy ( no usage of hash start page ) |
| 04.07.2008 | 2.0.9 |
Introduced index locks and improved lock strategy |
| 03.07.2008 | 2.0.9 |
Use of ThreadLock:numLockTry method for concurrency calculation |
| 30.06.2008 | 2.0.9 |
Change list lock admin command to show specific locks Changed hash strategy for syspage objcte entry hash. INdex and key objects are hashed now with the corresponding table name This avoids an expensive getObjectListByTable call in the insertTable method |
| 29.06.2008 | 2.0.8 |
Added object distribution strategy for system pages. Via Chain::getHashPos, the initial system page for an object is calculated, which leads to a spread of all objects over the whole hash system page field ( CegoDef.h : #define TABMNG_HASHSIZE 30 ) For multiprocessing environments, this should improve the parallel write access to different objects |
| 28.06.2008 | 2.0.8 |
Introduced rename statement for table renaming Introduced alter modify and alter rename statement for column modification ( not finished ) |
| 27.06.2008 | 2.0.8 |
Value fixes in CegoImpInStream and CegoExpOutStream ( null value handling, added CegoQueryHelper::prepareFieldValue) |
| 22.06.2008 | 2.0.8 |
Changed ordering to support non-selected order attributes ( e.g. select snr from supplier order by sname ) |
| 21.06.2008 | 2.0.8 |
Added role option to cego -p command line call Corrected exit codes for cgclt Fixed CegoProcBlock::toChain() exception generation |
| 20.06.2008 | 2.0.7 |
Fix in CegoTableManager::encodeFVL Null values are foced for propre encoding This bug lead to seg fault in some cases |
| 15.06.2008 | 2.0.7 |
Added insert by select statement Added lock optimization in CegoObjectManager::insertData() The system page is locked READ now and the actual object entry is locked on record level as WRTIE This leads to performance improvements in case of concurrent modifying insert operations on object located in the same system page |
| 08.06.2008 | 2.0.7 |
Completed CegoViewObject::getFormatted and CegoViewObject::putElement This avoid problems with the desc view operations |
| 07.06.2008 | 2.0.6 |
CegoIndexManager::compIndexValue corrected for null value comparison CegoQueryHelper::prepareFieldValue() fixed to check null values Completed negative value handling for several data types |
| 06.06.2008 | 2.0.6 |
CegoProcVar::toChain fixed , Missing open bracket for bigint CegoQuery::toChain() fixed ( return clause for update query added ) |
| 04.06.2008 | 2.0.6 |
CegoDistCursor completed. So distributed queries now work. From the secondary or mediator host,
table queries are dispatched to the primary and the corresponding data is sent back This is the next milestone for the distributed Cego approach. |
| 03.06.2008 | 2.0.6 |
Expansion of interface class CegoDecodableObject. The virtual methods getElement, putELement and getFormatted
have been introduced to locate XML serialization and formatted output to the corresponding object classes ( CegoTableObject, CegoProcObject ...) |
| 01.06.2008 | 2.0.6 |
New tree-based orderspace implementation finished. |
| 31.05.2008 | 2.0.6 |
Fix for unique index creation ( was not built up with unique constraint ) Multiple sent signal catched now in CegoBeatThread More tableset information provided in CegoAdminThread::medGetTableSetInfo Better implementation of OrderSpace started ( instead of linear inserts, a binary tree is used now ) |
| 22.05.2008 | 2.0.6 |
Treated log loss situation. ( log connection to secondary lost ) Sync status of the tableset is set up to LOG_LOSS In this cases, the secondary should be switched ( e.g. to primary ) |
| 19.05.2008 | 2.0.6 |
Introduced CegoQueryException for improved exception handling ( coming up with procedure exceptions ) Fixed a bug occured with MinGW and gcc 3.x in CegoTableManager::removeCompProcedure and removeCompView The cleanup sequence before fix:
_procList[tabSetId].Remove(*pProc);
CegoProcedure *pDelProc = *pProc;
delete pDelProc;
Before removing the procedure from procList, the procedure pointer must be deleted.
The folowing change has been made
CegoProcedure *pDelProc = *pProc;
delete pDelProc;
_procList[tabSetId].Remove(*pProc);
|
| 18.05.2008 | 2.0.5 |
Proceed with procedure exception handling. Basically works now |
| 16.05.2008 | 2.0.5 |
Fixed a Forte CC compatibility problem in CegoProcException ( return values missing ) Changed output format of cglog, proper objtype value for insert operations in log Added definition of buticket to define tableset administration |
| 12.05.2008 | 2.0.5 |
Fixes on backup mode, online log files have not been stored to archive location Backup mode was not handled for new db connections in CegoDbThread |
| 10.05.2008 | 2.0.5 |
Some changes made for failover handling and instance relocation Primary switch tested in case of a complete primary node crash |
| 03.05.2008 | 2.0.5 |
Added return clause to update statement to return updated values in given vars Changed update evaluation to make incrementing updates ( a = a + 1 ) work |
| 01.05.2008 | 2.0.5 |
Fixed a problem with recovery after switch ( lsn confusion ) Cleanup of cached object in CegoAdminThread::medSwitchTableSet |
| 28.04.2008 | 2.0.5 |
More work done on JDBC info requests. Column information for tables and views handled now. Data type information added. |
| 27.04.2008 | 2.0.4 |
Introduced CegoJDBCInfo class for isolation of JDBC info requests. Added support for primary key information |
| 04.03.2008 | 2.0.4 |
Fix in CegoQuery::prepareFieldValue to catch null pointer for fv.getValue() |
| 16.02.2008 | 2.0.4 |
Fix in CegoTableManager for the checkTypes method. To get the right column typ, the method is called before any tuple ( containing null value ) is retrieved. The results in a relocation of the method from checkIntegrity to updateDataTable |
| 10.02.2008 | 2.0.4 |
Fixed a bug in CegoQuery::execute occured with insert queries and incomplete attr spec list ( no null values have been added ). |
| 16.12.2007 | 2.0.4 |
Added qualifed star feature for select statement ( select tbl.* from t1 tbl ) Added several JDBC driver relevant info statements ( jdbc xxx ) |
| 15.12.2007 | 2.0.4 |
Extensions for JDBC Driver implementation ( MetaDB Infos ) |
| 04.12.2007 | 2.0.4 |
Added cast from Decimal to Fixed type in CegoFieldValue::castTo Fixed a field type setup bug in CegoQuery::execute in UPDATE_QUERY case |
| 01.12.2007 | 2.0.4 |
Some cleanup and preparation for distributed table handling in CegoDistManager Introduced raw mode for Cego client ( no format information for table output ) Added escape character handling for the CegoAction::nextChar method |
| 01.12.2007 | 2.0.3 |
Fix in CegoQuery::toChain. For insert statement generation, the attribute list was missing for full qualified queries |
| 21.11.2007 | 2.0.3 |
Fix in CegoTableManager::updateDataTable. For the virgin index evaluation Alter table statement now checks non-nullable columns Bug Fix in CegoTableManager::updateTuple for new update strategy |
| 19.11.2007 | 2.0.3 |
Ordering direction implemented ( asc, desc ) Alter table statement now checks non-nullable columns Bug Fix in CegoTableManager::updateTuple for new update strategy |
| 18.11.2007 | 2.0.3 |
Bug fix in CegoSelect::cleanUp _attrCondFlag was initialized to true, this must be false The bug leads to a crash in case of view select without any condition |
| 18.11.2007 | 2.0.2 |
Update redesign done. The virgin index is used for traversing the table during the update. The virgin index is an index, which is not affected during the update During the update, all changes tuple pointers are write to a update table After the update is completed, the update is completed for the virgin index This leads to a consistent table view after each update operation |
| 17.11.2007 | 2.0.2 |
Parameter consolidation of CegoIndexManager::insertNativeIndexTable() and insertIndexTable Preparation for update transaction redesign ( virgin index strategy ) |
| 12.11.2007 | 2.0.2 |
Type check added for update operations ( CegoTableManager::checkTypes() ) This avoids tuple update to invalid field types |
| 11.11.2007 | 2.0.2 |
Further problem with transaction. The idxOnCommit flag was not handled in case of transaction recovery This has been fixed introducing a new log record type LOGREC_IDXCOMMITON and LOGREC_IDXCOMMITOFF |
| 10.11.2007 | 2.0.2 |
Detected a problem with recovery in combination with transactions The commit operations call the method CegoTableManager::deleteDataTable This results in a duplicate delete entry in the logfile which crashes the recovery |
| 08.11.2007 | 2.0.2 |
Fixed CegoSelect::analyzeJoin(). Just for straight subselect the analyze worked. The CegoPredDesc::analyzeSelect method was introduced for recursive subselect analyze The corresponding part in CegoSelect::analyzeJoin was changed to
...
if ( _pPred )
{
_pPred->analyzeSelect();
}
...
|
| 07.11.2007 | 2.0.2 |
Hanging export in case of exporting empty table. This was a problem in CegoExpOutStream::getNext which was called after the getFirstTuple method already had returned a false value. Missing idempotence was fixed in CegoObjectCursor::getFirst() and getNext by checking the introduced _isEOC flag Added further locking information ( lockcount ) for lock listing in cgadm Fixed CegoFactor::evalFieldValue() for QUERY-Type factors in case of selection-select in views ( select was not prepared, added _pSelect->prepare() ) |
| 04.11.2007 | 2.0.1 |
Fixed some problems occured with primary and unique index violation on update operations For this, the CegoTableManager::checkIntegrity was introduced and called before any update In stored procedures, the procedure variables have not been resolved correctly in delete and update predicates ( where condition ). This has been fixed User roles and user tracing has been introduced |
| 29.10.2007 | 2.0.1 |
Proceed on procedure exceptions |
| 27.10.2007 | 2.0.1 |
Some fixes for outer joins Fixes for CegoFactor::evalField() to indicate proper attribute headers ( select count(*) ) Introduced user roles |
| 20.10.2007 | 2.0.0 |
Fixed some attribute management problems in CegoExpr::evalField Added unloadObject and friends to CeegoDbThreadPool for procedure and view cleanup in case of stopping ts |
| 14.10.2007 | 2.0.0 |
Fixed some bad deadlock effects occured with views and procedures Fixed some memory leaks occured with procedures Fixed alias handling for view management |
| 13.10.2007 | 2.0.0 |
Fixed some foreign key problem with update operation Fixed ordering problem occure with Solaris memory alignment ( CegoOrderEntry was not alignment save) |
| 07.10.2007 | 2.0.0 |
Since first basic distributed functions work, switch to version 2.0.0 is done ( alpha ) |
| 03.10.2007 | 1.4.3 |
First switch cycle basically works ( switch -> relocate secondary -> copy -> switch -> relocate secondary -> copy ) |
| 29.09.2007 | 1.4.3 |
Online tableset copy basically works now ( medCopyTableSet ) |
| 28.09.2007 | 1.4.3 |
Preparations for 2.0. this includes mediator services and improvements for tableset copy/recovery actions |
| 23.09.2007 | 1.4.2 |
Some corrections for MinGW and CegoAdm |
| 16.09.2007 | 1.4.1 |
Elimination of some memory leaks. This also leads to a new version of the XML library ( 1.0.11 ) Improved casts on datatypes |
| 15.09.2007 | 1.4.1 |
Correction of transaction concurrency access strategy. If a transaction has touched any tuple,
the tuple is still readable from another transaction but no more writable. This is realized using the ignoreTouched flag in CegoTableCursor and CegoIndexCursor |
| 12.09.2007 | 1.4.1 |
Small corrections for CegoAdm GUI |
| 09.09.2007 | 1.4.0 |
Started with select outer join feature implementation |
| 08.09.2007 | 1.4.0 |
More fixes regarding new query features Fixes regarding stored procesdure Fixes regarding concurrency |
| 03.09.2007 | 1.4.0 |
Tests and bug fixes for 1.4.0 Views still need some work .. |
| 02.09.2007 | 1.4.0 |
Syntax extension for query predicate expressions ( instead of native attribute )
QueryPredicate : Expr INTOK LB SelectStatement RB
QueryPredicate : Expr NOT INTOK LB SelectStatement RB
QueryPredicate : Expr Comparison Expr
QueryPredicate : Attribute IS NULLTOKEN
QueryPredicate : Attribute IS NOT NULLTOKEN
QueryPredicate : Expr LIKE STRINGVAL
QueryPredicate : Expr NOT LIKE STRINGVAL
This provides more powerful queries with full expression support |
| 25.08.2007 | 1.3.3 |
Added lock id information to lock monitor methods Completed extended table spec defs |
| 23.08.2007 | 1.3.3 |
Added extented table spec to grammar def ( table@tablset ) Fixed remove user / passwd user operation |
| 23.08.2007 | 1.3.3 |
Lock optimization in CegoXMLSpace and CegoDatabaseManager |
| 22.08.2007 | 1.3.3 |
Changed hashId calculation to avoid concurrency for page 0 access for different tablesets ( Changed hashId = ( (fileId+1) * (pageId+1) ) % _numPage ) Introduced lock monitor admin service for analysing locking effects |
| 18.08.2007 | 1.3.3 |
Completed recovery issues and other open issues for 1.3 Added -mthreads link option for MinGW. This is required for a proper exception handling in multithreaded applications |
| 17.08.2007 | 1.3.3 |
Added lower, upper and trunc function Completed import- and export table operations ( single table and structure ) |
| 16.08.2007 | 1.3.3 |
Use of non-timeout locks in CegoXXXThreadPool to avoid locking timeout errors |
| 15.08.2007 | 1.3.2 |
Cego runs pretty stable on Windows. This requires new base library version 1.1.0 |
| 13.08.2007 | 1.3.2 |
Further bug and stability fixes for mediator services and online backup mode Elimination of os dependent code and compile-ready-state with MinGW ( Windows ) |
| 08.08.2007 | 1.3.1 |
Proceed with user documentation. Several small fixes for mediator services |
| 07.08.2007 | 1.3.1 |
Small bugfixes for new mediator services. Fixed a locking problem in CegoXMLSpace |
| 05.08.2007 | 1.3.0 |
Syntax consolidation for query and procedure expressions done. This results in a more powerful grammar to provide more advanced features in stored procedures ( e.g. function calls ) |
| 29.07.2007 | 1.2.1 |
Cleanup work for the online backup features and CegoAdmin |
| 28.07.2007 | 1.2.1 |
Tested online backup mode feature and fixed some problems. |
| 22.07.2007 | 1.2.1 |
Added online backup mode features to CegoFileHandler. As a result, reorganisation of class inheritance regarding CegoXMLSpace was needed ( now CegoLogManager is derived from CegoXMLSpace ) The online backup feature is a prerequisite for the mediator copy tableset function |
| 21.07.2007 | 1.2.1 |
Completed XML Space isolation. Now all shared XML space operations are synchronized via CegoDatabase Managaer |
| 15.07.2007 | 1.2.1 |
More work on mediator services for adding archive logs, adding datafiles, getting tableset info. Proceed with cgadm online help Basic mediator services work ( including recovery on secondary ): define, create, copy, start, stop, add user, add archlog, add datafile |
| 14.07.2007 | 1.2.1 |
Adaptions for 64 compiles for SPARC/Forte C More work on online help for cgadm console client |
| 11.07.2007 | 1.2.1 |
Adaptions for cgadm console interface for new mediator services Bug fixes in CegoXMLSpace::addTableSetDef |
| 08.07.2007 | 1.2.0 |
Distributed tableset definition for mediator, primary and secondary implemented and tested ( Med Services medDefineTableSet and medRemoveTableSet ) Since there are several mediator service spec extensions, I decided to switch to version 1.2 |
| 07.07.2007 | 1.1.2 |
Introduced CegoDatabaseManager class derived from CegoBufferPool. CegoGlobalSpace has been renamed to CegoXMLSpace This is a cleanup step to achive a better isolation and straight locking of the thread global space |
| 04.07.2007 | 1.1.2 |
Introduced statStart parameter for reset of statistic counter in buffercache. Fixed some bugs with n
ew mediator services. Changed shutdown procedure of daemon to shut down all active tablesets. Completed switch
and copy mediator confirmation widgets. Tomorrow back in germany |
| 03.07.2007 | 1.1.2 | Proceed with med service implementation. Corrections made for batch import mode in combination with archive mode ( since the LogThreadPool was not started up, no arching took place and import has blocked on occupied redo logs ) Added hitrate, readDelay and writeDelay indicators to BufferCache info |
| 02.07.2007 | 1.1.2 |
Fixed some bug fixes occured with multi tablesets. Introduced major mediator services for tableset transistion states DEFINED, OFFLINE_SYNCHED, OFFLINE_NOT_SYNCHED, ACTIVE_SYNCHED, ACTIVE_NOT_SYNCHED, ON_COPY |
| 01.07.2007 | 1.1.2 | Redesign of tableset dialog widgets. Since this can be done using JOptionPane in a convenient way, I changed all dialog widgets to this class. |
| 30.06.2007 | 1.1.2 | More work on creating, dropping and removing of tableset via admin gui CegoAdm |
| 29.06.2007 | 1.1.2 |
Cleanup of CegoAdminThread, isolation of service request code to
decicated srv* methods. Adding new service for definition of tablesets |
| 28.06.2007 | 1.1.2 |
Trip to turkey :)
More work on cgadm online help, some cosmetic changes on gettablesetinfo operation |
| 27.06.2007 | 1.1.2 |
Completion and online help of console based cgadm |
| 26.06.2007 | 1.1.2 |
Added view cache for faster view execution This also solved the compiler problem occured on Mac OS X Since the view was compiled on execution time, a static CegoAction ( derived from Cego Parser ) instance was declared With the new static parse table, this lead to a strange memory allocation problem on OSX Since this on execution compile was not useful any the code change for precompiled views would have taken place anyway, this effect was not analysed in more detail Reduction of complexity by relocation of network utility classes CegoNet and CegoNetHandler to base classes Net and NetHandler |
| 26.06.2007 | 1.1.1 |
Fixed a bug occured with distinct option and select * Fixed a bug for correct function/procedure load Added procedure and function cache for faster procedure execution |
| 24.06.2007 | 1.1.0 |
It seems, there are some compiler problems with Mac OS X 10.4.10 and gcc 4.0.1 With the current update, cego crashes during select in a thread with a strange behaviour also in gdb Perhaps Xcode 2.4.1 might help ... Anyway, for 2.x multinode development, switch of development platform to Solaris is required Added buffer cache disk read/write information to BufferPool::poolInfo and CegoAdm GUI |
| 23.06.2007 | 1.1.0 |
Added distinct option Fixed a bug in CegoObjectManager. The locking mode was not initialized correctly for the persistent required system pages This problem was detected on Solaris x86 since table dictionary page was not fixed persistent Fixed a bug in CegoIndexCursor occured with select * from t1 where a > 10000, In case of double index entries with value 10000, the query returned zero result tuples Added dbthread abort service for admin thread. Long running queries may be aborted by this service |
| 21.06.2007 | 1.1.0 |
Added db thread state connected for more detailed information about db threads ( READY, CONNECTED, BUSY ) Completed sub select queries ( = select , in select , not in select ) and null/not null-Predicate |
| 18.06.2007 | 1.1.0 |
Increased performance with new optimized dragon 1.2.10 generated parser ( about 50% ) The performance benefit results from the improved XML handling but also the native Cego SQL parsing |
| 17.06.2007 | 1.1.0 |
Bug fixes for protocol change ( occured Solaris ). Tests for logfile shipping continued. Since I have a Solaris x86 based host up and running, multi node testing can be done by using Solaris zones |
| 16.06.2007 | 1.1.0 |
Network protocol change. Now msg size is transferred at the beginning to provide larger messages |
| 14.06.2007 | 1.0.12 |
More work on distributed stuff for version 2.x. TableSet copy and remote logging tested |
| 12.06.2007 | 1.0.12 |
Preparation work for version 2.x Some cleanup of CegoGlobalSpace and mediator connection tests from other machine |
| 09.06.2007 | 1.0.12 |
More work on CegoAdm Java GUI Fixed some occured incompatibilties and added threadInfo panel Fixed a problem occured on Linux in CegoXThreadPool::nextRequest:
...
CegoNetHandler **pRequest = _requestQueue.First();
if ( pRequest )
{
_requestQueue.Remove(*pRequest);
CegoNetHandler *pN = *pRequest;
unlockQueue();
return pN;
}
...
to
...
CegoNetHandler **pRequest = _requestQueue.First();
if ( pRequest )
{
CegoNetHandler *pN = *pRequest;
_requestQueue.Remove(*pRequest);
unlockQueue();
return pN;
}
...
Heavy insert + index creation tests on Linux ( OpenSuse, TableSize : 6 * 10^7 )
System runs stable
|
| 07.06.2007 | 1.0.12 |
Adaptions for 64bit support ( Solaris x86 ) Added threadinfo in CegoAdm |
| 03.06.2007 | 1.0.12 |
Changed XML_CEGOERROR_DOC to XML_ERROR_DOC |
| 18.04.2007 | 1.0.12 |
Preparation for further subselect queries ( in, not in, subquery comp ) Proceed with user documentation |
| 17.04.2007 | 1.0.12 |
Implementation of string functions instr, locate, replace, substr, length Some fixes for null values in CegoDbHandler |
| 15.04.2007 | 1.0.12 |
Some reorganisation of CegoSelet::getFacField and friends This is still no clean solution. All function evalation should be capsulated Parser preparation for further string functions instr, locate, replace, substr, length |
| 14.04.2007 | 1.0.11 |
Alter statement basically works ( adding and removing columns ) Some corrections for datatype handling in CegoOutut and CegoDbHandler class First public beta release. |
| 13.04.2007 | 1.0.11 |
Fixed out-parameter handling for stored procedures Now out parameters are registered implicit if not already set up in masterblock This is useful for calling procedures via DBD or JDBC driver Proceed with alter query implementation. Introduced CegoAlterDesc as container class |
| 11.04.2007 | 1.0.11 |
Some adaptions to the configure.ac file Some performance improvements for table inserts CegoTableManager::insertDataTable without table-lookup has been introduced.This saves one call of CegoObjectManager::getObject() Some fixes and performance improvements regarding log file recovery Proceed with user documentation |
| 10.04.2007 | 1.0.11 |
Some Solaris related fixes. Tested the ZFS based online concept. It works. |
| 09.04.2007 | 1.0.11 |
Null values have not encoded correctly CegoTableManager::encodeFVL The problem was fixed there. Proceed with user documentation |
| 08.04.2007 | 1.0.11 |
Some fixes for online backup and subsequent recovery Now online backups are possible ( using the checkpoint escape command ) and complete recovery can be performed using the cgadm recovery commands |
| 07.04.2007 | 1.0.11 |
More work on backup and recovery. This results in some rework of the checkpointing and logile handling methods Archive log mode basically works |
| 06.04.2007 | 1.0.11 |
Added pidfile to access pid of current running cego daemon Implementation of local archive logs in CegoLogThreadPool::shiftRedoLogs started Added synchronization command for cgadm. An escape command argument can be given to the sync command This can be used to perform a backup of the datafiles for online backup. ( better : use Solaris ZFS snapshots to minimize buffer pool locking time ) |
| 04.04.2007 | 1.0.11 |
Completed client library for stored procedure return and out parameter retrievel ( CegoDbHandler::getProcResult ) |
| 03.04.2007 | 1.0.11 |
Introduced type map in CegoDataType ( for better type mismatch error message ) Fixed type check in CegoQuery::execute ( Insert case ) Catched Cntrl-C in cegoclt |
| 01.04.2007 | 1.0.10 |
Basic implementation of the DBD driver is done ( connection, execution, fetching, parameter handling works ) See cego DBD blog for more information. The DBD implementation required some cleanup operations of the cego client library ( isolation of server only methods to derived CegoGlobalDbHandler class ) Public release Please note: Since there was missing a header include in some modules, the release was corrected and uploaded again. If you have some compile problems, please download again. |
| 31.03.2007 | 1.0.10 |
Started with implementation of perl DBD driver. Derived the required code from the SQLite driver implementation. Since a C++ class usage is required, the XS code has patched a lot ... C++ integration together with DBI includes seems to work DBI connect to cego db works |
| 30.03.2007 | 1.0.10 |
Fixed writeAllow logic in BufferPool |
| 26.03.2007 | 1.0.10 |
Changed update statement to treat expressions Update statement generation for stored procs fixed Import/export of empty tables fixed ( added empty stream row element ) Fixed a problem with lock leak procedure cursor After proc block termination, cursors have not been cleaned up |
| 25.03.2007 | 1.0.9 |
The update statement did not work correctly. Some redesign of the update algorithm was required. To avoid any temporary conflicts with existing unique indexes, we force a transaction now, wherein the update occurs ( subsequent delete and insert ) |
| 22.03.2007 | 1.0.9 |
BufferPool optimization for creating large index tables : Instead of writing a checkpoint, dirty pages are written to datafile. To avoid data inconsistency, this is just allowed in case of index creation. Reduced BUPMNG_MAXFIXTRIES parameter from 100 to 25. This improved performance dramatically. As a consequence, buffer cache filling rate has been reduced. |
| 18.03.2007 | 1.0.9 |
Added drop statement for foreign keys Bug fixes on foreign key handling Bug fixes on import/export handler |
| 17.03.2007 | 1.0.9 |
Added view and proc objects to import / export Introduced libCego as a client library Isolated Import and export to CegoXPorter |
| 16.03.2007 | 1.0.8 |
Public release |
| 12.03.2007 | 1.0.8 |
More work on user management. Admin users introduced. |
| 12.03.2007 | 1.0.8 |
Proceed with user management. Basic management works |
| 11.03.2007 | 1.0.8 |
Moved fkey check in CegoTableManager::insertTableData after tuple insert to treat self refering foreign keys ( same table, same row ) Added fkey check at foreign key creation time Added admin feature to add new datafiles Fixed thread termination synchronization for database shutdown ( Joining db, log and admin threads after terminate signal ) Started with user management |
| 06.03.2007 | 1.0.8 |
Another work on import/export Export and import for tables, indexes and foreign keys basically works |
| 06.03.2007 | 1.0.8 |
More work on import/export ... |
| 05.03.2007 | 1.0.8 |
Started with import/export admin features. This requires added streaming features in the XML suite New streaming classes CegoExpOutStream and CegoImpInStream introduced Rework of CegoAdm done Basic XML tableset export works now |
| 04.03.2007 | 1.0.8 |
Small fix in CegoSelect to correct group aggregation values Small fix in CegoFieldValue copy constructor to set _pV to 0 |
| 04.03.2007 | 1.0.7 |
Public release |
| 03.03.2007 | 1.0.7 |
Fixes on index deletion algorithm. In case of non-unique index values, wrong entries have been removed This has been fixed by comparing the datapointer for the data tuples. This is implemented in the method CegoIndexManager::searchDataPointer() Changed MINFREE to dynamic MINFREERATIO in CegoDefs.h and CegoBufferPage to avoid minfree exceptions Modified cegoblow to blow arbitrary queries ( insert / delete ) and also to generate sql-load file ( if hostname and port arguments ommitted ) Public release |
| 28.02.2007 | 1.0.6 |
Testing of new index deletion algorithm Added some missing releaseDataPtrUnlocked calls to avoid buffer fix leaks Public version released |
| 26.02.2007 | 1.0.6 |
Since in case of index entry deletion, it is not enough to propagate the decrease of a subnode to its parent,
a new method CegoIndexManager::propagateRotation was added. RL-Rotations may lead to unbalanced subnodes, which may be treated in a dedicated step. Deletion of index entries in AVL trees seems to be pretty complicated ... To handle the rebalancing during index deletion, the method propagateRotation was extended and renamed to rebalanceNode Now all rebalancing analysis and treatment for any unbalanced node situation is managed by this method Basically works ! Fixed the count(*)-NULL bug. ( NULL is printed for count(*) = 0 ) |
| 25.02.2007 | 1.0.6 |
Fixed index value handling for null values. For this, the length of the data field is stored with the index field value Fixes a bug in group aggregation ( first aggregation was not handled ) There seams to be a bug in the index deletion algorithm. This occured by testing the new index value handling Fixed some of the problems in CegoIndexManager::deleteIndexTableData. There are still some open problems regarding index balancing ... |
| 19.02.2007 | 1.0.6 |
Some bug fixes on the improved join construction Corrections done for null value handling in class CegoFieldValue und CegoDbHandler Proceed with HTML guide |
| 18.02.2007 | 1.0.6 |
Improved join performance achieved by extended CegoAttrCond class Now select queries like select count(*) from t1, t2 where t1.a=20 and t1.a = t2.a;will use index a on t1 and t2. Index search value for table t2 is set up during the join after evaluating t1.a value An execution plan may look like CEGOCLT > plan select * from t1 , t2 where t1.a=42 and t1.a = t2.a; Execution Plan : Joining t1(t1_1) IndexCondition -> a = 42 Joining t2(t2_2) IndexCondition -> a = t1_1.a ok ( 0.003 s ) |
| 17.02.2007 | 1.0.6 |
OrderSpace implementation basically works Added plan statement to show select execution plan |
| 12.02.2007 | 1.0.6 |
Started with OrderSpace implementation ( for tuple ordering in select query) This requires three new classes called CegoOrderEntry, CegoOrderSpace and CegoOrderCursor |
| 11.02.2007 | 1.0.6 |
Grouping clause basically works ( without having ) |
| 10.02.2007 | 1.0.5 |
Redesign of CegoSelect::nextTuple and CegoSelect::evalSelection to prepare for grouping clause Public release |
| 09.02.2007 | 1.0.5 |
Fixed int-alignment in CegoIndexEntry and CegoFieldValue ( detected on HP/UX ) |
| 07.02.2007 | 1.0.5 |
Syntax extension for group by and order clause Started with design of grouping |
| 04.02.2007 | 1.0.5 |
Proceed with module cleanup ( 65 / 75 treated ) Fixed missing joinbuf reference for like-clause attributes ( problem, if the atribute does not appear in selection list ) Exception throw for unknwon attributes ( was ignored ) : select foo from t1 Module cleanup finished |
| 03.02.2007 | 1.0.5 |
Several fixes for new locking policy Transactions now are mainly working, rollback after db crash still not handled Completed date2str function implementation HTML documentation extension regarding transactions |
| 30.01.2007 | 1.0.5 |
Introduced defensive locking with r/w-locks and locking timeout support for deadlock situation |
| 28.01.2007 | 1.0.5 |
Reactivation of transaction functions Provided dump function to dump any user, system or rbseg table to client |
| 27.01.2007 | 1.0.5 |
Fixed thread pool socket cleanup Select query abort handling fixed |
| 27.01.2007 | 1.0.4 |
Added fixeddatatype ( used for currency ) Public alpha release of version 1.0.4 |
| 20.01.2007 | 1.0.4 |
Introduced is-like predicate clause ( needed for Jacc ) |
| 20.01.2007 | 1.0.4 |
Several bugs fixed regarding procedures and functions, occured by developing the Cego sample application Jacc |
| 16.01.2007 | 1.0.4 |
Integration of decimal data type |
| 15.01.2007 | 1.0.4 |
Proceed with user guide change primary index create statement ( primary index name is now alway <tablename> + _pidx ) |
| 14.01.2007 | 1.0.3 |
Test of the new indexmanager Public release |
| 13.01.2007 | 1.0.3 |
An ugly bug took me almost 2 days to fix. In CegoIndexManager::insertIndexTable, the index entries have not been claimed and released This lead to an corrupted index, but just in case of page relocation of the buffer bool |
| 11.01.2007 | 1.0.3 |
Index build with height logic now works ( deletion still to do ) Introduced a check index command to verify consistency of index |
| 08.01.2007 | 1.0.3 |
Redesign of CegoIndexManager. Since after node rotation, the balance values of the index entries could not be set obviously to correct values,
I decided to switch from three value balance attribute to height value of subtree. This involves some code changes in CegoIndexEntry and CegoIndexManager |
| 06.01.2007 | 1.0.3 |
Proceed with user guide Changed procedure variable reference syntax for assign statements and proc call statements Fixed a locking bug in CegoGlobalTableManager::createLocalIndexTable |
| 05.01.2007 | 1.0.3 |
Added procedure variable evaluation for select statement Procedure vars now are referenced with the colon sign to distinguish from table attribute references Fixed a locking bug occured by dropping procedures Proceed with user guide |
| 04.01.2007 | 1.0.3 |
Cego protocol file ( cego.log ) now customizable via command line argument Changed thread pool queue locking to dedicated semaphores Now NETMNG_SELECT_TIMEOUT in CegoDefs.h set to 1500000 Fixed a bug in CegoGlobalManager::updateLocalDataTable , update schema was not set up correctly for index based updates Fixed a bug in CegoProcFetch::fetch, proc variable was net set up correctly |
| 03.01.2007 | 1.0.3 |
Small fixes on cgclt Heavy tests on the backend with large tables and corresponding indexes ( 8*10^6 tuples ) For a good performance, actually the index should fit into the bufferpool Increased NETMNG_SELECT_TIMEOUT from 3000 to 500000 usec to avoid CPU usage of the thread pool threads. This increased the select count(*) performance of 8 mio tuples from 98sec to 14 sec. |
| 02.01.2007 | 1.0.3 |
Lock consolidation for locks in CegoBufferPool and CegoFileHandler Now all mutex are manged by the CegoLockHandler class. This fixes another locking problem with the locks in CegoBufferPool and CegoFileHandler |
| 01.01.2007 | 1.0.3 |
Memory leak fixed located in xml library ( fixed with xml 1.0.2 ) Locking problem fixed in CegoBufferPool and CegoFileHandler Cleanup of CegoDefs.h |
| 31.12.2006 | 1.0.2 |
Introduced msg receive timeout in NetHandler class Proceed with module cleanup ( 42 / 75 treated ) Public alpha release of version 1.0.2 |
| 30.12.2006 | 1.0.2 |
Cleanup on CegoGlobalTableManager with object protection Still a lot of todos for Version 2 Proceed with user guide |
| 29.12.2006 | 1.0.2 | More work on object protection for create/drop operations Object protection now handled via GlobalSpace::useObject and GlobalSpace::unuseObject methods |
| 28.12.2006 | 1.0.2 |
Fixes on query aggregation functions done ( avg, min, max ) Object ( record ) locking introduced to protect table during index build
Bug-Notice to the bug from 15.06.2006 : The issue has been fixes in the meantime. The problem was located in the nextRequest-method of the CegoXThreadPool classes. Code changed from
...
P();
CegoNetHandler **pRequest = _requestQueue.First();
if ( pRequest )
{
_requestQueue.Remove(*pRequest);
V();
return *pRequest;
}
...
to
...
P();
CegoNetHandler **pRequest = _requestQueue.First();
if ( pRequest )
{
_requestQueue.Remove(*pRequest);
CegoNetHandler *pN = *pRequest;
V();
return pN;
}
...
|
| 27.12.2006 | 1.0.2 | LogManager extension for handling object create/alter/drop cglog extension to trace create/alter/drop Changed lsn start values from 0 to 1 for better log handling |
| 26.12.2006 | 1.0.2 |
Proceed with user guide Proceed with module cleanup ( 38 / 75 treated ) |
| 25.12.2006 | 1.0.1 |
Proceed with user guide Proceed with module cleanup ( 27 / 75 treated ) Public alpha release of version 1.0.1 |
| 24.12.2006 | 1.0.1 |
Cleanup on CegoOutput to prepare for datatype handling float, double and bigint type basically work now |
| 21.12.2006 | 1.0.1 |
Started with web based user documentation |
| 20.12.2006 | 1.0.1 |
More work on CegoIndexManager::propagateDecrease which handles tree balancing after index deletion. This is the hardest part of the story. Since many cases have to be treat, it will take a while to make run this stable. Benefit: No reorganization of indexes is required after heavy insert/delete operations First tests for rebalancing after deletion are sucessful Proceed with module cleanup ( 20 / 75 treated ) |
| 18.12.2006 | 1.0.1 |
Cleanup work on IndexManager. Balancing after index deletion is still not done. For this, the rotation operation methods for the AVL index trees have been isolated Now they can be used for balancing after deletion. |
| 17.12.2006 | 1.0.1 |
Cleanup work on stored procedures. Return value handling added to procedures and functions. Minor language extension for retrieving object information ( adding show user [view,index,procedure] ). Bug fixes regarding object dropping. |
| 15.12.2006 | 1.0.1 |
Multithreading tests started. Fixed a locking bug in CegoObjectManager::insertPageData After getNewFilePage, fileId and pageId have not been assigned to the new values, which lead to wrong arguments in lockDataPage call Fixed some (old) issues in the CegoLockHandler class ( from multi-process version ) |
| 14.12.2006 | 1.0.1 |
Started with final code cleanup |
| 13.12.2006 | 1.0.1 |
Prepared SQL function structure in CegoSelect and CegoFacDesc Implementation of first string function LEFT The locking strategy in BufferPool::bufferfix and BufferPool::bufferUnfix seems to be to rough. A locking granularity on hashIds would enable parallel reads and wirtes on different datafiles ... |
| 11.12.2006 | 1.0.1 |
Little syntax extension for date value handling : date( < value > , < format > ) |
| 10.12.2006 | 1.0.1 |
Performance optimization and bugfixing on subqueries A more intelligent strategy is used for query execution preparation ( references and join execution structures are build up now ONE time in the master query ) |
| 09.12.2006 | 1.0.1 |
JDBC now works for Callable Statements ( Stored Procedures ) in a basic way
Source cleanup has been done in accordance to Forte C++ ( Solaris ) Performance tests with insert and select operations habe been done. |
| 02.12.2006 | 1.0.1 |
More workd on JDBC driver and extensions to cego server ( session handling ) |
| 26.11.2006 | 1.0.1 |
Proceed with JDBC Driver, this is still much work ... fixed tableinfo statement and added method CegoObjectManager::getPageCount to retrieve page count information for table objects |
| 25.11.2006 | 1.0.1 |
Tested cego with high volume data ( 10 G ), engine works pretty stable Checking CegoFieldValue value ptr for zero in comparison to catch non-initialized variables Handling session abort in CegoDbThread, CegoAdminThread and CegoLogThread Started with JDBC Driver implementation, basic query works |
| 21.11.2006 | 1.0.1 |
Fixed some alignment problems in CegoTableObject ( occured with Solaris ) Added datetime data type |
| 20.11.2006 | 1.0.1 |
Fixed some memory leaks Fixed some log handler problems |
| 19.11.2006 | 1.0.1 |
Cursor added to precedures Client XML protocol bugfixing Select Aggregation fixing |
| 18.11.2006 | 1.0.1 |
Procedures basically work ( cursor still missing ) Started with null value implementation |
| 13.11.2006 | 1.0.1 |
Cleanup of Cego.def and CegoAction Proceed with procedure implementation Introduction of bool datatype |
| 12.11.2006 | 1.0.1 |
Proceed with procedure implementation Procedures are parsed, stored and loaded now |
| 05.11.2006 | 1.0.1 |
Started with procedure implementation Following classes have been added : |
| 04.11.2006 | 1.0.1 |
Views are basically work fine |
| 01.11.2006 | 1.0.1 |
CegoGlobalTableCursor basically adapted for view handling View are dynamically parsed and loaded if detected from the table cursor Still need some work to get this stuff run ... |
| 30.10.2006 | 1.0.1 |
Foreign keys basically work. Introduced CegoContentObject as an abstract container class for table and view objects. Changed the CegoSelect class to handle CegoContent objects ( requirement for view handling ) |
| 29.10.2006 | 1.0.1 | Foreign key implementation started. View management implementation started. |
| 23.10.2006 | 1.0.1 | Select queries seem to run well again. The join optimizing logic was fixed but also an alignment bug in the CegoIndexCursor::getFieldList method. |
| 22.10.2006 | 1.0.1 |
In terms of view and procedure implementation, the CegoSelect class had to be redesigned. Now there is provided a nextTuple method for controlled retrievel of selected tuples. This is necessary to retrieve tuples in nested views, but also for db cursor implementation. Also the class looks more lean and clean now. |
| 21.10.2006 | 1.0.1 |
The change of CegoObjectEntry had some impact to using classes. Affected classes have been changed. Introduced object classes for views and procedures. |
| 16.10.2006 | 1.0.1 |
Started with implementation of foreign keys. Basic structures are ready. Split of CegoObjectEntry in superclass CegoObject + derived classes CegoTableObject and CegoKeyObject This lead to a cleaner object design. |
| 15.10.2006 | 1.0.1 | Nested Join basically works well ( allquantor results seem to be ok ) |
| 14.10.2006 | 1.0.1 | Further preparation work for nested select queries Cleanup of XML attribute definitions |
| 13.10.2006 | 1.0.1 | Isolation of CegoQuery::select-methods to class CegoSelect |
| 09.10.2006 | 1.0.1 | Made CegoGlobalSpace class threadsafe. Changed CegoBlow Test-Program for direct attach to db. |
| 06.10.2006 | 1.0.1 | Queries work now with new tableset model. Some changes have been required in CegoFileHander::allocatePage() and CegoFileHandler::getHandle() to handle tableset > 1 |
| 05.10.2006 | 1.0.1 | CegoAdm : Fixed some appearance issues in the DataFile Monitor and BufferCache Monitor Cego : Added table startup feature for daemon mode. Made some basic function tests with db queries. cego cores with activated log and treating select queries. Fixed the problem for the activated log |
| 04.10.2006 | 1.0.1 | Again back to CegoAdm. Start and stop of tableset via Admin GUI now basically works. |
|
|
||
| 03.10.2006 | 1.0.1 | Introduction of cego to the public web page |
| | ||
| 25.09.2006 | 1.0.1 | Further work on GUI. Added action panel and separator design. Cleanup and better code design of several JPanels. Looks more beautiful now ... |
| | ||
| 24.09.2006 | 1.0.1 | GUI programming is tough. Spent a lot of time in CegoADM GUI design to find an appropriate appearance. Now all essential node and table set information are displayed pretty nice. |
| | ||
| 22.09.2006 | 1.0.1 | Further work on CegoAdm Java Frontend. Active nodes and tableset are displayed and managed in Jtree structures |
| | ||
| 21.09.2006 | 1.0.1 | Added create and drop tableset services. Introduced table set status values |
| | ||
| 20.09.2006 | 1.0.1 | Started with reprise of the CegoAdm stuff. Back to Java ... |
| | ||
| 18.09.2006 | 1.0.1 | Introduced recovery services to CegoAdmin |
| | ||
| 17.09.2006 | 1.0.1 | Added the file copy service to CegoAdmin |
| | ||
| 16.09.2006 | 1.0.1 | Better help output was designed ( cego -h ) CegoAdminHandler was extended to request db spec information. The CegoLogThread works in a basic form. |
| | ||
| 09.09.2006 | 1.0.1 | some work done on LogManager and friends. Introduced new classes for logfile shipping ( CegoLogThreadPool, CegoLogThread and CegoLogHandler ) |
| | ||
| 04.09.2006 | 1.0.1 | more bugfixing and cleaning regarding the tabsetId extension |
| | ||
| 03.09.2006 | 1.0.1 | some bugfixing in CegoFileHandler and CegoTableManager ( caused by tableset extension ) |
| | ||
| 28.08.2006 | 1.0.1 |
another redesign of the thread structure. Now we have the following thread model:
|
| | ||
| 23.07.2006 | 1.0.1 | transfer of admin data works. Data is transferd via xml to requestor |
| | ||
| 09.07.2006 | 1.0.1 | DB configuration now is described in a XML definition file Introduction of CegoGlobalSpace for meta information handling ( host, tableset and global objecct information ) Introduction of CegoAdmin as admin console client Introduction of CegNet::nextMessage for single threaded message handling Basic testing |
| | ||
| 08.07.2006 | 1.0.1 | Introduction of table set management. This results in a fundamental change of several classes. Current state of code is compile ready but still not tested. |
| | ||
| 03.07.2006 | 1.0.1 | Further work on session handling. Bug fixing on protocol errors |
| | ||
| 02.07.2006 | 1.0.1 | Renaming CegoXMLHandler to CegoSessionHandler. Completion of first draft xml protocol implementation. basic query works now ... |
| | ||
| 27.06.2006 | 1.0.1 | introduced CegoXMLHandler for complete XML protocol encapsulation |
| | ||
| 26.06.2006 | 1.0.1 | table sync works but code is still not very clean ( XML message handling encapsulation ) |
| | ||
| 24.06.2006 | 1.0.1 | further work on table sync function |
| | ||
| 22.06.2006 | 1.0.1 | added pointer alignment to CegoTableManager::encodeFVL and CegoTableManager::decodeFVL ( bus error on Sparc) |
| | ||
| 19.06.2006 | 1.0.1 | introduced mediator, basic sync table function ( SYS_HOST, SYS_TABLEGROUP, SYS_GLOBALOBJECT) |
| | ||
| 18.06.2006 | 1.0.1 | added global getObject feature cleanup of CegoThread xml handling |
| | ||
| 17.06.2006 | 1.0.1 | more work on the global table handling, introduced SYS_GLOBALOBJECT and added node to node communication to CegoGlobalTableManager and CegoThread testing of the first distributed table creation and insert commands |
| | ||
| 16.06.2006 | 1.0.1 | The MT-problem also occurs on the PPC but not on FreeBSD. Added some client protocol enhancements for query and error handling Added tableGroupId attribute to CegoObjectEntry Introduced SYS_TABLEGROUP table in CegoSystemSpace Introduced SYS_HOST table in CegoSystemSpace added several access methods in CegoSystemSpace ( getHostId, addHostInfo, addTableGroup, getTableGroupId, getPrimaryHostId, getHostInfo ) |
| | ||
| 15.06.2006 | 1.0.1 | made some heavy MT-Tests with multiple client against cego daemon. Fixed some synchronisation problems. There is still a memory access problem, if too many incoming requests are handled ( heavy memory requests occur ). Perhaps this is an Mac OS X pthread problem. I have to analyse this bug more detailed ( on Mac OSX/PPC or Solaris ) |
| | ||
| 12.06.2006 | 1.0.1 | introduced client session protocol in CegoThread and CegoClient introduced CegoGlobalTableManager, CegoGlobalTableCursor and CegoQueryHelper for global table handling |
| | ||
| 11.06.2006 | 1.0.1 | changed lsn management to avoid access to SystemSpace in bufferFix ( now managed by CegoDBInfo ) some debug mode enhancements |
| | ||
| 10.06.2006 | 1.0.1 | Integration of native ObjectCursor into CegoTableCursor ( usage in CegoQuery methods ) This is a preparation for the global approach because of SPARC memory alignment requirements type change of short to int some cleanup of semantic actions for Condition handling bug fix in CegoObjectManager ( removed inheritance from CegoLockHandler ) |
| | ||
| 06.06.2006 | 1.0.1 | better exception handling of CegoThread signal handling in CegoThreadPool |
| | ||
| 05.06.2006 | 1.0.1 | Code is running again with new CegoThreadPool and CegoNet classes |
| | ||
| 29.05.2006 | 1.0 | Transition of the most old dbeng PQL classes to CEGO Modification for thread save operation was made ( thread interface is CegoBufferPool ) | |
| 28.05.2006 | 1.0 | Build up basic thread pool framework and network classes ( CegoThreadPool, CegoThread, CegoNet, CegoNetHandler ) |
| |
||