× News Cego SysMT Croom Web Statistics Impressum
SysMT Logo

Cego Change Log

Back to Cego

In the following, change log entries for the managed software packages is shown

Last 10 30 100 1000 10000 entries

Last 1000 log entries in change log
Category Date Version Log
cego 26.03.2024 2.48.46 Version released
cego 26.03.2024 2.48.46 Elimination of a cout in CegoQueryCache::QueryCacheEntry::cleanCache
cegojdbc 17.03.2024 1.10.6 Version released
cegojdbc 17.03.2024 1.10.6 Elimination of several warnings in code caused by legacy constructs
cego 17.03.2024 2.48.45 Version released
cego 17.03.2024 2.48.45 Added patches for return on update handling to treat value handling in return list. The order in the return list must be stricter, otherwise field evaluation via FLA caching in CegoFactor fails.
Furthermore, returnList has been localized ( new method CegoQueryHelper::localizeFL ) to ensure correct values after update cursor ist closed.
cego 15.03.2024 2.48.44 Version released
cego 15.03.2024 2.48.44 Patch added in CegoXPorter to improve exception handling for invalid export file names
cego 06.03.2024 2.48.43 Version released
cego 06.03.2024 2.48.43 Added patch in CegoSelect::evalSchema to treat null values for union all, added patch in CegoFunction::clone to treat counterId value
cegojdbc 28.02.2024 1.10.5 Version released
cegojdbc 28.02.2024 1.10.5 Added patch for CegoStatement.executeQuery, result set handling was not done correctly, if result sets are retrieve via getResultSet statement method
cego 13.02.2024 2.48.42 Version released
cego 13.02.2024 2.48.42 In CegoDistCursor::nextTuple, added query aborted check. This is needed to abort long running inner and outer join selects
cego 10.02.2024 2.48.41 Version released
cego 10.02.2024 2.48.41 Patch added in CegoProcedure::cleanup to set pMasterBlock to zero. In some cases, the setup master block lead to usage leaks for user function calls. See check110.sql as a sample to cause this problem.
cego 03.02.2024 2.48.40 Version released
cego 03.02.2024 2.48.40 Small patch on CegoDistManager::startTableSet, improvement for exception message added
cego 27.01.2024 2.48.39 Version released
cego 27.01.2024 2.48.39 Patch added in CegoAdminThread::srvParameterInfo to list current QUEUEDELAY value and configured scandal formats ( SCANDATETIMEFORMAT )
cego 08.01.2024 2.48.38 Version released
cego 08.01.2024 2.48.38 Patch added in CegoQueryHelper::evalBetween The comparison ( f2 <= f1 && f1 <= f3 ) has changed to ( f1 >= f2 && f1 <= f3 ) This forces a type cast to f1 datatype in case mismatched datatypes. This might be useful for queries like select a from v1 where a between '30.11.2023' and '31.12.2023'; where a cast should be done to date time value ( instead of string )
cego 19.12.2023 2.48.37 Version released
cego 19.12.2023 2.48.37 Patch added in CegoQueryHelper::encodeFL and CegoQueryHelper::decodeFL. Die dim field value was still not treated. This might lead to wrong fixed values for update operations during crash recovery operation
cegobridge 13.12.2023 1.6.5 Version released
cegobridge 13.12.2023 1.6.5 Fix for renamed scandate function added
cego 13.12.2023 2.48.36 Version released
cego 13.12.2023 2.48.36 Fix in CegoXPorter for view import. For view creation, field entries in schema must be setup with a unique id ( analog to view creation via sql command )
cego 08.12.2023 2.48.35 Version released
cegojdbc 08.12.2023 1.10.4 Version released
cegojdbc 08.12.2023 1.10.4 Adaptions made for cego-2.48.35
cego 08.12.2023 2.48.35 Renaming date function dateformat to scandate since this is rather a scanning function. Please note, that cegojdbc uses this function in CegoPreparedStatement class. The renaming is adapted in ceegojdbc-1.10.4
cego 16.11.2023 2.48.34 Version released ( Please note : View reload required ! )
cego 16.11.2023 2.48.34 In CegoDistCursor::getTuple, the tuple retrievel has been changed for view objects. Instead of overwriting the given pFLA, tuple are first retrieved in an empty fvl. Then just the required attribute values in the pFLA are updated. This should result in a better performance but also in a consistent fla structure for FLA caching ( in CegoFactor, _flaCached variable must not be reset if FLA has been setup ) This patch required reload of all view objects ( since attr for view schema must be unique, see evalSchema patch before ) and is still under observation.
cego 16.11.2023 2.48.33 Version released
cego 16.11.2023 2.48.33 Add patch in CegoFactor::setFieldListArray, _flaCached again is set to false since the field list in the the array may change ( e.g. for outer join queries used in views )
cego 14.11.2023 2.48.32 Version released
cego 14.11.2023 2.48.32 Patch added to support nested case conditions like
case when t2.a = 1 
then
   case when  t2.b = t1.b
   then
	'VALID'
   else
         'INVALID'
   end
else
   'VALID'
end as status
For this, in CegoAction, pCaseCond handle has been stacked
cego 13.11.2023 2.48.31 Version released
cego 13.11.2023 2.48.31 Added patch in CegoSelect::evalSchema. At the end of the method, schema ids are calculated to provide unique attribute ids for views
lfcbase 12.11.2023 1.18.6 Version released
lfcbase 12.11.2023 1.18.6 Patch added in Sleeper class to support larger values for milliSleep and microSleep. For this, also input parameter type has changed from int to unsigned long
cego 31.10.2023 2.48.30 Version released
cego 31.10.2023 2.48.30 Patch added for CegoCaseCond::evalField to eval appropriate datatype. If the case condition contains null type this was not done correctly
cego 08.08.2023 2.48.29 Version released
cego 08.08.2023 2.48.29 Fix added in CegoAggregation::decode, c flag was not decoded correctly ( wrong order in memcpy function )
cegodbd 30.07.2023 1.5.3 Version released
cegodbd 30.07.2023 1.5.3 Small patch in dbdimp.h ( elimination register variable ) to compile with FreeBSD 14
cego 29.07.2023 2.48.28 Version released
cego 29.07.2023 2.48.28 Fix added in CegoProcQueryStmt::execute, after execution of the query, the cleanUp method must be called to avoid leaks regarding stored proc object use ( this corresponds to the new optimized stored proc handling )
cego 27.06.2023 2.48.27 Version released
cego 27.06.2023 2.48.27 In CegoFunction constructors, added _pProc = 0 initialization for decoding and fromElement constructors. This avoid a set fault, in case of database recovery, when a predicate expression with user function is dedoded from log file
cego 14.06.2023 2.48.26 Version released
cego 14.06.2023 2.48.26 Patch addd for tableset stop procedure. With the new optimized stored procedure handling ( CegoFunction module ), the object cleanup must be done BEFORE the tableset is finally stopped. Otherwise an uncaught exception occurs ( tableset not online ) which results in database crash after tableset shutdown. Several modules have been modified for this
cego 12.05.2023 2.48.25 Version released
cego 12.05.2023 2.48.25 Patch added in CegoFunction to avoid useObject leaks
cego 11.05.2023 2.48.24 Version released
cego 11.05.2023 2.48.24 Performance improvement added for stored procedures. In CegoFunction, the procedure handle now is stored after first stored procedure call ( instead of freeing the handle and request it again with the next call ) So for subsequent function calls, the handle is already available, which improves stored procedure execution time significantly.
As a consequene, code has been added for cleanUp the handle at the end of the query ( object is also in use during the whole query with CegoDatabaseManager::useObject and must be unused by cleanup )
cego 28.04.2023 2.48.23 Version released
cego 28.04.2023 2.48.23 Patch added in CegoTableManager::updateTuple, reactivated evalExtTableReferences method call, since this is needed for update with nested selects, where external attributes are referenced in combination with enabled query cache ( e.g. update t1 set a = ( select a from t2 where t1.b = t2.b ) )
cegojdbc 13.04.2023 1.10.3 Version released
cegojdbc 13.04.2023 1.10.3 Patches in CegoPreparedStatement to replace date function with dateformat function
cego 05.04.2023 2.48.22 Version released
lfcbase 05.04.2023 1.18.5 Version released
cego 05.04.2023 2.48.22 Changes in CegoAdmScreen::DBThread panel to show long queries with new Screen2::Message panel
lfcbase 05.04.2023 1.18.5 Improvements for Screen2:Message panel
lfcbase 30.03.2023 1.18.4 Version released
lfcbase 29.03.2023 1.18.4 Added scrollable feature to Screen2::Message, so longer messages can be handeled now be the panel
cego 21.03.2023 2.48.21 Version released
cego 21.03.2023 2.48.21 Fix added for CegoAdmScreen in tableset parameter panel. Initfile was not setup correctly ( null value indicated, should be empty string )
cego 15.03.2023 2.48.20 Version released
cego 15.03.2023 2.48.20 Added default append mode setting for tableset.
WIth cgadm the appendmode can be setup ( e.g. enable appendmode for TS1 )
It may be useful to have enabled appendmode at default for insert intensive tableset configurations
lfcxml 09.03.2023 1.3.6 Version released
lfcxml 09.03.2023 1.3.6 Since there occur some build problems on FreeBSD, a rebuild of configure and Makefile.am with ( a newer version of ) autoreconf on Ubuntu Linux system was done
cego 06.03.2023 2.48.19 Version released
lfcbase 06.03.2023 1.18.3 Version released
cego 06.03.2023 2.48.19 Added parameter menu item to CegoAdmScreen tableset action menu to customize tableset sortareasize, autocorrect, checkpoint interval and init file
cego 05.03.2023 2.48.19 Added Edit menu to CegoAdmScreen to modify tableset entries in status DEFINED
lfcbase 04.03.2023 1.18.3 Code cleanup, made Screen2:Panel:~Panel virtual to avoid compiler warnings
cego 04.03.2023 2.48.19 Code cleanup, elimination of same warnings regarding unreachable case statements ( no issues, just to satisfy compiler )
cego 03.03.2023 2.48.18 Version released
cego 03.03.2023 2.48.18 Some adaptions for extended Screen2 interface with refresh customizing.
lfcbase 03.03.2023 1.18.2 Version released
lfcbase 03.03.2023 1.18.2 Opimization in Screen2 to customize screen refreshes ( introduced virtual method Panel::doRefresh )
cego 03.03.2023 2.48.17 Version released
cego 03.03.2023 2.48.17 Fixes added for CegoAdmScreen, to avoid too many admin requests, backup panel and data file panel are just refreshed initially and after add objects.
Fix added in CegoObjectManager::alterObject, the getNewFilePage has been changed to type CegoObject::SYSTEM. Otherwise, a page from a tuple datafile is allocated, which results in strange effects
lfcbase 27.02.2023 1.18.1 Version released
lfcbase 27.02.2023 1.18.1 Patches added for clean MinGW compile. It seems, the MinGW people took some changes in the system libraries API ( e.g. mkdir, sigaction and ioctl ) No effect for Unix compiles
cego 15.02.2023 2.48.16 Version released
cego 15.02.2023 2.48.16 Fix added for CegoAdmScreen, the data file root path still was not added to new datafiles in the tableset add datafile mask
cegobridge 26.01.2023 1.6.4 Version released
cego 26.01.2023 2.48.15 Version released
cegobridge 26.01.2023 1.6.4 Fixes for new dateformat function ( cego-2.48.13 and up ) and more sophisticated database procedure use ( select in procedure )
cego 26.01.2023 2.48.15 Fixes added in CegoAction and CegoSelect to treat cego parser with tablemanager pointer = 0. This is needed for cegobridge to parse procedures and generated other db specific code
cego 24.01.2023 2.48.14 Version released
cego 23.01.2023 2.48.14 Fix added in CegoObjectManager::alterObject, after freeing old page entry, page should be unfixed with marked as dirty. In the main loop, unfix has been changed to dirty = false
cego 22.01.2023 2.48.13 Version released
cego 18.01.2023 2.48.12 Version released
cego 18.01.2023 2.48.12 Added function dateformat which can be feeded with two expressions to return a datetime value from a given format and value string ( analog to date(x,y) which expects constant input values )
cego 17.01.2023 2.48.12 Added more date functions to the datefunc package. Now there are the following date functions available

int second(datetime d)
int minute(datetime d)
int hour(datetime d)
int day(datetime d)
int month(datetime d)
int year(datetime d)
datetime plusHour(datetime d, int hr)
datetime plusDay(datetime d, int dy)
datetime plusMonth(datetime d, int mt)
datetime plusYear(datetime d, int yr)
datetime minusHour(datetime d, int hr)
datetime minusDay(datetime d, int dy)
datetime minusMonth(datetime d, int mt)
datetime minusYear(datetime d, int yr)
cego 17.01.2023 2.48.12 In CegoMain, added DEFAULTDATETIMEFORMAT1 to dateFormat list to also parse this format for native cast from string to datetime
cego 05.01.2023 2.48.11 Version released
cego 05.01.2023 2.48.11 Added Query Cache menu to CegoAdmScreen to manage query cache parameters
cegobridge 03.01.2023 1.6.3 Version released
cegobridge 03.01.2023 1.6.3 Fixes added
cego 03.01.2023 2.48.10 Added lfcbase Screen2 support to CegoAdmScreen
lfcbase 03.01.2023 1.18.0 Uplift to Version 1.18.0 with released Screen2 interface
lfcbase 26.12.2022 1.17.5 Added Screen2 class, which is next generation implementation of Screen in a more object oriented manner. See Screen2Test.cc in the basecheck directory how to use Screen2
cego 21.12.2022 2.48.9 Version released
cego 21.12.2022 2.48.9 Fixes added for alias object usage ( e.g. in combination with views )
cego 20.12.2022 2.48.9 Added defTabSetId parameter to several toChain methods to write views, procedures and triggers without explizit tableset references. This migtht be useful, if a tableset dump just references objects for a single tableset and it should be loaded to a tableset with a different name. ( e.g. select a from t1@TS1 is written as select a from t1, if active tableset is TS1 )
cego 16.12.2022 2.48.8 Version released
cego 15.12.2022 2.48.8 Fix added in CegoAction::execViewCreate(), in case of grace mode, empty schema must be stored with created view to force recompile via CegoDistManager::reloadView
cego 28.11.2022 2.48.7 Version released
cego 28.11.2022 2.48.7 Fix for CegoSelect::nextTuple, _cacheSchema was not setup for union selects in case of empty result of the first union entry. This leads to an exception with cache claim leak. The claim leak has also been fixed by adding a cleanUp call to CegoSelect destructor
cego 26.11.2022 2.48.6 Version released
cego 26.11.2022 2.48.6 Introduced grace mode for graceful object creation. Using this mode, views and procedures can refer to objects, which still not exist. This mode might be useful for initial loads ( e.g. from a dump file ) to avoid dependency errors
cego 25.11.2022 2.48.6 Fixes added for CegoClient dump and batch mode, has been tested with more complex acc application
cego 24.11.2022 2.48.6 Fixes added in CegoClient for dump mode. Some attribute and attribute values have not treated correctly ( default values, dimension for fixed attributes, clob values )
cego 24.11.2022 2.48.6 More improvements for online backup / restore. Branch id is now added to archive log filename, so in case of new created or data file modified tablesets, the corresponding logfiles can be filtered. Archive logfile information for ready-for-archive and archived logfiles has been added to archive log information
cego 22.11.2022 2.48.5 Version released
lfcbase 22.11.2022 1.17.4 Version released
cego 22.11.2022 2.48.5 Further improvements for cgadm screen mode. confirm dialogs added and backup log history indicated for online backups in case of errors
lfcbase 22.11.2022 1.17.4 Further improvements for Screen::showFormBox and showInfoBox ( selected rows and newline treatment )
cego 21.11.2022 2.48.4 Version released
cego 21.11.2022 2.48.4 Added backup branch option for backup manager. So just valid backup files can be treated by the manager. New sample backup manager available in samples/chkdb
lfcbase 20.11.2022 1.17.3 Version released
cego 20.11.2022 2.48.3 Version released
lfcbase 20.11.2022 1.17.3 Fix for some geometries in Screen::showFormBox
cego 20.11.2022 2.48.3 Introduced Backup branch id for online backup verification. Due to datafile page id constraints, just online backups can be recovered inside one backup branch. Creation of a tableset and adding a datafile to a tableset violates this contraint, so a new backup branch is created.
cego 18.11.2022 2.48.2 Version released
lfcbase 18.11.2022 1.17.2 Version released
cego 18.11.2022 2.48.2 Small adaptions for cgadm screen mode window sizes ( corresponds to lfcbase-1.17.2 )
lfcbase 18.11.2022 1.17.2 Improvements done for Screen::showFormBox ( scrolling content in input mask )
cego 17.11.2022 2.48.1 Version released
lfcbase 17.11.2022 1.17.1 Version released
cegojdbc 16.11.2022 1.10.2 Version released
cegojdbc 16.11.2022 1.10.2 Added support for cego 2.48
cego 16.11.2022 2.48.0 Version released
lfcbase 16.11.2022 1.17.0 Version released
cego 15.11.2022 2.48.0 Uplift to next minor version, since many changes habe in CegoAdmScreen class ( was CegoAdmMon ). This requires lfc-1.17.0. Several stabilization fixes also have been added. For database xml file, a unique database id has been introduced to validate ticket file from performed online backups ( db id must match )
lfcbase 15.11.2022 1.17.0 Uplift to Version 1.17.0 since many changed have been made to Screen class ( was Monitor ). The changes require a recompile for consuming packages ( here : cego )
cego 13.11.2022 2.47.37 Fix added in CegoXMLSpace for user and role create routines. In case of already defined entities, exception was thrown before xml lock release Fix added in CegoXMLSpace::getActiveTableSet to also retrieve offline tablesets via includeOffline flag. This is needed for CegoLogThreadPool to archive occupied logfiles for tablesets in status offline ( for other reasons, runstate is set now at the beginning of the tableset stop procedure )
lfcbase 13.11.2022 1.16.8 Improvements done for ncurses based Monitor class. Added confirm box and improved form box
cego 08.11.2022 2.47.36 Version released
cego 08.11.2022 2.47.36 Fix added in CegoTableManager::updateTuple, for the given expression list, contained subqueries must be retrieved and analyzed for external table references. Since the external count was not evaluated correctly, this lead to a incomplete CegoSelect::getQueryId result. With enabled query cache, the following update did not work correct : update posrule pr set artid = ( select artid from article a where a.artnr = pr.artnr );
lfcbase 03.11.2022 1.16.7 Version released
lfcbase 03.11.2022 1.16.7 Some patches added to compile with newer MinGW framework ( Tested on Windows 10 )
cego 24.10.2022 2.47.35 Version released
cego 24.10.2022 2.47.35 Grammar fix in Cego.def to ensure _returnOnFirst variable is set to false for non return update statements ( added production NoUpdateReturnOpt )
cego 23.10.2022 2.47.34 Version released
cego 23.10.2022 2.47.34 Added join optimization fix in CegoSelect::buildJoinTables. Inadequate predicates ( e.g. not equal compare ) are not priorized for table join order any more. For this the method CegoPredDesc::prioOnJoin has been introduced
cego 19.10.2022 2.47.33 Version released
cego 19.10.2022 2.47.33 Fix in CegoFunction::getId, the GETCOUNT function still was not treated Some cleanup of source file was done (removed tilde files )
cego 30.09.2022 2.47.32 Version released
cego 30.09.2022 2.47.32 Fix added in CegoFactor and CegoFieldValue. To get the factor id for query cache management, a dedicated method was introduced in CegoFieldValue ( getId ) This method uses for DATETIME values valAsChain(true) ( to evaluate current timestamp in case of sysdate values ) and for all others toChain() ( to distinguish x = null and x = 'null' )
cego 24.09.2022 2.47.32 Added nohead option to cgclt to print out query results with no head information ( useful in combination with raw mode to retrieve pure data )
cego 23.09.2022 2.47.31 Version released
cego 23.09.2022 2.47.31 Fix added in CegoTableManager::alterDataTable, the altering table object has to be retrieved completely via getObject to setup data page id and last data page id. With the new introduced object manager method alterObject, these values are not copied during the alter procedure.
cego 23.09.2022 2.47.30 Version released
cego 23.09.2022 2.47.30 Fix in CegoObjectManager for alterTableObject. If a new system page has to be allocated, this page was not linked. This might lead to loss table objects for corresponding altering queries. Furthermore, the ObjectManager has been cleaned and shrinked in a was, that generic create and alter methods are now provided for all objects ( createObject and alterObject using encoding method inherited from CegoDecodableObject ). This results in shrinked code, since the create/alter operations are just implemented once.
cego 21.09.2022 2.47.29 Version released
cego 21.09.2022 2.47.29 Fix in CegoCaseCondition to allow null types in condition ( see dbcheck/check106.sql for a sample )
cego 19.09.2022 2.47.28 Version released
lfcbase 19.09.2022 1.16.6 Version released
cego 19.09.2022 2.47.28 In CegoFieldValue::castTo, cast from varchar to fixed is done now with now introduced BigDecimal::scaleTo method ( comes with lfcbase-1.16.6 ). This includes an appropriate rounding in case of precision reduction.
lfcbase 19.09.2022 1.16.6 Added new method BigDecimal::scaleTo to change scaling for an instance. This includes an appropriate rounding, if scaling is reduced
cego 16.08.2022 2.47.27 Version released
cego 16.08.2022 2.47.27 Fix in CegoProcBlock::toChain, dimension has still not been treated for fixed procedure variables
lfcbase 16.08.2022 1.16.5 Version released
lfcbase 16.08.2022 1.16.5 Fix in BigDecimal::operator ==, if _val, _scale and _isPositive does not match, we still have to call further checks ...
cego 10.07.2022 2.47.26 Version released
cego 10.07.2022 2.47.26 In CegoFieldValue, completed appropriate rounding via cast for decimal types to integer types
cego 08.07.2022 2.47.25 Post Log : Added FLOAT_TO_INT macro to CegoFieldValue module to cast to integer values with appropriate rounding
cego 08.07.2022 2.47.25 Version released
cego 08.07.2022 2.47.25 Added small patch for verification check to meet new BigDecimal patch in lfcbase ( Version 1.16.4 )
lfcbase 08.07.2022 1.16.4 Version released
lfcbase 08.07.2022 1.16.4 Fix added for BigDecimal to avoid rounding for zero trailing values, e.g. 119.00 / 100.00 was 1.1, should be 1.19
lfcxml 10.06.2022 1.3.5 Version released
lfcxml 10.06.2022 1.3.5 Fix added in XMLSuite::putAttribute to treat empty attribute values as Chain() instead of Chain("")
cego 08.04.2022 2.47.24 Version released
cego 08.04.2022 2.47.24 Fix in CegoFunction::evalFieldValue for case REPLACE. If replace string is null, then empty string is replaced instead of "null" string.
lfcbase 26.03.2022 1.16.3 Version released
lfcbase 26.03.2022 1.16.3 Fix added for BigDecimal comparison regarding negative values. For this, the privste method compAbs has been introduced
cego 27.02.2022 2.47.23 Version released
lfcxml 27.02.2022 1.3.4 Version released
cego 27.02.2022 2.47.23 Replaced Chain("") with Chain() for several. This was motivated by a observed bug for check constraint xml import, where a comparision between Chain() and Chain("") returned false
lfcxml 27.02.2022 1.3.4 In Element::getAttributeValue, for empty string now Chain() is returned instead of Chain("")
cego 17.02.2022 2.47.22 Version released
cego 17.02.2022 2.47.22 Fix in CegoLogManager::stopLog, the log handle must NOT be deleted, otherwise, a subsequent startLog and logAction method will result in a dump. This effect has been observed while importing a single table ( via xml import ) which failed, if the table already exists. In this case, no checkpoint is written and log handle i no more valid. A subsequent modifying db request then results in a core dump.
cego 13.02.2022 2.47.21 Version released
cego 12.02.2022 2.47.21 Added function getcount to retrieve current counter value for a specific counter
cego 12.02.2022 2.47.20 Version released
cego 12.02.2022 2.47.20 Fix in CegoTableManager::createBTree to catch exclusicve useObject timeout before committing btree. In this case, the already created btree object should be deleted. Fix added in CegoClient to active abort interrupt also during tuple fetch
cego 04.02.2022 2.47.19 Version released
cego 04.02.2022 2.47.19 More work has been done regarding clean shutdown of the database / tableset stop while busy db sessions still exist. For this, CegoDistCursr desctructor method has been stabilized, so no exception is thrown. Otherwise, double memory freeing of cursor resources might occur which results in a crash
cego 03.02.2022 2.47.19 In CegoTableManager::stopTableset, relocated the setTableSetRunState method above and added a sleep of DBM_LOCKDELAY. This gives hanging db threads a chance, to terminate save
cego 03.02.2022 2.47.19 Changed CegoDatabaseManager::useObject method to take pointer to CegoTableManager as an argument instead of threadId. The tablemanager is used to support thread termination in case of lock delays
cegojdbc 25.01.2022 1.10.1 Version released
cego 25.01.2022 2.47.18 Version released
cegojdbc 25.01.2022 1.10.1 Improved CegoDatabaseMetaData.getTables implementation to treat table type parameter for TABLE and VIEW objects. This implementation requires cego-2.47.18
cego 25.01.2022 2.47.18 Change in CegoJDBCInfo for table list retrievel. This JDBC meta information command is not split to tab and vie for dedicated retrievel of table and view objects
cego 23.01.2022 2.47.17 Version released
cego 23.01.2022 2.47.17 Fix in CegoFunction::clone, also if _exprList is empty, the function must treated and cloned completely including table manager reference. Otherwise, for user defined function with no arguments which are used in views will throw an exception
cego 09.01.2022 2.47.16 Version released
cego 09.01.2022 2.47.16 Code cleanup
cego 08.01.2022 2.47.15 Version released
cego 08.01.2022 2.47.15 Fix in CegoAttrComp for equal, lt and gt operators. The compMode ATTR was not treated correctly in a way, that the attrDesc part was not evaluated. This might lead to missing attr cond entries for sophisticated queries. A verify check ( verify008 ) has been added to check this case
cego 05.01.2022 2.47.14 Version released
cego 05.01.2022 2.47.14 Version released
cego 05.01.2022 2.47.14 In CegoDistManager::startTableset the method setCurrentLSN has to called before registerObjects since this methods might also trigger checkpoints
cego 04.01.2022 2.47.13 Version released
cego 04.01.2022 2.47.13 Fix in CegoXPorter::readIndexObject, index schema expects rather tablename instead of indexname. As a result binary and plain imports with index objects have failed.
cegobridge 31.12.2021 1.6.2 Version released
cegobridge 31.12.2021 1.6.2 Added some patches for better MySQL grammar support. This includes also escape character handling for several special characters ( \\, \n,\t etc )
cego 25.12.2021 2.47.12 Version released
cego 25.12.2021 2.47.12 Fix in CegoDistManager::renameLocalObject, before renaming the object, it has to be checked, if the new object name is already in use
cego 20.12.2021 2.47.11 Version released
cego 20.12.2021 2.47.11 Fix in CegoDistManager::startTableSet, the current lsn has to be setup before performing the cleanup option. cleanup uses bufferFix which might result in a checkpoint. For this the current lsn has to be setup
cego 16.12.2021 2.47.10 Version released
cego 16.12.2021 2.47.10 In CegoQuery, added execSchema which is copied for each execution call from _schema ( to have a virgin schema definition ). The execSchema then is enriched in the appropriate way. For the insert query, an addExprList variable was decleare to store the addition needed expression to complete the insert value list ( instead of adding it to _exprListArray ). After performing the query, the allocated and inserted expression have to be deleted. This implementation seems to be more useful for procedure based queries, where the intiantiated CegoQuery object is executed multiple times
cego 16.12.2021 2.47.10 In CegoDistManager, reload message for views, procedure and trigger is avoided now ( since this occurs for each db thread during startup )
cego 14.12.2021 2.47.9 Version released
cego 14.12.2021 2.47.9 In CegoAttrComp::setup(ListT** pJoinBuf, int offset) the _isSetup flag was not set to true for the posSetup case. This might lead to invalid error message for the following sample
drop if exists table sr;
create table sr ( srid int, srcode int);

drop if exists table vt;
create table vt ( vtid int, srid int, vtcode int);

drop if exists table svmap;
create table svmap ( srcode int, vtcode int);

drop if exists view srvtview;
create view srvtview as select vt.vtid as vtid, sr.srcode as srcode, vt.vtcode as vtcode from sr, vt where vt.srid = sr.srid ;
 
insert into sr values ( 1, 42);
insert into sr values ( 2, 43);
insert into vt values ( 1, 1, 4711);
insert into vt values ( 2, 1, 4712);
insert into vt values ( 2, 2, 4713);
 
insert into svmap values ( 42, 4711 );
insert into svmap values ( 44, 11);

select * from srvtview;
 
select * from svmap m where not exists ( select vtid from srvtview v where v.srcode = m.srcode and v.vtcode = m.vtcode );
cego 12.10.2021 2.47.8 Version released
cego 12.10.2021 2.47.8 Fix in CegoGroupSpace::getValueForAgg, The return value ( of type CegoFieldValue ) must be converted to a local copy, since the reference to the bufferpool might be invalidated
cegodbd 11.10.2021 1.5.2 Version released
cegodbd 31.08.2021 1.5.2 Fix of soem memory leaks in dbdimp.c for function cego_st_execute. The msg and schema attribute of statement handle have to be checked for allocated values, before new memory is allocated
cego 29.08.2021 2.47.7 Version released
cego 29.08.2021 2.47.7 Added format correction in CegoField::castTo for case VARCHAR to FIXED. In case of string values without leading zeros ( e.g. .345 ), leading zero is concated.
cegodbd 28.08.2021 1.5.1 Version released
cegodbd 28.08.2021 1.5.1 In dbdimp.h, changed MAXPROTSTRING to 15 ( from 10 ), since the protocol string "fastserial" does not fit in. Problems have just been observed on Ubuntu Linux
cego 04.07.2021 2.47.6 Version released
cego 04.07.2021 2.47.6 Fix in CegoFactor::evalFieldValue(), for case CegoFactor::QUERY, the fetched value must be saved to a local copy, otherwise the buffer could be overwritten by the subsequent nextTuple method call to complete the query for query cache. As a result, wrong values are returned in case of heavy buffer cache relocation.
cego 02.07.2021 2.47.5 Version released
cego 02.07.2021 2.47.5 Usage of new HashT methods ( getRangePos and RemovePos ) for CegoQueryCache to remove entries from query cache array more efficient
lfcbase 02.07.2021 1.16.2 Version released
lfcbase 02.07.2021 1.16.2 Added HashT::getRangePos and HashT::RemovePos for more efficient hash array manipulation
cego 02.07.2021 2.47.4 Version released
cego 02.07.2021 2.47.4 Fix in CegoQueryCacheEntry::cleanCache, reset of all relevant variables. Furthermore, in CegoQueryCache methods, remove from hasharray is checked for return code true
cego 06.06.2021 2.47.3 Version released
lfcxml 06.06.2021 1.3.3. Version released
dragon 06.06.2021 1.5.5 Version released
cego 06.06.2021 2.47.3 New generated parsers ( Cego.def and CegoAdm.def ) with dragon 1.5.5
lfcxml 06.06.2021 1.3.3 New generated xml parser with dragon-1.5.5
dragon 06.06.2021 1.5.5 For CPlusParser generator, catched exception in case of exceeded max token length. In the past, exceeded token length lead to seg faults ...
cegobridge 24.05.2021 1.6.1 Version released
cego 24.05.2021 2.47.2 Version released
cego 24.05.2021 2.47.2 Fix in CegoQueryHelper::checkIndexForPredicate, wrong tabSetId was used for getObjectListByTable, must be table specific
cegobridge 24.05.2021 1.6.1 In method void MySQLAction::storeVarcharType, dimension value was doubled, since MySQL calculates visible length for varchars and cego length in bytes. So for multibyte character encodings, length might exceed ...
cego 21.05.2021 2.47.1 Version released
lfcbase 21.05.2021 1.16.1 Version released
cego 20.05.2021 2.47.1 Rework of new hash array based query cache. The new introduced methods HashT::FirstInRange and HashT::NextInRange are used to find an appropriate hash array slot to replace entries in an occupied array.
cego 20.05.2021 2.47.1 Added cego command line mode setpwd to setup user password for offline database
lfcbase 20.05.2021 1.16.1 Added HastT::FirstInRange and HashT::NextInRange methods to retrieve hash value range
cegojdbc 31.03.2021 1.10.0 To support Spring Boot URL convention, the url has to be changed
Spring Boot checks for a leading jdbc token, so the new form is
 
   jdbc:cego:<protocol>:<hostname>:<port>:<tableset>
cegojdbc 22.02.2021 1.9.8 Support for cego version 2.47 added
cego 21.02.2021 2.47.0 Version released
lfcbase 21.02.2021 1.16.0 Version released
cego 21.02.2021 2.47.0 Improvements done for query cache handling ( more support for nested queries, stabilization fixes )
cego 13.02.2021 2.47.0 Fix in CegoClient and CegoAction for comment parsing. Comment token in string are treated now. For this, a new method CegoQueryHelper::skipComment has been introduced
cego 13.02.2021 2.47.0 Integration of HashT into QueryCache for faster access of cached query entries.
lfcbase 07.02.2021 1.16.0 Introduction of template class HashT
cego 01.02.2021 2.46.8 Version released
cego 01.02.2021 2.46.8 Removed log entry in CegoDatabaseManager::checkTableSetRunState
cego 29.01.2021 2.46.7 Version released
cego 29.01.2021 2.46.7 Added fix in CegoTableManager::createBTree For btree value extraction, we also have to use valueFromSchema(tableSchema, btreeSchema). Otherwise, in case if inverted index attributes, the values are not extraced correctly
Sample :
create table t1 ( a int, b string(10));
insert into t1 values ( 1, 'alpha');
create btree b1 on t1(b,a); -- inverted, value for a would be not setup correctly
lfcbase 27.01.2021 1.15.1 Version released
lfcbase 27.01.2021 1.15.1 Fix in BigDecimal::div to treat negative values correctly ( for corScale calculation, the absolute values have to be used )
cego 24.01.2021 2.46.6 Version released
cego 24.01.2021 2.46.6 Fix in CegoObjectManager / CegoDatabaseManager added. The checkTableSetRunState method has been moved to CegoDatabaseManager. This ensures a single point of check definition.
In the previous version, tableset RECOVERY mode was not treated for useObject, unuseObject and objectExists method calls which might lead to crash recovery abort.
cego 03.12.2020 2.46.5 Version released
cego 03.12.2020 2.46.5 Fix in CegoTableManager for table altering. No type conversion allowed with alter modify and no length shrinking
cego 02.12.2020 2.46.4 Version released
cego 02.12.2020 2.46.4 Bad patch in 2.46.3 for CegoFunction::evalFieldValue. Procedure call is valid for nested calls inside stored procedures. So it is allowed to call procedure as a function. In any case, the precedure returns null value
cego 01.12.2020 2.46.3 Version released
cego 01.12.2020 2.46.3 Added MAXDELETEPAGE parameter to show parameter admin command
set default checkpoint value for new defined tablesets
added function check in CegoFunction::evalFieldValue to ensure, this is not a procedure without return value
cego 01.12.2020 2.46.2 Version released
cego 01.12.2020 2.46.2 Added error msg improvement in CegoProcBlock
cego 30.11.2020 2.46.1 Version released
lfcxml 30.11.2020 1.3.2 Version released
lfcxml 30.11.2020 1.3.2 Changed parser table to be static again ( was changed to dynamic because of some memory allocation investigations ) Also this solves the compile issue for Linux compiles
dragon 30.11.2020 1.5.4 Version released
cego 30.11.2020 2.46.1 Fix in CegoExpr::evalField, fixed dimension was still not handled here for ADD and SUB cases
dragon 30.11.2020 1.5.4 Added stdlib.h include for generated parser code with dynamic parse table allocation ( malloc is used ). For Linux compiles, this is required
lfcxml 29.11.2020 1.3.1 Version released
lfcxml 29.11.2020 1.3.1 Cleanup patch for some code reorganising and cleanup
cegobridge 28.11.2020 1.6.0 Version released
cego 28.11.2020 2.46.0 Version released
cegojdbc 28.11.2020 1.9.7 Version released
lfcxml 28.11.2020 1.3.0 Version released
lfcbase 28.11.2020 1.15.0 Version released
cegobridge 28.11.2020 1.6.0 Uplift patch for cego-2.46.x
cegojdbc 28.11.2020 1.9.7 Uplift patch for cego-2.46.x, no other patches added
lfcxml 28.11.2020 1.3.0 Changed XMLInStream::putFirst and XMLInStream::putNext to make dataList a reference parameter. Since this affects the API, thi is an uplift to 1.3.0. Furthermore, a memory bug was fixed in XMLSuite::nextChar for the scanData part. After increasing the j counter, everytime it must be checked for reaching the datalen. Otherwise this may result in strange memory effects
cego 27.11.2020 2.46.0 Added type dimension information for CegoField class. This enables the database to define length and dim information for fixed and decimal data types. For this the syntax has been expanded. Instead of storing RESERVED_BTREE_FLOATLEN for btrees on fixed or decimal columns, the specified length information is used now. Please note that database uplift to version 2.46.x requires a xml tableset export and import, since table structure information has been changed
lfcbase 27.11.2020 1.15.0 Fix in BigInteger::mul and BigInteger::div, signing was not treated ( e.g. -12 * 12 => -144 ( was 144 ) )
lfcbase 21.11.2020 1.15.0 Added template class GraphT for dependency graph implementations
cego 19.11.2020 2.45.36 Version released
cego 19.11.2020 2.45.36 Another query cache fix in CegoFunction:getId, rand and liob functions have been added to throw MOD_QUERY_ID exception, since for those function it can not be ad hoc decided, if the result is modified
cego 18.11.2020 2.45.36 Added fix in CegoViewObject::getId. Since it cannot be decided, if the underlying query result has been changed, we have to throw MOD_QUERY_ID
cego 18.11.2020 2.45.35 Version released
cego 18.11.2020 2.45.35 Added noinit option to cgadm tableset start command. With the noinit option, the configured init file will not be processed after tableset startup, otherwise this will be processed now ( if any configured ) All output messages are written to main log file.
cego 18.11.2020 2.45.35 Redirected output for CegoAction and CegoOutput added to print output to logfile. This is useful in case of tableset init file, where several SQL action could be performed
cego 18.11.2020 2.45.35 Fix in CegoAction::execSetCounter, new value must be checked for null value and if so, set counter to 0. The bug caused a seg fault ..
cego 17.11.2020 2.45.34 Version released
cego 17.11.2020 2.45.34 Further fix in CegoPredDesc::getFieldList, case CegoPredDesc::NULLCOMP, getFieldList method call added for pExpr1, in CegoPredDesc::setFieldListArray method calls added for _pC and _pNotPred. For this, setFieldListArray method has been introduced in CegoCondDesc. This fixes should complete case cond handling e.g. for aggregation queries. check097 has been expanded for this
cego 17.11.2020 2.45.33 Version released
cego 17.11.2020 2.45.33 Improved runstate handling in CegoDistManager
cego 16.11.2020 2.45.32 Version released
cego 16.11.2020 2.45.32 Also CegoObjectManager has been modified to check tableset run state for several methods. For this, method CegoObjectManager::checkTableSetRunState has been introduced.
cego 16.11.2020 2.45.32 Added check in CegoDatabaseManager::objectExists to verify, if corresponding tableset is online. So instead of "invalid object" exception, a tableset offline exception is thrown, which might be more useful
cego 14.11.2020 2.45.31 Version released
cego 14.11.2020 2.45.31 Added case-cond support for aggregation queries, e.g.
select
        sum(b) as sc,
        case when sum(b) > 700 
                then 'X'
		else 'Y' end as xy
from t1;
cego 11.11.2020 2.45.30 Version released
cego 11.11.2020 2.45.30 Fix in CegoCaseCond::evalField, all expression are evaluated now and are checked for type mismatch. Expressions must return the same type, otherwise this might lead to value evaluation problems. This fix also leads to fix in CegoFieldValue::getDim() and CegoFactor::evalField since now getDim ist used for field length specification which is also compared by CegoCaseCond::evalField
cego 28.10.2020 2.45.29 Version released
lfcbase 28.10.2020 1.14.6 Version released
cego 28.10.2020 2.45.29 Linux compatibility fix added in src/CegoAdmAction ( added stdlib.h and string.h include )
lfcbase 28.10.2020 1.14.6 Linux compatibility fix in basecheck/NetClient.cc ( include stdlib.h added )
lfcbase 26.10.2020 1.14.5 Version released
lfcbase 26.10.2020 1.14.5 Fix added in BigDecimal::div method. Dividend has to be checked for zero value, otherwise the method ends in an infinite loop by evaluating corScale value
cego 22.10.2020 2.45.28 Version released
cego 21.10.2020 2.45.28 Change in CegoAction::execProcCall and CegoAction::execFuncCall, procedure/function arguments are evaluated and cast in this methods now. This is needed, to support string to clob casting for procedure arguments. As a consequence the CegoProcedure::execute method has been changed to receive ListT instead of ListT.
cego 06.10.2020 2.45.27 Version released
cego 03.10.2020 2.45.27 Added format fix to CegoAction::formatTableInfo, to treat very long object names, max name length of all corresponding objects is now calculated and output is printed in appropriate format
cego 01.10.2020 2.45.27 Removed debug message in CegoProcBlock::execute exception block
cego 23.09.2020 2.45.26 Version released
cego 23.09.2020 2.45.26 Fix in CegoTableManager::insertDataTable, before call getObjectListByTable, type must be checked ( must be CegoObject::TABLE ), otherwise ( for system objects ) not found exception arises. This error may appear with the admin commands begin backup and end back ( stat information is written to bustat system table )
cego 18.09.2020 2.45.25 Version released
cego 18.09.2020 2.45.25 More rework on CegoFieldValue for improved cast handling ( especially on fixed values )
cego 18.09.2020 2.45.24 Version released
cego 18.09.2020 2.45.24 Typo fix in CegoTerm::evalField and CegoExpr::evalField
cego 16.09.2020 2.45.23 Version released
cego 16.09.2020 2.45.23 Fix in CegoProcVar::setValue, a castTo has been added to cast to appropriate target type
cego 10.09.2020 2.45.22 Version released
cego 10.09.2020 2.45.22 Fix in CegoTerm::evalField and CegoExpr::evalField, type and length calculation must correspond to cast logic in CegoFieldValue ( corresponding operators for mul, div, add and sub )
cego 03.09.2020 2.45.21 Version released
lfcxml 03.09.2020 1.2.11 Version released
cego 03.09.2020 2.45.21 Fix in CegoFieldValue::castTo, case VARCHAR_TYPE to FIXED_TYPE, plain integers have not been accepted. check091 added for this
lfcxml 03.09.2020 1.2.11 Sync patch for MinGW package build
cego 28.08.2020 2.45.20 Version released
cego 28.08.2020 2.45.20 This is a sync patch for package repositories to recompile with lfcbase-1.14.4
lfcbase 25.08.2020 1.14.4 Version released
lfcbase 25.08.2020 1.14.4 Patch in basecheck/FileTest.cc ( remove include ioctl.h ) for clean MinGW compile
lfcbase 25.08.2020 1.14.3 Version released
lfcbase 25.08.2020 1.14.3 Note : recompile for using packages required ( dragon + lfcxml + cego )
lfcbase 25.08.2020 1.14.3 Increased in class Chain STATICBUFSIZE from 50 to 100 and TMPBUFSIZE from 30 to 100
lfcbase 25.08.2020 1.14.3 Fix in Chain, replacement of sprintf with snprintf to avoid buffer overflow
cego 24.08.2020 2.45.19 Version released
cego 24.08.2020 2.45.19 Fix in CegoAction::insertArg to check for duplicate attribute specification in insert statement ( e.g. insert into t1 ( a, a ) values ... )
cego 14.08.2020 2.45..18 Version released
cego 14.08.2020 2.45.18 Fix in CegoClient for treating interactive input. Ctl-D input lead to segmentation fault, if used in multiline statements.
cego 29.07.2020 2.45.17 Version released
cego 12.07.2020 2.45.17 Patch in CegoAction::formatTableInfo. For size calculation of btree objects, null value must be used instead of INVALID, otherwise, wrong values are indicated during btree build
cego 08.07.2020 2.45.17 Patch in CegoLogManager::switchLogFile, we first have to switch log file and then change the status to OCCUPIED. Otherwise, the logfile archiver ( CegoLogThreadPool::shiftRedoLogs ) might access occupied logfile in parallel. Since this is a different thread and File::open seems to be not thread safe, bad things might happen ...
cego 31.05.2020 2.45.16 Version released
cego 31.05.2020 2.45.16 Fix in CegoQueryHelper::checkIndexForPredicate, index evaluation for alias objects was still not treated
Fix in CegoDistCursor::getPlan and CegoAction::getJoinPlanString to cover execution plan for alias objects
cego 29.05.2020 2.45.15 Version released
cego 29.05.2020 2.45.15 Fix in CegoObjectManager::getObjectListByTable, if object does not exist, an exception is thrown now.
This resulted in a fix for CegoQueryHelper::checkIndexForPredicate, where now the table alias has to be mapped to the correct physical table name ( via coList as a new method argument )
Fix in CegoAttrDesc::evalTableReferences to treat alias objects in joins
Grammar expansion to support inner/left outer/right outer joins without a condition. This might be useful for specific join order to use appropriate table indices ( see dbcheck/check088.sql )
cego 23.05.2020 2.45.14 Version released
cego 23.05.2020 2.45.14 In CegoMain, changed separator token for tsdef from ":;" to "=", since for mingw configurations, absolute path handling was broken. This resulted in adapations for mkdb and cgmkdb scripts.
cego 22.05.2020 2.45.13 Version released
cego 22.05.2020 2.45.13 For update with return statements, added the on first option. Since the return variable can only store one return values, this option specifies, if the update should return after first tuple or if all matching tuples should be updated.
cego 22.05.2020 2.45.13
cego 22.05.2020 2.45.13 In CegoClient, changed home variable to HOME also for MinGW compilations ( instead of HOMEPATH )
cego 15.03.2020 2.45.12 Version released
cego 14.03.2020 2.45.12 Patch in update with return clause. It seems to be useful, that in combination with return, update should return after first matching tuple providing the updated tuple in the return clause. So the values for the tuple can be stored in procedure variables.
create table t1 ( a int, b string(30));
insert into t1 values ( 1, 'DONE');
insert into t1 values ( 2, 'DONE');
insert into t1 values ( 3, 'WAIT');
insert into t1 values ( 4, 'DONE');
insert into t1 values ( 5, 'WAIT');
update t1 set b = 'DONE' where b = 'WAIT' return :a = a; 
Just the tuple with a = 3 is update and the value of a is returned in the procedure variable :a
cego 27.01.2020 2.45.11 Version released
cego 27.01.2020 2.45.11 Fix in CegoFieldValue::negate, for FIXED_TYPE values, trailing zeros have to be treated. Otherwise, select null - a from t1 where a = 0.10 will result in 0.1
cego 21.01.2020 2.45.10 Version released
cego 21.01.2020 2.45.10 Fix in CegoBtreeManager for duplicate null handling. The corresponding btree value has to be checked to be null. For this, the method CegoBTreeValue::isNull has been introduced
cegobridge 30.11.2019 1.5.4 Version released
cego 30.11.2019 2.45.9 Version released
cego 30.11.2019 2.45.9 Fix in CegoBTreeManager, the allowDuplicateNull flag was not treated any more. The duplicate handling has been moved from CegoBtreeNode to CegoBtreeManager
cegobridge 25.11.2019 1.5.4 Fixes in MySQLFormatter to treat several datatypes and default values
cego 24.11.2019 2.45.8 Version released
cego 24.11.2019 2.45.8 In CegoXMLSpace, changed access methods for mediator, primary and secondary in a way, that the default value ist the current hostname. In this case, no attribute values are set up. This reduces complexity and avoids to change the entries manually, if the hostname changes ( Again : do not edit the database xml without any deeper knowledge ) .
cego 24.11.2019 2.45.8 Improvement in CegoAdmAction for input handling. Used the same methods for nextChar and friends as in CegoAction
cego 23.09.2019 2.45.7 Version released
cego 22.09.2019 2.45.7 Added method CegoBTreeNode::verifyLeafFull for full btree verification in a sense, that each btree value is compared with the corresponding table data entry via datapointer reference
cego 22.09.2019 2.45.7 Fix in CegoSelect::setVIewCond, a view condition id has to be calculated which is later used for getQueryId(). Otherwise, wrong query cache entries are used in case of views with outer conditions
cego 05.08.2019 2.45.6 Version released
lfcbase 05.08.2019 1.14.2 Version released
cego 04.08.2019 2.45.6 Added command line option --fsync to enable physical disk synchronisation for logging and checkpointing. This options slows down database significantly but ensures consistent data in case of an operating system crash
lfcbase 04.08.2019 1.14.2 In configure.ac added check for darwin. This is required, since for File::flush implemention, darwin rather requires a fcntl call with option F_FULLFSYNC instead of fsync ( see OSX man page for fsync )
lfcbase 14.07.2019 1.14.1 Version released
lfcbase 14.07.2019 1.14.1 Adaptions made for clean mingw compiles
cego 14.07.2019 2.45.5 Version released
lfcbase 14.07.2019 1.14.0 Version released
cego 13.07.2019 2.45.5 In CegoClient, added input data check via File::hasData ( available with lfcbase 1.14.0 ). Now, pipe input is autodetected, so the command line argument "--pipe" has been removed
lfcbase 13.07.2019 1.14.0 Added File::hasData method to check for available input data from file descriptor ( implemented with POSIX poll function )
cego 13.07.2019 2.45.4 Version released
cego 12.07.2019 2.45.4 Code cleanup to avoid warnings with -Wswitch-enum
dragon 12.07.2019 1.5.3 Version released
dragon 12.07.2019 1.5.3 Small cosmetic patch in CPlusGenerator parse method. Instead of default, NULLACTION case has been added to avoid compile warnings with -Wswitch-enum
cego 11.07.2019 2.45.3 Release build verified for MinGW
cego 11.07.2019 2.45.3 Version released
cego 11.07.2019 2.45.3 Fix in CegoFieldValue::fastComp, the castTo method calls for t1 and t2 have to be switched, since first ist has to be checked to cast to native btree datatype ( used in CegoBTreeCursor::traceLog, inRange and fullMatch )
create table t1 ( a int, d datetime);
create btree b1 on t1(b);
select a from t1 where b = '12.07.2019'; -- should be casted from string to datetime
cegobridge 09.07.2019 1.5.3 Version released
cego 09.07.2019 2.45.2 Version released
cego 09.07.2019 2.45.2 Fix in CegoQuery::execute for INSERTBYSELECT_QUERY case. Since the selected tuples are clustered ( MAX_CLUSTERED_INSERT) we have to create a local copy for the corresponding field values. Otherwise, tuple information could be invalidated by relocated buffer pool pages
cegobridge 09.07.2019 1.5.3 MySQL SET lines are no more parsed. instead, the scanner ignores these lines
cego 07.07.2019 2.45.1 Version released
cego 07.07.2019 2.45.1 Treated alias insert queries with empty schema, e.g.
insert into a1 values ( 1, 'XXX');
cego 06.07.2019 2.45.1 Some patches added for alias management to allow alias defintions as a subset of the original table, e.g.
create table t1 ( a int, b string(10), c string(30))
create alias a1 on t1 ( a as ax, b as bx);
This has required some fixes in CegoAliasObject::mapSchema and CegoQueryHelper::mapFLA
cegobridge 06.07.2019 1.5.2 Version released
cegobridge 06.07.2019 1.5.2 Fix in MySQLAction::storeAttrColumn, _defaultOptString.length() and _nullOptString.length() must be compared greater 1 ( not 0 )
cegobridge 03.07.2019 1.5.1 Version released
cegojdbc 03.07.2019 1.9.6 Version released
cego 03.07.2019 2.45.0 Version released
cego 02.07.2019 2.45.0 Added trigger and alias object handling to CegoXPorter binary export and import
cego 02.07.2019 2.45.0 Added alias and trigger xml export and import feature ( trigger xport was still not implemented ) Fix in CegoDbThread::loadObjects for trigger reload, instead of triggerList.Next(), triggerList.First() was called, which result in an infinite loop in case of existing trigger objects
cegojdbc 01.07.2019 1.9.6 Support for cego-2.45 added. Fix in CegoFixed::toString, zero concatenation must be done from left, otherwise wrong conversion for low values occurs ( e.g. 22.03 is printed as 22.30 )
cego 30.06.2019 2.45.0 More work on table alias handling. Now works with more sophisticated select queries ( e.g. select ax from a1 aa where aa.ax = 1; ) For this, some fixes had to be done in CegoContentObject, since the the table alias attribute ( _tabAlias ) was not setup in constructor and other methods
cego 29.06.2019 2.45.0 Basic alias mapping for select works Here comes a sample SQL script
drop if exists table t1;
list alias;
desc alias a1;
drop if exists alias a1;
create table t1 ( a int, b string(30));
create alias a1 on t1 ( a as ax, b as bx );

insert into a1 ( ax, bx ) values ( 1, 'XXX');
insert into a1 ( ax, bx ) values ( 2, 'YYY');
insert into a1 ( ax, bx ) values ( 3, 'ZZZ');

select ax from a1;
cego 27.06.2019 2.45.0 Added alias mapping for insert, update and delete queries ( CegoQueryHelper::mapAliasPredicate still to implement )
cego 27.06.2019 2.45.0 In CegoDistManager::registerObjects, added registration for fkey, check, trigger and alias
cego 26.06.2019 2.45.0 Implemented base semantic actions for creating, listing and describe alias objects ( still no usage )
cego 25.06.2019 2.45.0 Added classes CegoAliasObject and CegoAttrAlias for table alias handling
cego 25.06.2019 2.45.0 Added table alias feature to grammar definition. Table aliases allow alternate table name and attribute name definitions for a table ( create alias ... )
cegobridge 22.06.2019 1.5.1 Added stored procedure grammar defintions to MySQLParser.def. Semantic actions still not implemented
cegobridge 21.06.2019 1.5.1 In MySQLAction::storeKey, changed btreename to _ since MySQL allows non unique key names
cegobridge 21.06.2019 1.5.1 Actived append mode in CegoBridge::main, which speeds up import performance significantly
cegobridge 21.06.2019 1.5.1 Added MySQL type support for type date and type bigint
cego 17.05.2019 2.44.14 Version released
cego 17.05.2019 2.44.14 Adapted copyright
cego 17.05.2019 2.44.14 Some improved exception handling in CegoTableManager::checkIntegrity ( more detail information about violated object )
cego 15.05.2019 2.44.14 Code cleanup CegoTableManager, drop/create/alter operations inside a transaction no more allowed
cego 12.05.2019 2.44.13 Version released
cego 12.05.2019 2.44.13 Version passed checkCrashRecovery with the following parameters
NUMRUN=100
DOTRANSACTION=-dotransaction
ARANGE=10000
AINTERVAL=500
ACOUNT=30000
PRIMARY=primary
POOLSIZE=191
All relevant checkpoint situations have been observed over all run
cego 12.05.2019 2.44.13 Introduced CegoBufferPool::getCPCount() to return to current checkpoint count. This method is used by CegoTableManager, CegoObjectManager and CegoTransactionManager to decide, if a consitency checkpoint is required
cego 12.05.2019 2.44.13 Fix in CegoBTreeManager::checkDuplicate, the check for uflag ( returned CegoBTreeNode::valueExists ) to check for high value is not enough if, entries have been deleted from node.
Instead, all subsequent pages have to be checked until a value higher is found
cego 11.05.2019 2.44.13 Further recovery fix in CegoTableManager::insertDataTable In case of an insert exception ( e.g. duplicate pkey ), a checkpoint is forced now after deleteData to ensure file consistency
In CegoObjectManager::insertPageData a second checkpoint is forced after data copy, if a previous checkpoint has occured. Otherwise this insert might be ignored during recovery because of lower LSN
cego 11.05.2019 2.44.12 Version released
cego 11.05.2019 2.44.12
  • Fix added in CegoTransactionManager::commitUpdate, btree must be inserted with insertBTreeWithCommit
  • Fix added in CegoTransactionManager::getCrashAffectedTables, schema entry must be searched with Find(CegoField(Chain(), SYS_RB_TABLE))
cego 10.05.2019 2.44.12 In CegoTableManager::deleteDataTable, moved the LSN allocation at the end. If checkpoint occcurs during delete operation, the sync LSN might be higher and the delete operation is not recovered
cego 10.05.2019 2.44.12 Several fixes and improvements regarding crash recovery
  • In CegoRecoveryManager::recoverCurrentTransactionLog crash affected tables are analyzed at the beginning now. This must be done, since commit or rollback operations may occur in the recovery log
  • In CegoTransactionManager, getObjectWithFix method calls have been eliminated. The sustained fix on the pages avoids writing the pages during checkpoint, which may result in inconsistent rollback segments
  • In CegoObjectManager::createTableObject, the getNewFilePage method call was moved to the beginning. It may happen, that a checkpoint occur during the method call, which may result in inconsitent table entries ( newEntry is called, during getNewFilePage a checkpoint is forced which writes the incomplete page to disk and just after the checkpoint, the table information is encoded
cego 09.05.2019 2.44.11 Version released
cego 09.05.2019 2.44.11 Fix in CegoRecovery:::recoverCurrentTransactionLog, for LOGREC_INSERT and LOGREC_DELETE, the corresponding index have to be invalidated with CegoTableManager::invalidateIndexForTable. This logic was already implemented but removed in context of more sophisticated transaction handling ( patch 2.39.11 and around )
cego 08.05.2019 2.44.11 Small fix in CegoObjectCursor constructor, changed _isEOC = false to _isEOC = ( pageId == 0 ). This causes getFirst to return false in case of truncated objects ( can occur for RBSEG objects )
cegojdbc 05.05.2019 1.9.5 Version released
cegojdbc 05.05.2019 1.9.5 Added driver support for cego version 2.44
cego 04.05.2019 2.44.10 Version released
cego 04.05.2019 2.44.10 Fix in CegoAction::readChain() to support "\r" escape character Fix in CegoBTreeCursor::getFirst, in case of pAttrCond = 0, getNext has to be called if current leaf page is empty, otherwise cursor trace is incomplete ( just used for CegoDistManager::verifyTable
cego 04.05.2019 2.44.10 Fix in CegoBTreeNode::getChildPage, parameter traceMin has been introduced, which is needed to trace btree with CegoBTreeManager::deleteBTree. Otherwise, it might happen that btree entries are not found ( occurs just for non-unique btree objects )
cego 03.05.2019 2.44.10 Modified rc script to check for configured tablesets to be online ( via cgadm ) This requires additional configuration parameters in rc.conf
lfcbase 02.05.2019 1.13.1 Version released
lfcbase 02.05.2019 1.13.1 Stability patch in Datetime::asChain methods. The result of localtime is checked for null pointer ( may occur in case of very large long values, for which the instance has been created ) and in this case, an exception is thrown
cego 02.05.2019 2.44.9 Version released
cego 02.05.2019 2.44.9 Version released
cego 02.05.2019 2.44.9 Removed legacy method CegoAggregation::setInit/isInit
cego 02.05.2019 2.44.9 Fix in CegoQueryHelper::aggregateTuple, since the field value reference for aggregation field value might be no more valid during the aggregation run, a local copy is created via CegoFieldValue::getLocalCopy.
cego 28.04.2019 2.44.8 Version released
cego 27.04.2019 2.44.8 Added method CegoClient::treateEscape to handle escacpe charaters in command strings for interactive and batch mode ( newline, carriage return und tab )
cego 27.04.2019 2.44.8 Further optimization in CegoFunction::getReturnTypeLen, if the length argument in left, right substr function is a constant, this value is used for schema definition, otherwise the length of the source is used. Sample
select left(a,3) from t1 => length 3 is used for schema
select left(a,b) from t1 => definition of a is used for schema
Further ptimization done in CegoSelect and CegoAction for schema evaluation.
cego 26.04.2019 2.44.7 Version released
cego 26.04.2019 2.44.7 In CegoSelect::evalSelection, optimization provided in a way, that schema is not evaluated explizit anymore. Rather the previous analysed schema ( prepare method, _evalSchema ) is used. Since for dynamic field length, the resulting schema must be estiamated, this approach is ok.
cego 25.04.2019 2.44.7 Fix added in CegoFunction::getReturnTypeLen, evalFieldValue for expression values could fail, since FLA ist still not set up. For this case, now the cont value RETVAL_LEN is returned as an estimation.
cego 23.04.2019 2.44.6 Version released
cego 23.04.2019 2.44.6 Added some code cleanup and additional checks ( check082 and check083 )
cego 22.04.2019 2.44.5 Version released
cego 22.04.2019 2.44.5 Added fix in CegoAttrComp::setup, _posSetup variable was not setup correctly for case BTWN / VALUE2VALUE which might lead to invalid join array access.
cego 22.04.2019 2.44.4 Version released
cego 22.04.2019 2.44.4 Added fix in CegoExpr::evalField and CegoTerm::evalField to provide correct result type. This is required for fastserial protocol usage.
Also added fix in CegoFieldValue::operators +-*/ to cast to the largest value
cego 22.04.2019 2.44.3 Version released
cego 22.04.2019 2.44.3 Optimization added in CegoBufferPool::bufferFix. If there is no available slot in the bufferpool, a checkpoint is forced for the corresponding tableset ( already implemented ). Now if still no available slot, we force checkpoint for all other online tableset of the database. This might be useful, if the bufferpool is heavily occupied by other tablesets with dirty pages.
cego 21.04.2019 2.44.2 Version released
cego 21.04.2019 2.44.2 Fix in CegoTableManager::deleteDataTable, before resolving external table references via evalExtTableReferences, the subquery must be prepared, to resolve local attributes first
cego 21.04.2019 2.44.1 Version released
cego 21.04.2019 2.44.1 In CegoFIleHandler, introduced read only mode, which is used for tableset export
cego 21.04.2019 2.44.1 For connection pools ( db, admin, lock ) added a check for max connection queue length ( CegoDefs::NETMNG_MAXQUEUELEN ) to protect against port penetration
cego 20.04.2019 2.44.0 Version released
lfcbase 20.04.2019 1.13.0 Version released
cego 20.04.2019 2.44.0 Compile successful on mingw
lfcbase 20.04.2019 1.13.0 Compile succesful for mingw
cego 19.04.2019 2.44.0 Added authorization for log connection via dedicated loguser. The log user is setup via cgadm with "set loguser for " command
cego 19.04.2019 2.44.0 In CegoDbThreadPool, CegoAdminThreadPool and CegoLogThreadPool, pHandle variable was not initialized ( to zero ). This might cause a crash of the system in case of heavy request penetration or other net exception.
cego 19.04.2019 2.44.0 Added logging of incoming connection source information. This requires lfcbase-1.13.0, since ip source information has just been added to NetHandler class
lfcbase 19.04.2019 1.13.0 Added ip source information to NetHandler class, which is provided via Net::nextRequest.
cego 08.03.2019 2.43.4 Version released
cego 07.03.2019 2.43.4 Added fix in CegoSelect::getSchema, In case of union selects, the schema fields have to be checked for type compatibilty. For const null values in expression list, the schema is adapted to the appropriate type in deeper unions. This is required, since the schema types must be consistenst for the whole row set.
cego 21.02.2019 2.43.3 Version released
cego 20.02.2019 2.43.3 Fix in CegoAttrCond::asConjunctionList, CegoExpr and CegoDistCursor to treat external expression references ( setting up for view objects in selection tableset ). The FLA for the external predicate expressions has to be setup by CegoExpr::setExternalFieldArrayList. Otherwise the FLA for the external expressions might be overwritten by the nested view object which leads to unknown attribute errors. As a sample to reproduce this problem check080 has been added.
cegojdbc 29.01.2019 1.9.4 Version released
cegojdbc 29.01.2019 1.9.4 Patch added in CegoDataRow, the byte buffer has to be reminded, to allow multiple calls for CegoResultSet.getInt/getLong/etc.
cego 24.01.2019 2.43.2 Version released
cego 24.01.2019 2.43.2 Some code cleanup in CegoRecoveryManager
cego 21.01.2019 2.43.1 Version released
cego 21.01.2019 2.43.1 Sync patches in CegoBufferPool:writeCheckPoint to keep database konsistent in several crash cases. The patches habe been checkd with the samples/chkdb/checkRandomCrash Script for about 1000 crashes and recoveries.
cegojdbc 15.01.2019 1.9.3 Version released
cegojdbc 15.01.2019 1.9.3 Added compatibility check for cego version 2.43. Since there not have been made any protocol changes, the driver already works with cego version 2.43.x
cego 13.01.2019 2.43.0 Version released
cego 12.01.2019 2.43.0 Adapt cego rc file to support cpdump and cleanup tableset start options
cego 12.01.2019 2.43.0 Introduced checkpoint dump option. With this option enabled at tableset startup time, first a dump of the dirty buffer pool pages is written. If written completely, the dump file is commited ( renamed ) and the recorded pages are physically written to the data file.
This option avoids inconsistent data file in case of a system crash during the checkpoint procedure. After system crash, the dump file is checked and if commited, the dumped pages are written again to the data files. This operation is idempotent and so can be repeated several times until the dump has been completely written to datafiles and is removed then.
lfcbase 07.01.2019 1.12.7 Version released
lfcbase 07.01.2019 1.12.7 Small patch in ShmTest.cc to avoid seg fault for MinGW "make check" ( Shared Memory is just dummy implementation for MinGW )
cego 05.01.2019 2.42.17 Version released
lfcbase 05.01.2019 1.12.6 Version released
cego 05.01.2019 2.42.17 Improvement for datafile cleanup added. For this, method CegoTableManager::cleanTableSet has been introduced which traces through all relevant database objects and marks allocated pages ( CegoFileHandler::commitPageEntry ). In case of a bitmap diff, the commited bitmap is written to the datafile.
This method allows a complete cleanup of data files after a crash where no allocation leaks result anymore.
The method has been proven with crashCheckAndRecovery
cego 04.01.2019 2.42.17 Further code cleanup in CegoFileHandler, Changed fixStat type from int to unsigned and size calculation for bitmap handling consequently to unsigned
lfcbase 04.01.2019 1.12.6 Introduction of constructor Chain(unsigned) and method asUnsigned
cego 02.01.2019 2.42.16 Version released
lfcxml 02.01.2019 1.2.10 Version released
dragon 02.01.2019 1.5.2 Version released
lfcbase 02.01.2019 1.12.5 Version released
cego 02.01.2019 2.42.16 Code cleanup to compile warning free with -Wall
lfcxml 02.01.2019 1.2.10 Changed generated XML parser code to virtual destructor
dragon 02.01.2019 1.5.2 Small code cleanup for clean compile -Wall. Changed to code generation with virtual destructor
lfcbase 02.01.2019 1.12.5 Code cleanup done with elimination of all warning thrown by -Wall
cego 02.01.2019 2.42.15 Version released
cego 02.01.2019 2.42.15 Small improvement in CegoBufferPool / CegoFileHandler for page backup handling ( consolidation if isPageBackup and isPageMarked to needPageBackup ). This should improve checkpoint performance
cego 01.01.2019 2.42.15 Introduced CegoBufferPool::optimizePool method. This method analyses the bufferppol and if possible, relocates often used pages page entries to its optimal position ( pageIndex = hashId ). This may result in paging out of other pages with lower fixstat values. The method is called during every checkpoint.
cego 29.12.2018 2.42.14 Version released
cego 29.12.2018 2.42.14 Quality check with 1000 loops in checkCrashAndRecovery performed successful ( for redo logfile size = 10000000, simple case, no transaction checkpoint split )
cego 29.12.2018 2.42.14 Added CegoTableManager::resetTemp & friends methods to perform a reset of the temp space after starting a tableset. This ensures, that allocation leaks caused by a system crash are removed
cego 29.12.2018 2.42.14 Redesign of CegoBTreeNode::valueExists compare handling. In some transactional cases, the old logic did not reach valid entries. For this a specific search down / search up inside the tree node has bee added.
cego 28.12.2018 2.42.14 More investigation with checkCrashAndRecovery. As a result, tastep information is now also stored in log entries ( CegoLogRecord ). This is required, to decide about the visibility of table data during recovery for open transaction. This is ugly stuff ...
Normally, this is a minor change to version 2.43.x since format of log files is incompatible now. But there is now impact for normal operation ( just in case of crash or backup recoveries ). So I leave the version to 2.42.14
cego 27.12.2018 2.42.14 More checks with checkCrashAndRecovery using larger transaction sizes. This lead to a transaction handling bug in CegoBtreeNode::isTupleVisible, tuple state must be NOT in state OBSOLETE to be visible. Otherwise, the small script breaks :
start transaction;
insert into t1 values ( 1, 'XXX');
update t1 set b = 'FFF' where a = 1; -- here comes a duplicate error
commit;
cego 26.12.2018 2.42.13 Version released
cego 26.12.2018 2.42.13 Several fixes added for recovery procedure. LOGREC_DELETE_COMMIT and LOGREC_UPDATE_COMMIT log message types have been removed, index rebuild is done at the end of recovery. This must be done, otherwise in case of open transactions, btree references might be corrupted.
This whole recovery process has been tested and verified with a powerful script ( samples/chkdb/checkCrashAndRecovery ), which generates random insert/update/delete operations on a table in transactional chunks ( using cgblow --mode=arb2 ) and the daemon is crashed and restarted. The table content before and after crash is compared then. The recovery procedure seems to be stable now.
cego 25.12.2018 2.42.12 Version released
cego 24.12.2018 2.42.12 Changed CegoBufferPool::bufferRelease in a way, that frees pages are just saved in a list. the pages are deleted from datafile if the next checkpoint is reached ( writeCheckPoint method ). This ensures transaction save handling also for clob recovery operations.
cego 29.11.2018 2.42.11 Version released
cego 28.11.2018 2.42.11 Remwork of CegoTableManager::dropObjectSynced method. Cleanup of implementation in a sense the useObject / unuseObject is consequently moved this level ( was not for procedures and views ). Also fixed issue of missing pDBMng->removeObject call
cego 20.11.2018 2.42.10 Version released
cego 20.11.2018 2.42.10 More restrictive checks for drop table with referenced foreign key added. Now it is not allowed to drop a table with existing key reference ( except self refering tables )
cego 19.11.2018 2.42.10 Added truncate command for truncating table object. Redesign also done for dropTable method in terms of log messages. Now one single log message in created for dropping a table ( instead of dedicated messages for each corresponding object like index, key, check, et )
lfcxml 12.11.2018 1.2.9 Version released
lfcxml 12.11.2018 1.2.9 Added missing includes string.h and stdlib.h in Element.cc and xmltext.cc required for clean Linux compile
cego 12.11.2018 2.42.9 Version released
cego 10.11.2018 2.42.9 Fix in CegoDistManager::createLocalDataTable, exception catched if primary could not be created and data table is removed in this case
Some method redesign in CegoBTreeManager and CegoBTreeNode for better handling of unique btrees. CegoBTreeNode::getChildPage now returns the upper page, for this also the method CegoBTreeValue::iEqualHigher has been introduced. Duplicates are checked with new introduced method CegoBTreeNode::checkDuplicate
cego 08.11.2018 2.42.8 Version released
cego 07.11.2018 2.42.8 Some improvements added regarding procedure exception handling
cego 06.11.2018 2.42.8 restrictions added for lock Table / unlock table command ( in CegoDatabaseManager::unuseObject ) to ensure, that unlock operations are just valid, if the corresponding table is locked by the calling thread
cego 06.11.2018 2.42.7 Version released
cego 06.11.2018 2.42.7 Adaptions made in CegoXPorter for new memory outstream mng in lfcxml 1.2.8
lfcxml 06.11.2018 1.2.8 Version released
lfcxml 06.11.2018 1.2.8 Changed memory management for outStream handle in Element ( is done by producer now )
lfcxml 04.11.2018 1.2.7 Version released
lfcxml 04.11.2018 1.2.7 Patch in XMLSuite to treat CDATA handling in a better way. The detection of CDATA endtoken ( "]]>" ) was not handled correctly, if moreData has to be called during read the endtoken.
To handle this, a lookahead has been introduced and as a consequence, the XML grammar has been modified ( read of endtoken is completely done by scanner, no more grammar symbols are needed anymore )
cego 02.11.2018 2.42.6 Version released
cego 02.11.2018 2.42.6 Small optimizsation done in CegoBTreeCursor. Instead of using releaseDataPtrUnlocked and claimDataPtrUnlocked method, now the combined method releaseAndClaimDataPtrUnlocked is used. In case of traversing tuples which are located in the same page, this avoids bufferFix / bufferUnfix operations, since the requested pageId is already fixed ( the releaseAndClaim method has also been modified for this )
cego 01.11.2018 2.42.5 Version released
cego 01.11.2018 2.42.5 Add avgFixTry attribute to bufferpool information to indicate the average number of fix tries
cego 01.11.2018 2.43.0 Recognized a fatal design issue with new primary key design : since the tuple data store within primary key has no static data pointer anymore, there no efficient and trivial way to handle further index object on this data. Actually, I have no idea how to deal with this issue, so I stopped progress of this version. Detected bugs ( detect duplicated primary in btree nodes and small issue in CegoXPorter ) are fixed with version 2.42.5
cego 28.10.2018 2.43.0 XML and binary export/import with new primary key structure works now
cego 27.10.2018 2.43.0 Primary key adaptions made for CegoXPorter.
Old XML format still can be imported ( primary key handling ) but NOT binary/plain export files
cego 27.10.2018 2.43.0 Fix added to CegoBTreeNode::getChildPage. For unique trees and primary trees, just the leaf nodes have been checked. Also the tree nodes have to be checked for duplicates, otherwise, duplicate entries may occur.
cego 27.10.2018 2.43.0 Implementation of CegoTableManager::createPrimaryKey added. This methods converts an existing table to a btree table ith primary key. The syntax for primary key creation has been changed ( Now : alter table xxx add primary key ( x, y, z ) )
cego 25.10.2018 2.43.0 More work on CegoBTreeManager and friends to complete insert for primary btree values ( split node )
Extension for CegoBTreeCursor to support traversation of tables with primary key. Logic basically works !
cego 23.10.2018 2.43.0 CegoBTreeManager and friends have been adapted for primary key handling. Inserting primary btree values basically works with first leaf page
cego 21.10.2018 2.43.0 Started with alternate primary key implementation. In this sense, the primary key stores the complete tuple data ( instead of datapointers to records in a table object ). In case of index traces, this avoids several bufferfix/bufferunfix operations and should result in a better database performance.
Still pretty much work ahead ...
cego 20.10.2018 2.42.5 Small optimization in CegoBufferPool::bufferFix, in step 1, the pool is locked not outside the loop over numtries. This decreased locking granularity but avoids some lock operation and should improve bufferpool performance
lfcbase 20.10.2018 1.12.4 Fix in NanoTimer, changed return value for getSum method to unsigned long long
cego 15.10.2018 2.42.4 Version released
cego 15.10.2018 2.42.4 Fix in CegoAction::execListCounter, changed scheme type to LONG_TYPE, which is important for fastserial protocol
lfcbase 15.10.2018 1.12.3 Version released
lfcbase 15.10.2018 1.12.3 In basecheck/ChainTest, the visibelLength Test has been disabled for MinGW compiles since setlocale seems to be broken in MinGW
cego 14.10.2018 2.42.3 Lock timeout definitions have been increased from 10000 to 30000 ms. ( CegoDefs.h )
cego 13.10.2018 2.42.3 In samples/rc/cego startscript added cego_protocol parameter to support fastserial mode
cego 13.10.2018 2.42.2 Version released
cego 13.10.2018 2.42.2 Version released
cego 13.10.2018 2.42.2 Fix in CegoAction::formatTableInfo, the field types for schema attributes PAGES and RELEVANCE have to changed to INT_TYPE, for fastserial protocol this is important
cego 01.10.2018 2.42.1 Post note : This patch contains a fix for datetime value encoding/decoding in CegoFieldValue. It still was done with 4 byte ( since version 2.40.0, cego uses 8 byte datetime length )
cegojdbc 01.10.2018 1.9.2 Version released
cegojdbc 01.10.2018 1.9.2 Completed data type handling in CegoDataRow
cego 30.09.2018 2.42.1 Version released
cego 29.09.2018 2.42.1 Fix in CegoTableManager::alterDataTable, for case RENAME, the schema is checked for already existing attribute name
cegojdbc 29.09.2018 1.9.2 Completed data type handling in CegoDataRow::valueAsString
cegojdbc 25.09.2018 1.9.1 Version released
cegojdbc 25.09.2018 1.9.1 Set TCP_NODELAY flag for sockets in CegoNet.java ( via Socket.setTcpNoDelay(true). Disabling the Nagle's algorithm leads to a much better network performance, since the latencies for any response packets is reduced significantly. ( For scenarios with heavy parallel load with many sustained queries, I observed speedup up to 3 or 4 times faster )
cegobridge 23.09.2018 1.5.0 Version released
cegobridge 23.09.2018 1.5.0 Added support for fastserial protocol
cegodbd 23.09.2018 1.5.0 Version released
cegodbd 23.09.2018 1.5.0 Added support for fastserial protocol
cegojdbc 23.09.2018 1.9.0 Version released
cego 23.09.2018 2.42.0 Version released
cego 21.09.2018 2.42.0 Fix in CegoDbThread::serveRequest, case GETBLOB and GETCLOB, the clobref still was not treated there, which lead to corrupted lob results if, the lob service is used ( normally via JDBC with the ResultSet.getBlob/getClob methods )
cego 20.09.2018 2.42.0 Small protocol modifications also made for serial protocol ( cego type id is now transfered to client ) which incompatibles serial protocol with earlier versions ( < 2.42.x )
cegojdbc 20.09.2018 1.9.0 Add support for fastserial protocol.
cego 19.09.2018 2.42.0 Added new network protocol fastserial for improved transfer performance from db client to db server ( and vice versa ). The fastserial protocal ist based on the native serial protocol but is no more plain ASCII/UTF. Instead field length information is transferred as plain integers. In this sense, the protocol is machine dependent.
cego 18.09.2018 2.41.7 Version released
cego 17.09.2018 2.41.7 Performance improvement in CegoQueryHelper::decodeFVL, changed to a more efficient way to setup field values
cego 17.09.2018 2.41.7 Performance improvement in CegoSelect::evalSelection, in case of aggregations and grouping, the field value is already setup by getFieldList method, so no need to iterate through pJoinBuf
cego 16.09.2018 2.41.6 Version released
cego 16.09.2018 2.41.6 Performance optimization in CegoObjectManager, changed CegoObjectManager::claimDataPtrUnlocked to return void, the CegoBufferPage is returned as a reference parameter, this avoid copy operation for the buffer page variable
cego 16.09.2018 2.41.6 Removed unused CegoFieldValue variables in CegoBTreeCursor methods inRange / fullMatch. This may impact cursor performance, since this methods are heavily called.
cego 15.09.2018 2.41.6 Optimization done in CegoTableManager::getClobs/getBlobs, lobList parameter changed to reference instead of returning the lobList. This avoids copy operation of the lobList during insert or update which might be pretty expensive
cego 14.09.2018 2.41.6 Fix/optimization in CegoBTreeValue, the static array _idxArray was removed. Instead, memory is allocated dynamically, when used ( just, if method valueFromSchema is called in btree insert case ). This should improve performance for btree cursor, since, no memory must be stacked, if a btree value variable is declared
cego 14.09.2018 2.41.6 Several code optimizations regarding method parameter handling ( rather try to use reference instead of return copy, e.g. changed CegoExpr::getFieldList and friends
cego 03.09.2018 2.41.5 Version released
cego 03.09.2018 2.41.5 Fix in CegoAttrCond::setup(ListT** pParentJoinBuf, int parentOffset, ListT** pJoinBuf, int offset), pAC->if isParentSetup() returns true, the loop must be continued, otherwise the _attrCompSet setup will be not completed. The following script returns a wrong result ( zero rows ):
drop if exists table t1;
create table t1 ( a int, b string(10), c string(10));

insert into t1 values ( 1, 'W0001', '001');
insert into t1 values ( 1, 'W0001', '003');
insert into t1 values ( 1, 'W0138', '002');
insert into t1 values ( 1, 'W0138', '001');

select * from t1 tx where exists ( select * from t1 ty where tx.a = ty.a and tx.c = ty.c and ty.b = 'W0001' ) and tx.b = 'W0138';
With the patch, result is
+-----------+-----------+-----------+
|        tx |        tx |        tx |
|         a |         b |         c |
+-----------+-----------+-----------+
|         1 |     W0138 |       001 |
+-----------+-----------+-----------+
cego 31.08.2018 2.41.4 Version released
cego 31.08.2018 2.41.4 Added database functions blobref and clobref to indicate the amount of lob references for a given lob
cego 30.08.2018 2.41.4 Fix in CegoDbThread::serveRequest, case PUTBLOB and PUTCLOB, the blobRef/blobSize setup was not handled correctly here
cego 30.08.2018 2.41.3 Version released
lfcbase 30.08.2018 1.12.2 Version released
lfcbase 30.08.2018 1.12.2 Fix in basecheck/DateTimeTest. Added an #ifdef MINGW32 for datetime values beyond 2040
cego 30.08.2018 2.41.3 Fix in CegoFactor::checkLob, the method implementation was still not complete. This might lead to problems during crash recovery of update operations
cegojdbc 29.08.2018 1.8.4 Version released
dragon 30.07.2018 1.5.1 Version released
dragon 30.07.2018 1.5.1 Fix in src/Main.cc and samples/gxmain-master.cc. Include of stdlib.h added, since this is needed for Linux compiles ( exit function )
In GoLangGenerator.cc scanner code was added to complete scanner state machine ( there still was missing some code for transition jumps )
dragon 27.07.2018 1.5.0 Version released
dragon 26.07.2018 1.5.0 Added code generation for GoLang. GoCode is generated, compiles and basically works Still some cleanup stuff required
cego 29.06.2018 2.41.2 Version released
cego 29.06.2018 2.42.2 Improvement for join optimizer in CegoSelect::consolidateConjunctionList. With the new introduced method CegoQueryHelper::checkIndexForPredicate the conjunction list elements are checked. This leads to a better join order, where index related predicates are evaluated first.
cego 19.06.2018 2.41.1 Version released
cego 18.06.2018 2.41.1 Performance optimization for bulk insert ( insert into t1 values ( 1, 'XX'),(2,'YY'),... ) Just with the last inserted tuple, the online redo logs are flushed to disk. For the the method paramter flushLog has been introduced for several methods ( CegoLogManager::logAction, CegoBufferBool::logIt, CegoTableManager::insertDataTable )
cego 17.06.2018 2.41.0 Version released
cego 16.06.2018 2.41.0 Modified lob handling in a way, that references to lobs are managed. This avoids expensive lob copy operations in case of update queries with lob values.
Since the lob reference counter is stored inside the lob, this incompatibles the datafile format with previous versions. In case of a tableset with lob values, an export and import is required for this version
Also lob recovery handling for update operations is fixed in this version ( CegoQueryHelper::encodeUpdRec and CegoQueryHelper::decodeUpdRec )
cego 14.06.2018 2.40.14 Patch in CegoProcedure::execute to treat cast from string to clob. For this the method parameters had to be expanded to provide TableManager and TableSetID which is required, to add a clob ( in case of a string to clob cast )
cego 14.06.2018 2.40.13 Version released
cego 13.06.2018 2.40.13 Fix in CegoDistCursor, class variable _useCache was not initialized, might lead to poor cursor performance, since the table data is cached although cache not enabled. Performance improvement for insert query. In case of array insert ( insert into t1 values ( 1, 'XX'), (2, 'YY'), (3, 'ZZ') ... ) insert operations are handled in a more efficient way
cego 12.06.2018 2.40.12 Version released
cego 12.06.2018 2.40.12 Modification for transaction handling in CegoDistManager::deleteLocalDataTable. Now the delete operation is executed inside a single transaction ( for any performance in the past, nested transactions had been executed in CegoTableManager::deleteDataTableEntrySynced, which leads to very poor delete performance )
cegojdbc 09.06.2018 1.8.3 Version released
cegojdbc 09.06.2018 1.8.3 Fixes in CegoSerialTokenizer for correct Umlauthandling.For this, the source string is converted to a byte array, since just in the array, the correct token positions can be detected ( Java treats umlaute as single characters )
cego 08.06.2018 2.40.11 Version released
cego 08.06.2018 2.40.11 Fix in CegoBTreeNode::operator = , _entrySize was not copied. This might lead to btree build problems
cego 08.06.2018 2.40.11 Fix in CegoBTreeNode::operator = , _entrySize was not copied. This might lead to btree build problems
cego 06.06.2018 2.40.10 Version released
cego 03.06.2018 2.40.10 In CegoFieldValue, small performance improvements for compare methods ( isEqual, isLess, isMore ... ) are made
cego 01.06.2018 2.40.9 Version released
cego 01.06.2018 2.40.9 In CegoFieldValue::fastComp for type VARCHAR now memcmp is used rather than strcmp. For type DATETIME, the compare is directly done on field pointers ( instead of copying to local unsigned long long variables )
cego 01.06.2018 2.40.9 Performance improvement in CegoAttrComp / CegoAttrCond classes. In the CegoAttrComp::setup method, the field value position is now also cached. So for subsequent method calls, the cached field array position is used instead of searching the position by looping through the array.
cego 25.05.2018 2.40.8 Version released
cego 25.05.2018 2.40.8 Modification of tableinfo information. Just object information is returned now without size information for each object. For large table configurations, this avoids response delay. To get size information, the command tablesize has been introduced. In this sense, tableinfo output is a subset of tablesize output.
cego 24.05.2018 2.40.7 Version released
cego 23.05.2018 2.40.7 Further performance improvement for advanced select queries. In CegoSelect, the attribute cache in not cleared anymore. This assumes to setup the the FLA structure with CegoExpr::setFieldListArray method. For this, the CegoExpr::evalField method had to be modified, since CegoSelect::getSchema had set up field list array with a different structure. Now the field information is given as an argument to getField, so the field list array has not to be set up.
It has been observed, that for sophisticated queries the performance improvement can be up to 30% depending on the number of join fields and joined tables.
cego 22.05.2018 2.40.6 Version released
cego 15.05.2018 2.40.6 Patch added for inner/outer joins with null condition in where clause ( e.g. select t1.a, t2.d from t1 left outer join t2 on t1.a = t2.c where t2.d is null ). The where condition has to be evaluated out of join, otherwise the may lead to wrong results. For this reason, n CegoDistCursor::joinSetup, the _innerCond and _outerCond variables are set to empty now in case of inner/outer join.
cego 13.05.2018 2.40.5 Version released
cego 11.05.2018 2.40.5 Small optimization for inner joins added. In CegoDistCursor::distSetup, _doEval is set to false, if the join type is inner join. For any outer joins, the evaluation is still required
cego 09.05.2018 2.40.4 Version released
cego 08.05.2018 2.40.4 Performance patch in CegoBTreeCursor::getFirst added. Instead of tracing each value in the first leaf node to find the entry point, this is now done by a binary search. This reduces search efforts from O(n) to O(log(n)) where n is the number of maximum index entries per btree leaf node.
This might reduce query execution time for complex joins with extensive use of btree cursors
cego 06.05.2018 2.40.3 Version released
cego 06.05.2018 2.40.3 Version released
cego 06.05.2018 2.40.3 Perormance patch in CegoBTreeCursor::traceLow / fullMatch / inRange methods. Instead of creating the field value as a local copy, the value reference from the btree value is used. This speeds up btree cursor trace performance about 20% faster
cego 04.05.2018 2.40.2 Version released
cego 02.05.2018 2.40.2 Improved version of CegoQueryHelper::decodeFVL, the assumption is, that column ids are coming in an increased order in field value list. So we do not need to loop over fvl to find the corresponding column id. Rather we iterate together with decoding buffer to perform decoding in O(n) ( instead of O(n*m) ) where n = number of matched rows and m number of columns in table
cegojdbc 30.04.2018 1.8.2 Version released
cegojdbc 30.04.2018 1.8.2 Improvement in class CegoNet::receiveDoc, If the message buffer exceeds, instead of an exception now the message buffer is reallocated. This avoids any definition dependency between database server and JDBC driver to correlate the appropriate buffer sizes.
cego 28.04.2018 2.40.1 Version released
cego 28.04.2018 2.40.1 New definitions in CegoDefs
#define NETMNG_MAXTUPLECOUNT 3000
#define NETMNG_MAXBYTECOUNT 10000000
Introdduction max maxByteCount allowed to increase MAXTUPLECOUNT, which should result in a better network performance. MAXTUPLECOUNT is still need for XML protocol ( legacy reason )
cego 28.04.2018 2.40.1 In CegoOutput, extended setDbHandle method to parameter maxBytePerMsg. In CegoDbHandler introduced method numCollected. So now also the amount of collected bytes is counted and is limited to a defined value per network message
cegojdbc 27.04.2018 1.8.1 Version released
cegojdbc 27.04.2018 1.8.1 Patch in CegoSerialTokenizer::nextToken , _pos has to be checked for less than _stream.length in while loop
lfcbase 27.04.2018 1.12.1 Version released
lfcbase 26.04.2018 1.12.1 Patch in File::flush for MinGW64, fsync functions seems not to be supported for MinGW64, so we flush stays empty
cegojdbc 25.04.2018 1.8.0 Version released ( supports cego 2.40.0 )
cego 25.04.2018 2.40.0 Version released. Please note, that this version is incompatible to previous versions in terms of datafile format and serial network protocol. A complete database export/import ( xml or sql dump ) is required for update. Futhermore lfcbase-1.12.0 base library is required.
lfcbase 25.04.2018 1.12.0 Version released
cego 25.04.2018 2.40.0 Performance patch in CegoTableManager::putClobData/puBlobData. The getNewFilePage method now is called with doAppend = true. In case of large filled database, clob import performance was pretty poor
cegojdbc 24.04.2018 1.8.0 Support added for cego version 2.40.0
cego 24.04.2018 2.40.0 Performance patch for CegoSerial class added. Now the token length is given to avoid any escape character handling. Please note, that this patch is incompatible to cego versions before 2.40
lfcbase 24.04.2018 1.12.0 Added Tokenizer::rawRead method to read a given number of bytes raw from the token stream
cego 23.04.2018 2.40.0 Support for lfcbase-1.12.0 API added. Please note, that this version is incompatible to previous database files. An XML export or SQL dump before update is required to be able to restore the database after upgrade
lfcbase 23.04.2018 1.12.0 Changed Datetime API, instead of provide asInt method, now the more advanced asLong method is implemented to handle 64 bit datetime values ( 2040 and beyond )
cego 20.04.2018 2.39.16 Version released
lfcbase 20.04.2018 1.11.9 Version released
cego 19.04.2018 2.39.16 Fix in CegoObjectManager::insertPageData, new data entry is checked now for maximum available space in page. This is done, if a new data page has to be allocated and the data entry still fits not into page
cego 19.04.2018 2.39.16 Added File::flush method to CegoLogManager and CegoFileHandler to synchronize log data and datafile data to disk
lfcbase 19.04.2018 1.11.9 Introduced new method File::flush to force synchronization of data to disk
cego 11.04.2018 2.39.15 Version released
cego 10.04.2018 2.39.15 Fix in dbcheck/expimpcheck, test plan was not set up correctly
In CegoXPorter and CegoExpImpStream, row export information was added again to indicate overall row export for each table
Fix added in CegoDbThread::serveRequest ( GETBLOB and GETCLOB case ) and CegoTableManager::getBlobData / getClobData chunkSize calculation. The existing calculation did not treat every boundary case.
cego 09.04.2018 2.39.14 Version released
cego 09.04.2018 2.39.14 Fix in CegoXPorter::writeRow and CegoXPorter::readRow for binary export and import of tables containing lob null values. lob null values must be identified by colLen unsigned long long = 0 instead of integer = 0
cego 09.04.2018 2.39.14 Fix in CegoXPorter::writeRow and CegoXPorter::readRow for binary export and import of tables containing lob null values. lob null values must be identified by colLen unsigned long long = 0 instead of integer = 0
cego 07.04.2018 2.39.13 Version released
cego 07.04.2018 2.39.13 Fixes in CegoLogManager, CegoRecoveryManager, CegoDistManager and CegoTableManager for LSN handling. Instead of saving the next LSN, now the current written LSN is recorded in CegoLogManager. This seems to be more natural, since a lot of methods set up the LSN to a value + 1. Also this fixes a mismatch between commited lsn and current lsn, which leads to a tableset recovery during startup in any case ( occured with version 2.39.9 )
cego 07.04.2018 2.39.13 Introduced CegoTransactionManager::getCrashAffectedTables method. In case of a crash recovery, all transaction affected tables have to be analysed for index objects. Before finishing transactions, the index objects have to be invalidated ( since they might be corrupted ) and after completion of transactions they have to be recreated. This is done now in CegoTableManager::finishOpenTransaction
lfcbase 06.04.2018 1.11.8 Version released
lfcbase 06.04.2018 1.11.8 Extensions made for Chain::toLower and Chain::toUpper methods. To treat multi character strings, a conversion is made to wide characters using mbstowcs libc function. case conversion now is done with towupper / towlower wide character function. Strings are then converted back to multicharacters using wcstombs function.
This allows upper/lower case conversion now for Umlaute ( öüä ) which have actually not been treated
cego 05.04.2018 2.39.12 Version released
cego 05.04.2018 2.39.12 Patch in CegoClient to catch format exceptions like "Invalid datetime string <0> for format <%d.%m.%Y %H:%M:%S>". This may happen, if on server side bad union selects are defined like
create view v1 as
select a as a, b as b from t1
union all
select a as a, 0 as b from t2;
where b is a datetime data type. In this case, bad formatted strings are occured on client side, which are catched now.
cego 05.04.2018 2.39.12 Patch in CegoDatabaseManager::useObject to support lock delay values > 1 sec. The DBM_LOCKDELAY value in CegoDefs has now increased to 2500 msec. In some cases for heavy updates ( e.g. clob updates ) this might be useful to avoid ugly exclusive lock delay messages in database log file
cego 04.04.2018 2.39.12 Fix in CegoTableManager::updateTuple, if the update fails ( this might happen, if another transaction actually updates the corresponding tuple ), any allocated lob values are freed now. Otherwise the for the lob values are data pages allocated with no more references
cego 31.03.2018 2.39.11 Version released
cego 31.03.2018 2.39.11 Cleanup stuff
cego 31.03.2018 2.39.11 Cleanup stuff
cego 31.03.2018 2.39.10 Version released
cego 31.03.2018 2.39.10 Improvements were made for log handling, the logIt method was moved from CegoTableManager to CegoBufferPool. This allows a more adequate locking of the logging actions. For this the tsLock array has been removed from CegoTableManager and lmLock array has been set up in CegoBufferPool. Since checkpoint writing occurs in CegoBufferPool ( which is also relevant for loging operations ), the logging method is now part of CegoBufferPool.
The logAction method in CegoLogManager has also been improved in a way, that a log buffer is not allocated for each logging operation anymore. Instead, a logBuf array has been defined for all tablesets and the logBuf is reallocated, if the current logging record exceeds the log buffer.
cego 29.03.2018 2.39.9 Version released
cego 29.03.2018 2.39.9 Added fixes for recovery procedure in CegoTableManager. Now the LSN is allocated at the beginning of critical operation to avoid double operations in case of a forced checkpoint. For this the CegoLogManager::nextLSN method has been introduced. Now it is no more ensured that the log is written with increasing LSN, so some logical parts of the recovery procedure in CegoRecoveryManager has been changed.
In CegoBufferPool, the writeCheckPoint method still returned int value. This has been changed to unsigned long long
cegojdbc 23.03.2018 1.7.9 Version released
cegojdbc 22.03.2018 1.7.9 Improvements for clob handling ( put clob to database )
cego 19.03.2018 2.39.8 Version released
lfcbase 18.03.2018 1.11.7 Additional fix to this release : Added regfree call to Matcher destructor. Missing this call seems to cause a small memory leak
cego 18.03.2018 2.39.8 Fix for memory leak in CegoPredDesc, pMatcher has not been cleaned up
lfcbase 18.03.2018 1.11.7 Version released
lfcbase 18.03.2018 1.11.7 Fix for memory leak in TreeT and AVLTreeT. The = operator implementation did not empty the tree before copy.
cego 09.03.2018 2.39.7 Version released
cego 09.03.2018 2.39.7 Fix in CegoRecoveryManager::recoverCurrentTransactionLog for the INSERT case. For the blob/clob handling, the lobREf values have not been set up correctly. This might lead to problems for table recovery with more than one lob row ( e.g. table t1 ( a blob , b clob )
cegojdbc 08.03.2018 1.7.8 Version released
cegojdbc 08.03.2018 1.7.8 Fix in CegoNet.closeSession, disconnect method call was added to close finally the socket descriptor. Otherwise this may lead to socket leaks with the error message "too many open sockets"
cego 08.03.2018 2.39.6 Version released
cego 07.03.2018 2.39.6 Some clob related fixes in CegoQueryHelper::decodeNativeFVL / decodeFVL which relevant for recovery handling
cego 07.03.2018 2.39.6 Fix in CegoTableManager::deleteDataTable, pBlock has to be checked for null value, otherwise crash recovery might crash. ( bug came with 2.39.0 to check for pBlock->getTriggerValueList )
cego 06.03.2018 2.39.5 Version released
cegojdbc 06.03.2018 1.7.7 Version released
cegojdbc 06.03.2018 1.7.7 Fix in CegoNet.getClob, the full msgSize has to put to setBytes method, otherwise large are getting corrupted in case of multiple message chunks
cego 06.03.2018 2.39.5 Bug fix in CegoAction::reallocateStringBuf, in the memcpy call, just the previous stringBufLen has to be copied ( _stringBufLen - MAXSTRINGLEN ). This bug might lead to seg fault in case of large parser input ( e.g. clob strings )
cego 06.03.2018 2.39.5 In CegoQuery for insert and insert-by-select case, allocated blob and clob data ( by CegoQueryHelper::prepareFieldValue ) is cleaned now if any exception occurs
cegojdbc 05.03.2018 1.7.6 Version released
cegojdbc 05.03.2018 1.7.6 Fix in CegoClob method setBytes, The copy operation was not correctly done
cego 05.03.2018 2.39.4 Version released
cego 05.03.2018 2.39.4 Small bug fix in CegoDistManager, which came up with version 2.39.0. In method deleteLocalDataTable, the variable delCount was declared two times, which lead to a result of 0 tuples deleted in any case
cego 03.03.2018 2.39.3 Version released
cego 02.03.2018 2.39.3 Small improvement in CegoDbThreadPool. For a better db thread load value calculation, the request queue is no more locked while no incoming requests. Instead the QUEUEDELAY parameter has been increased to a default value of 200 msec to reduce db thread cpu load while idle. Now the db thread have a good chance to report idle time to the db thread pool
cego 02.03.2018 2.39.3 Some boring code cleanup done
cego 02.03.2018 2.39.3 In CegoQuery::execute, changed order for setBlock and setFieldListArray for INSERT_QUERY case
cegobridge 01.03.2018 1.4.0 Version released
cegobridge 01.03.2018 1.4.0 Adaptions for cego-2.39
cego 01.03.2018 2.39.2 Version released
cego 01.03.2018 2.39.2 Fix in CegoTableManager::updateTuple, while setting up expression list, field list array must be setup BEFORE block ist set, since field list is needed by block setup ( in case of subqueries for prepare )
cegojdbc 01.03.2018 1.7.5 Version released
cegojdbc 28.02.2018 1.7.5 Added implementation for several clob relevant methods and like ResultSet.getClob, Clob.getCharacterStream and others
cego 27.02.2018 2.39.1 Version released
cego 27.02.2018 2.39.1 Fix in CegoQueryHelper::encodeFVL, for blob/clob values lists, the corresponding index variables ( blobidx/clobidx ) have not been increaed while encoding lob data. This might lead to invalid results and seg faults in case of multiple lobs values in one insert/update operation.
cego 26.02.2018 2.39.0 Version released
cegojdbc 26.02.2018 1.7.4 Version released
cegojdbc 26.02.2018 1.7.4 Consolidation of methodes CegoNet::connect and CegoNet::requestSession. This is just an small optimization for connection establishment
cego 25.02.2018 2.39.0 Trigger implementation basically completed
cego 24.02.2018 2.39.0 Trigger feature basically works for on insert. Some expansions for triggerValueList handling have to be done in CegoProcBlock class. This is for refering to ( insert ) values from the triggering statement
cego 24.02.2018 2.39.0 Initial trigger implementation done, classes CegoTrigger and CegoTriggerObject added and integrated, Parser expansion for corresponding trigger commands done. Code compiles
cego 23.02.2018 2.39.0 Started with trigger implementation
cego 23.02.2018 2.39.0 Introduced table locking statements to set an explicit lock on a table ( e.g. for update synchronisation ). This feature replaces the "set update sync on/off" command
cego 22.02.2018 2.38.20 Version released
cego 22.02.2018 2.38.20 For heavy update operations on tables with btrees used embedding transactions, duplicate btree errors may occur. This is caused by not checking corresponding tuple states. To solve this problem, the following fixes have been done : - Fix in CegoTableManager::checkBTreeIntegrity : The tuple state for found entries has to be checked if state = COMMITTED - Fix in CegoBTreeNode:checkForAffected ( was checkForDeleted before ) : The tuple state has already checked for state INSERTED if, tid != dataTid
cegojdbc 21.02.2018 1.7.3 Version released
cegojdbc 21.02.2018 1.7.3 Improvements made regarding network IO handling. Instead of using PrintStream for socket output, now native ByteStream is used. It has been observed, that PrintStream seems to have some overhead and slows down network communication significantly. Many parallel threads writing sockets in parallel may lead to an hanging IO ( observed on SUSE Linux ) Furthermore, the P() and V() semmaphore methods in CegoNet have been removed. Instead, for the critical regions, synchronized methods are used now. At all, this patch lead to a much better driver performance, especially for linux based systems
cego 10.02.2018 2.38.19 Version released
cego 10.02.2018 2.38.19 Fix in dbcheck/check065.sql for union sql in view.There must be set up aliases for attributes in selection now
cego 02.02.2018 2.38.18 Version released
cegojdbc 02.02.2018 1.7.2 Version released
cegojdbc 02.02.2018 1.7.2 Switched to sl4j API
cego 30.01.2018 2.38.18 Fix in CegoSelect::prepare, expression alias in select list are checked now for union selects. Alias definition in select expression list should be identical for all select statements in union
cego 28.01.2018 2.38.17 Version released
cego 28.01.2018 2.38.17 Fix in CegoTableManager::createForeignKey, for empty tables, referenced attributes names have not been checked. This might lead to invalid key objects.
lfcbase 18.01.2018 1.11.6 Version released
lfcbase 18.01.2018 1.11.6 Code cleanup class Net and NetHandler ( eg. changed from bind to ::bind since fpr FreeBSD 12, compile problems occured without namespace definition
cego 30.12.2017 2.38.16 Version released
cego 29.12.2017 2.38.16 Optimization for procedure load in CegoFunction::evalFieldValue ( case USERDEFINED ), procedure is just loaded as a dedicated instance ( via loadProcedure method ), if pMasterBlock is set. This avoids ( expensive ) dedicated load, if the procedure is still not in use by the corresponding thread. So just for recursive procedure calls, the dedicated load happens.
cego 26.12.2017 2.38.16 Added dbcheck/check072.sql. This implements the calculation of fibonacci numbers using stored procedures as a demonstration for massive recursive procedure calls
cego 22.12.2017 2.38.15 Version released
cego 21.12.2017 2.38.15 Introduced QUEUEDELAY ( in usec ) config parameter to adjust queue delay in database xml file. This allows to throttle down database response time for incoming connection requests and minimize CPU load
cego 21.12.2017 2.38.15 Increased NETMNG_QUEUE_DELAY to 1000000 ( 1 ms ) to minimize CPU load
cego 20.12.2017 2.38.14 Version released
lfcbase 20.12.2017 1.11.5 Version released
cego 20.12.2017 2.38.14 Fix in CegoAttrCond::getIndexCond, like and no like comparisons must be filtered out for new btree cursor tracing logic
lfcbase 20.12.2017 1.11.5 Stability patch for strptime implementation ( MinGW only )
cego 19.12.2017 2.38.14 Further optimization done in CegoBTreeCursor, introduced methods traceLow and inRange to treat btree comparison in a more efficient way
cego 18.12.2017 2.38.13 Fixed memory lead in CegoDistManager destructor ( _pPA was not deleted )
cego 15.12.2017 2.38.12 Since I had some paranoia regarding btree index cursor evaluation, I made some additional tests with bigger tables, multi-dim btrees and sophisticaed queries. All result sets are identical with the results by retrieving the data without btree ( full table scan ). So all looks good with this patch :)
cego 14.12.2017 2.38.12 Version released
cego 14.12.2017 2.38.12 Optimization in CegoBTreeCursor::getNext. Instead of calling getNext in a recursive way, this is now done in a iterative way. This might avoid heavy stacking in case of special query constraints ( e..g multi dimensional btrees and range conditions like a > 400 and b betweeen 'AAA' and 'DDD' )
cego 12.12.2017 2.38.11 Version released
cego 12.12.2017 2.38.11 More rework for btree evaluation in CegoBTreeCursor
cego 12.12.2017 2.38.11 Small optimization in CegoAttrCond::checkIndex, removed primary flag, since this is done now by attribute ordering. This leads to full index trace match instead of trace with index support and so, additional unnecessary predicate evaluation is avoided.
cego 10.12.2017 2.38.10 Version released
lfcbase 10.12.2017 1.11.4 Version released
cego 10.12.2017 2.38.10 Changed in CegoAttrCond compSet from SetT to TreeT. This is required, since we need the ordering in the set.
lfcbase 10.12.2017 1.11.4 Fixes in TreeT class, changed methods First, Next, isEmpty and compare operators to const
cego 10.12.2017 2.38.10 Fix in CegoBTreeCursor, CegoAttrCond and CegoAttrComp, for conflicting cursor conditions ( e.g. a = 4 and a < 1 ), the cursor evaluation failed, since just the primary condition was treated.
For CegoBTreeCursor, the method fullMatch has been introduced, to make an final evalution in case of multi conditions.
There was also introduced a ordering for CegoAttrComp set in CegoAttrCond to treat more constraint conditions at the beginning ( EQUAL before LESS_THAN before NOT_EQUAL and so on )
cego 09.12.2017 2.38.10 Fix in CegoDistManager, we have to use a dedicated parser for loadView and loadProc methods. Otherwise compilation may fail in case of nested objects ( e.g. a view which references another view object)
cego 09.12.2017 2.38.9 Version released
cego 08.12.2017 2.38.9 Modification in CegoFunction::evalFieldValue. To allow recursive calls of user defined functions and procedures, dedicated procedure instances are created for each call. This is done by parsing the procedure text via CegoAction
cego 07.12.2017 2.38.8 Version released
cego 07.12.2017 2.38.8 Version released
cego 07.12.2017 2.38.8 Introduction of new functions ascii ( get ascii character for numeric value ) , ldiv and lmod ( div and mod operation for long values )
cego 02.12.2017 2.38.7 Version released
lfcbase 02.12.2017 1.11.3 Version released
lfcbase 01.12.2017 1.11.3 Improvements made for dedicated strptime implementation ( pretty old stuff, found this several years ago anywhere in the net ) The function did not return null in case of unparsable date values. This code is just used for MinGW compiles since there is no implementation in the Standard C library available.
cego 01.12.2017 2.38.7 Fix in CegoXPorter::readTableObject, the defintion for MAXROW BUF still was defined locally and rowLen was noch checked.
Optimization in CegoFieldValue::decode, memory was allocated via malloc, rather _staticBuf should be used for performance reasons. _isLocalCopy was not set to true
cego 29.11.2017 2.38.6 Version released
lfcbase 29.11.2017 1.11.2 Version released
cego 29.11.2017 2.38.6 Fix in CegoFunction::getId and CegoSelect::getQueryId : with enabled query cache, the following select is cached
  select nextcount(mycount);
Since nextcount is a modifying operation, this is not a good idea. To avoid caching, CegoFunction now throws an Exception if nexcount / setcount function calls are detected during getQueryId. For these cases, the query id ignored for caching
lfcbase 26.11.2017 1.11.2 More detailed exception messages for BigDecimal and BigInteger
cego 25.11.2017 2.38.5 Version released
cego 25.11.2017 2.38.5 Fix in CegoBTreeValue::valueFromSchema, introducded method getReservedLength to return fixed value length for type fixed and decimal. Since for decimal and fixed type just the dimension is stored in CegoField::getLength, we must define a reserved area for those types. This is done now with constant definition RESERVED_BTREE_FLOATLEN in CegoDefs.h
cego 25.11.2017 2.38.4 Version released
cego 23.11.2017 2.38.4 Improved ordersize calculation in CegoOrderSpace:insertTuple. Now the following formula is used :
int s = sizeof(fv);
if ( fv.getLength() > STATICFIELDBUF )
   s += fv.getLength();
orderEntryLen += s; 
The catches the base memory usage for the instance but also the dynamic allocated part
cego 22.11.2017 2.38.3 Performance optimization done in CegoOrderSpace. Instead of storing the CegoField list for the result tuple in CegoOrderNode, just the values are stored there. The order cursor now gets the schema with the constructor and build the CegoField List in the getFirst / getNext methods. This seems a huge amount of heap space, which is dynamically allocated during the sorting procedure ( sortareasize parameter ).
Especially for large ordering result sets this saves significantly memory and improves performance.
cego 21.11.2017 2.38.2 Version released
cego 21.11.2017 2.38.2 Fix in CegoXMLSpace::setTSSortAreaSize, changed type from int to unsigned long long, otherwise overflow may occur for large sort area size configurations
cego 19.11.2017 2.38.1 Version released
cego 18.11.2017 2.38.1 Fix in CegoPredDesc::decode, loop variable i for IN/NOTIN case was not initialized
Fix in CegoAction::execCheckCreate, check contraints are checked for contained subselects. subselects are ( still ) not supported since the CegoCheckOject::decode method can not provide a valid tablemanager instance ( it is called from CegoObjectManager )
cegobridge 16.11.2017 1.3.0 Version released
cego 16.11.2017 2.38.0 Version released
cegobridge 15.11.2017 1.3.0 Adaptions made for modified cego-2.38.0 API with extended CegoDatabaseFormatter::formatPred method ( exprList was added for new introduced select in ( expr list ) predicate )
cego 15.11.2017 2.38.0 Introduced predicate clause for select .. in ( expr, expr, ... ),
e.g. select * from t1 where a in ( 1, 2, 3 ); This was still not implemented but is part of standard SQL
cego 15.11.2017 2.37.4 Fix in CegoSelect::clone, pUnionSelect was not cloned, which might lead to seg faults
cego 15.11.2017 2.37.3 Version released
cego 15.11.2017 2.37.3 Adaption in CegoMain to also parse comment lines in a more sophisticated way ( same as in CegoMain ), just relevant for server batch mode
cego 14.11.2017 2.37.3 Optimization in CegoDistCuror::joinSetup, the join predicate is now analysed in a way, that a condition list is created ( via makeCNF and createCondition methods in CegoQueryHelper ). The condition list then is analysed to achieve a better cursor condition which results in improved index usage
cego 14.11.2017 2.37.2 Version released
cego 13.11.2017 2.37.2 Fix in CegoClient, the new comment logic by using Tokenizer does not work ( '-' characters are detected as comment tokens ). Code replaced by using posStr chain function
dragon 10.11.2017 1.4.3 Version released
dragon 10.11.2017 1.4.3 Changed generated Java code to abstract class with abstract methods, which have been implemented by the parser action subclass. This seems to be a cleaner modeling
cegojdbc 10.11.2017 1.7.1 Version released
cegojdbc 10.11.2017 1.7.1 Support added for jdom2 and simple log4j
cegobridge 10.11.2017 1.2.1 Version released
cegobridge 10.11.2017 1.2.1 New generated configure script with libtool-2.4.6
dragon 10.11.2017 1.4.2 Version released
dragon 10.11.2017 1.4.2 New generated configure script with libtool-2.4.6
cego 10.11.2017 2.37.1 Version released
cego 10.11.2017 2.37.1 New generated configure script with libtool-2.4.6
lfcxml 10.11.2017 1.2.6 Version released
lfcxml 10.11.2017 1.2.6 New generated configure script with libtool-2.4.6
lfcbase 10.11.2017 1.11.1 Version released
lfcbase 10.11.2017 1.11.1 New generated configure script with libtool-2.4.6
cegojdbc 08.11.2017 1.7.1 Upgrade of 3rd party jars ( JDOM-2.0.6 and log4j ( switch to slf4j ))
cegobridge 07.11.2017 1.2.0 Version released
cegodbd 07.11.2017 1.4.0 Version released
cego 07.11.2017 2.37.0 Version released
lfcbase 07.11.2017 1.11.0 Version released
cego 07.11.2017 2.37.0 Added show parameter admin command to show all tableset independent database parameters
lfcbase 05.11.2017 1.11.0 Layout improvements in Pager class
cegobridge 05.11.2017 1.2.0 Support added for lfcbase-1.11.0
cegodbd 05.11.2017 1.4.0 Adaptions for support of lfcbase-1.11.0
cego 04.11.2017 2.37.0 Support for lfcbase-1.11.x with new Net API. The parameter maxSendLen ist still a constant in CegoDefs.h
Improvements added for CegoXMLSpace::setPerm, for existing permissions, just tableset, filter or right can be set up now,
e.g set permission p1 with right=WRITE for role1 just sets the right value for permission p1 to value WRITE, all other values are unchanged
lfcbase 04.11.2017 1.11.0 Changed constructor for Net and NetHandler class to setup maxSendLen. Since this changes the API, minor release level has been increased
cego 04.11.2017 2.36.6 Version released
cegobridge 04.11.2017 1.1.7 Version released
cego 04.11.2017 2.36.6 Improvements for cgclt, added pipe mode to read input from stdin
Now comments are allowed also after delimiter token, e.g.
create table t1(a int); -- a sample table
cegobridge 03.11.2017 1.1.7 Added index creation statement for MySQL datatype.
Treated are primary, unique and non-unique index objects
cego 03.11.2017 2.36.6 Error message correction in CegoSelect
cego 03.11.2017 2.36.5 Version released
cego 03.11.2017 2.36.5 Improvements for cgblow simulation mode added
cego 03.11.2017 1.10.3 Version released
lfcbase 02.11.2017 1.10.3 Value change of NetHandler::SENDLEN from 1024 to 8192 On FreeBSD based systems, the lower value lead to a poor network performance for large mesages, since subsequent send calls seem to slow down the network throughput. On OSX and Windows/MinGW64 based systems, this effect has not been observed but a sendlen of 8192 seems to be no problem also for these systems
cegobridge 01.11.2017 1.1.6 Version released
cego 01.11.2017 2.36.4 Version released
lfcbase 01.11.2017 1.10.2 Version released
cego 01.11.2017 2.36.4 Fix in CegoSelect::nextTuple, before adding an entry to the query cache, it has to be checked, if any tables from foreign tableset are referenced in the query. If so, no cache entry is made, since table changes for foreign tables are not detected.
cego 01.11.2017 2.36.4 Improved error messages for invalid database objects
cego 01.11.2017 2.36.4 Decreased shutdown delay time by reducing net delays for all thread pools and optimized mediator thread wait procedure
cego 01.11.2017 2.36.4 Completely removed the nologging option for import actions. Logging is disabled in any case now
cego 01.11.2017 2.36.4 Optimization added for log handling. During ( xml ) import, logging is completely deactivated, after import is completed, log is started again and a checkpoint is written.
Since import can be repeated in case of a system during import, nothing gets lost. Deactivating logging increases import speed and avoids side effects
cego 31.10.2017 2.36.3 Version released
cego 31.10.2017 2.36.3 Changed recovery strategy for existing btree / avl index objects. Before creating an index object, it is checked if exists. If exists, it is dropped and recreated. This seems to be a more stable strategy, since it may occur, that index objects still exist for several reasons.
cego 31.10.2017 2.36.3 Fix in CegoTableManager::createBTree : we must create log entry BEFORE creating the index content, since during index build, checkpoints may occur.
The checkpoint writes the btree object already to database and if db crashes after checkpoint, the index already exists.
This causes then "btree already exists" error during recovery
cego 31.10.2017 2.36.3 Added dbcheck/check063 to verify FLA cache handling
cego 30.10.2017 2.36.2 Version released
cego 30.10.2017 2.36.2 Fix in CegoFactor::setFieldListArray, the _flaCached variable has to be set to false, if _pFLA is set to a different value. Otherwise, we might refer to invalid memory, which results in core dump
lfcbase 30.10.2017 1.10.1 Version released
cegobridge 30.10.2017 1.1.5 Version released
lfcbase 29.10.2017 1.10.1 Added File class constructor to support STDIN read mode
cego 03.10.2017 2.36.1 Version released
cego 02.10.2017 2.36.1 Added signal handler to CegoAdmAction. Now, ( long ) running tableset export and import requests can be aborted in a controlled way via Ctrl-C command.
cego 30.09.2017 2.36.1 Fix in CegoXPorter, export file will be removed, if any exception occurs. So it is ensured, that the written export file is consistent and complete
cego 30.09.2017 2.36.1 Small fixes in CegoXPorter for CLOB handling ( was not checked for plain exports )
cego 29.09.2017 2.36.0 Version released
cego 29.09.2017 2.36.0 Adding missing export / import messages to CegoXPorter
cego 27.09.2017 2.36.0 Changed btree cache enabling syntax. Instead of a dedicated switch command ( set btree cache on / off ), the cache option now is directly given with the create btree command ( e.g. create btree b1 on t1(a) cached )
cego 27.09.2017 2.35.12 Version released
cego 27.09.2017 2.35.12 Improvement in CegoBufferPool::calcSegment for segid calculation. It has been recognized, that with the current calculation ( pageid % numsegment ) not all slots can be reached for special buffer pool configurations.
The formula has been changed ( to ( pageid / numpages ) % numsegment )
cego 26.09.2017 2.35.12 Fix in CegoTableManager::createBTree, pC object cursor has to be set to 0, otherwise in case of abortion a seg fault occurs
Changed default value for btree cache enabling to false
cego 24.09.2017 2.35.11 Version released
cego 24.09.2017 2.35.11 Completed pointer cleanup in CegoQueryHelper::evalPredicate, added check061 to check pointer cleanup
cego 17.09.2017 2.35.10 Version released
cego 17.09.2017 2.35.10 Fix in CegoQueryHelper::evalPredicate, for all predicate types, the field array value has to be reset to 0, otherwise seg fault my occur since invalid references might be used
cego 17.09.2017 2.35.9 Version released
cego 17.09.2017 2.35.9 Fix in CegoBufferpool::writeCheckpoint, in case of an locking exception ( lockBufferPool ), the pool must be released in any case. For this the CegoLockManager::lockBufferPool and CegoLockManager::unlockBufferPool have been modified in a way, that lockBufferPool saves the current sema index ( _poolRangeLock ) which is later used for the unlocking call.
cego 16.09.2017 2.35.9 Timeout parameter for bufferpool lock reduced to 60 seconds.
Optimization in CegoBufferPool:bufferfix for minHashId calculation in step 2, there was an unneeded locking operation for the minhashId, which was already locked by the mail loop
cego 12.09.2017 2.35.9 Small format fix in CegoProcCreateStmt ( missing indent )
Add header row out put for client raw mode ( attribute names )
cego 09.09.2017 2.35.8 Version released
cego 09.09.2017 2.35.8 Bug fix in CegoDistCursor::getTuple, for the LEFTOUTER case and moreRight conditions, the right table cursor was called double time ( native and with nextRight ). The native call has to be removed since this may lead to strange effects actually just observed for mingw compiles
cego 09.09.2017 2.35.8 Long type correction in CegoGroupEntry ( just relevant for MINGW compiles )
cego 08.09.2017 2.35.7 Version released
cego 08.09.2017 2.35.7 Change in several files from type long to type long long. This seems to be irrelevant on native Linux/OSX/FreeBSD compiles but has impact for mingw compiles, since sizeof(long) != sizeof(long long)
cego 06.09.2017 2.35.6 Version released
cego 06.09.2017 2.35.6 Fix in CegoPredDesc for INSUB and NOTINSUB constructor + clone method. There was a confusing with the isNegated flag which has been corrected ( also in using class CegoAction ) The wrong negation might lead to wrong query result for views using subselect with in or not in subselects
cego 05.09.2017 2.35.5 Version released
cego 05.09.2017 2.35.5 Fix in CegoQueryHelper::aggregateTuple, in case of min-Aggregation, wrong results may occur, if null values have to be treated. Since null value handling is now treated inside CegoFieldValue, some code here was obsolete.
cego 03.09.2017 2.35.4 Version released
cego 02.09.2017 2.35.4 Added tuple information command tupleinfo to indicate tuple state information for a given table ( COMMITTED, INSERTED, DELETED, OBSOLETE )
Fix in CegoTransactionManager::commitTransaction and CegoTransactionManager::rollbackTransaction, in case of a crash recovery the taList does not contain any transaction entries, but the rollback segments have to be checked in any case for entries to process. Otherwise, the transaction will not be completed
cego 02.09.2017 2.35.3 Version released
lfcxml 02.09.2017 1.2.5 Version released
lfcxml 02.09.2017 1.2.5 Small improvement in XMLSuite::nextChar to check for non-ASCII characters
cego 02.09.2017 2.35.3 Fix in CegoTableManager::finishOpenTransaction, the transaction id for the corresponding tableset must be set to zero, otherwise in case of crash recovery procedures a transaction id might be active and the open transactions are not completed correctly
cego 25.08.2017 2.35.2 Version released
cego 25.08.2017 2.35.2 Fix for a bad patch in 2.35.1, In CegoSelect::clone also the pCache variable has to be copied ( we previously done by calling setTabSetId )
cego 24.08.2017 2.35.1 Version released
cego 24.08.2017 2.35.1 Fix in CegoSelect::setProcBlock, pBlock was not setup for _pPred
This might result in wrong query results within stored procedures with select statements which refer to procedure variables
Changed index recovery handling in a way, that index and btree objects are rebuild immediately instead of invalidating them. This leads to a much better recovery performance in case of expensive queries where index use is needed for fast evaluation
cego 22.08.2017 2.35.0 Version released
cego 22.08.2017 2.35.0 Introduced simple selects, e.g. select 1, select sysdate, etc for select queries without any object access
This might be useful for example for database connection validation queries
cego 20.08.2017 2.34.3 Version released
cego 20.08.2017 2.34.3 The previous problem regarding query cache is a result of the new introduced select cloning. The extended query id string should solve the problem
cego 20.08.2017 2.34.3 Fix in CegoSelect::getId, the values of the parent join buffer have also be added to the query id string, otherwise, nested queries which references attributes to parent join buffer can not be distinguished
cego 19.08.2017 2.34.2 Version released
cego 19.08.2017 2.34.2 Fix in CegoDistCursor to support multiple view references in a query ( e.g. select a from v1 where exists select * from v1 ... ) In the past, this might lead to infinite loops, since just the view select reference was used. Now the reference is cloned.
The usage of clones results in several fixes for the CegoSelect::clone and underlying clone methods
cego 17.08.2017 2.34.1 Version released
cego 16.08.2017 2.34.1 Fix in CegoDistManager::checkKey ( used for verify tableset admin commend ). Check for foreign key has been redesigned
cego 15.08.2017 2.34.1 Fix in CegoBTreeCursor::getFirst, _pAttrCond has to be checked for 0, otherwise a core dump may occur ( detected with verify tableset admin command )
In CegoViewObject::toChain() the view object reference string has to return complete information including the tableset. Otherwise, references to foreign tableset objects with the vie will not work correctly.
cego 12.08.2017 2.34.0 Version released
lfcbase 12.08.2017 1.10.0 Version released
cego 12.08.2017 2.34.0 Introduced new date function newdate with optional numeric input. If used with year and month input, this can double the speed for date construction ( no string parsing required )
cego 11.08.2017 2.34.0 - Use of new introduced lfcbase datetime constructor to create datetime values with numeric input ( year, month, day, hour, minute and second ) for more efficient value handling
- Fix in CegoTypeConverter::getTypeLen for LONG_TYPE values, it should be size of(long long) instead of sizeof(long). This impacts MINGW compiles, since sizeof(long) ist just 4 bytes
- Changed CegoTypeConverter methods to static
lfcbase 11.08.2017 1.10.0 Added Datetime advanced constructor for more efficient datetime construction
cego 06.08.2017 2.33.23 Version released
lfcbase 06.08.2017 1.9.8 Version released
cego 06.08.2017 2.33.23 Small fix in CegoAttrCond::operator = , compare Find result with 0 instead of false. A compile error occured for MINGW compiles
lfcbase 06.08.2017 1.9.8 Adoptions made in CommandExecuter and Outstream for MINGW builds
cego 04.08.2017 2.33.22 Version released
cego 02.08.2017 2.33.22 More fixes in CegoTableManager::keyReferenceExists and CegoTableManager::createForeignKey, there still were missing some adpotions for TableCursor::setup return code and other case handling
cego 29.07.2017 2.33.21 Version released
cego 29.07.2017 2.33.21 Added further constraint check in CegoTableManager::dropObjectSynced. Primary objects just allowed to be removed, if no foreign key reference exists
cego 28.07.2017 2.33.21 More fixes on foreign key contraint handling in CegoTableManager::checkKeyIntegrity and CegoTableManager::insertDataTable methods
cego 27.07.2017 2.33.21 Fix in CegoTableManager::checkKeyIntegrity. The implementation of the mehod has been completly reworked, since not all violation cases have been treated.
cego 22.07.2017 2.33.20 Version released
cego 22.07.2017 2.33.20 Fix in CegoDistCursor to support advanced left and right outer join queries of the form
select tx.a as xa, ty.a as ya from t1 tx left outer join t2 ty on tx.a = ty.a + 1;
For this, the evaluation of the predicate has to be done in a different way to get complete row set
cego 16.07.2017 2.33.19 Version released
cego 16.07.2017 2.33.19 Fix in CegoOrderSpace::insertTuple, for the localTuple variable, also a dedicated copy has to be allocated, otherwise it may happen that invalid tuple references ( caused be page relocation ) lead to invalid order results
cego 16.07.2017 2.33.19 Added performance optimization to CegoTableManager::updateTuple. The already evaluated index, key and checklist are also provided to checkIntegrity method now ( instead of retrieving the lists again ). The improves performance for updates with many tuples significantly
cego 13.07.2017 2.33.18 Version released
cego 11.07.2017 2.33.18 Added tablemanager parameter to CegoProcWhileStmt to catch query abort. In case of infinite while loops, this enables the db admin to abort procedure execution
Optimization for CegoFunction::SETCOUNT procedure implementation added. Now this is an atomic operation ( ( instead of calling getCounterValue previously ).
For this, also the CegoXMLSpace::setCounterValue method has been changed to return the current counter value return the current counter value
cego 02.07.2017 2.33.17 Version released
cego 29.06.2017 2.33.17 Method cleanup in CegoSelect.cc, also some irrelevant case is treated for grouping clauses in combination with distinct operator
lfcbase 27.06.2017 1.9.7 Version released
lfcbase 27.06.2017 1.9.7 Removed include socketvar.h in Net.cc and NetHandler.cc since compile error occured for FreeBSD 12
cego 24.06.2017 2.33.16 Version released
cego 24.06.2017 2.33.16 Fix in CegoAction::execute, missing break added after calling execListView
cego 23.06.2017 2.33.16 Fix in CegoQueryHelper::evalPredicate. In case of subselects, the parent join buf also has to reset after performing the subselect, otherwise invalid pointer references are still active for the next caller
Seg faults have been experienced for delete with double nested subselect conditions ( see check055 )
cego 21.06.2017 2.33.15 Version released
cego 21.06.2017 2.33.15 Completion for admin help backup section, some commands were still missing
Improvements for procedure indent formatting. All sugar, nothing functional
cego 03.06.2017 2.33.14 Version released
cego 03.06.2017 2.33.14 Fix for distinct handling in CegoAggreation
Fix for alias handling regarding view creates. Alias definitions are mandatory now for aggregated attribute definitions, e.g.
create view v1 as select count(*) from t1;
=> returns now
ERROR: Missing alias reference for view create
and must be written as
create view v1 as select count(*) as c from t1;
cego 30.05.2017 2.33.13 Version released
cego 29.05.2017 2.33.13 Design modification in CegoAction for semantic action ( execXXX methods )
An analysed statement is now just executed after complete succesful parsing of the given input. This avoid protocol effects for queries like "select * from t1;;" where the query is executed but the second semicolon is detected as an parse error which also is sent to the client.
For this the new method CegoAction::execute has introduced which is ( explicitly ) called after successful CegoAction::parse
cego 27.05.2017 2.33.12 Version released
cego 27.05.2017 2.33.12 Fix in CegoAttrComp::reset, case VALUE2VALUE still was not treated, which lead to wron index handling for between clauses with native values
cego 25.05.2017 2.33.11 Version released
cego 24.05.2017 2.33.11 Fix in CegoQueryHelper::evalAttrCond, comparison modulation was missing for one case whihc leads to wrong query results for comparisons like 3 < a ( constant left )
Optimization added for between clause, indexes were just used for constant values in between clause ( eg. a between 10 and 20 ) This has been expanded, that also indexes are used, if attribute references are contained ( eg. a between t2.x and t3.y )
cego 14.05.2017 2.33.10 Version released
cego 12.05.2017 2.33.10 basecheck54 added for the previous described problem
cego 12.05.2017 2.33.10 Fix in CegoAttrComp::operator== The values should NOT be compares, since they are set up by the calling CegoAttrCond::update method Otherwise, the error "Cannot set up diff for attribute condition" occurs The following sample produces the error
drop if exists table t1;
create table t1 ( a int, b string(30));

drop if exists table t2;
create table t2 ( a int, b string(30));
create btree b2 on t2(a);

insert into t1 values ( 1, 'XXX');
insert into t1 values ( 2, 'YYY');
insert into t1 values ( 3, 'YYY');
insert into t1 values ( 4, 'YYY');

insert into t2 values ( 1, 'XXX');
insert into t2 values ( 2, 'YYY');
insert into t2 values ( 3, 'XXX');
insert into t2 values ( 4, 'YYY');


drop if exists procedure tproc;
@
create procedure tproc ( x in int )
begin
   delete from t1 where b in ( select b from t2 where a = :x );
end;
@

call tproc(2);
call tproc(3);
cego 10.05.2017 2.33.10 Added space character in CegoSelect::toChain after distinct keyword to avoid the following
ma > create view tview as select distinct hostname, pfcontact from ma_sysview where sysrole = 'production'; 
View tview created 
ok ( 0.001 s ) 
ma > select * from tview; 
Error : Unknown attribute field  
Query failed 
cego 09.05.2017 2.33.10 Fix in CegoObjectManager::createBTreeObject to avoid the following duplicate btree entry
drop if exists table t1;
create table t1 ( a int, b string(30));

create btree b1 on t1 ( a ); 
create unique btree b1 on t1 ( b );  -- this should result in an error

drop btree b1; 
drop btree b1;  -- at least both btrees could be dropped

For objectExists method, the value CegoObject::BTREE must be specifiy to detect the duplicates
cegobridge 07.05.2017 1.1.4 Version released
cego 23.04.2017 2.33.9 Version released
cego 23.04.2017 2.33.9 in CegoTableManager::getClobData added termination character to ensure clob values are terminated with 0 character
cego 23.04.2017 2.33.9 Small fixes for fixed value handling
Small fixes for quote escape handling in cgclt batch mode
cego 23.04.2017 2.33.9 In CegoAction::selectionList1 added alias check for non unique alias defintions
Stored Procedure formatting improvements regarding indent handling
cego 22.04.2017 2.33.8 Version released
cego 22.04.2017 2.33.8 Fix in CegoSelect::buildJoinConditions, the _attrPred array has to be set up. Otherwise it may occur, that the predicate is not evaluated, if it could not been evaluated by the table curser condition.
Furthermore, a setup method has been introduced for CegoAttrCond to evalute joinBuf and parentJoinBuf ( if both references occur in a condition this is needed )
cego 20.04.2017 2.33.7 Version released
cego 20.04.2017 2.33.7 Optimization in CegoCheckpoint::checkpointReached, if interval was reduced, we set up setup the new interval
cego 19.04.2017 2.33.7 Fix in CegoTableManager::removeAllComp, first we have to remove from the list, the we can free the memory. On Linux system with g++, the previous sequence might lead to memory faults
Fix in CegoRecoveryManager::recoverTableSet, after regDataFiles, als registerObjects method must be called, otherwise recovery could fail in case of table view recoveries
Optimization in CegoDistManager::stopDistTableSet, the new introduced method CegoDatabaseManager::removeAllObjects is called, the ensure object cache cleaning
cego 16.04.2017 2.33.7 Added prompt command line option to cgadm to set up specific prompt value
Adding formating improvements to CegoAdminHandler for show logmng and show backupmng commands
lfcbase 14.04.2017 1.9.6 Version released
lfcbase 14.04.2017 1.9.6 Small correction in OutStream, include required by FreeBSD ( fro definition of WEXISTATUS )
cego 13.04.2017 2.33.6 Version released
lfcbase 13.04.2017 1.9.5 Version released
cego 10.04.2017 2.33.6 Small improvements for utility scripts cgmkdb, logManager and backupManager
lfcbase 10.04.2017 1.9.5 Added method getErrorCode to OutStream class
lfcbase 09.04.2017 1.9.4 Version released
lfcbase 09.04.2017 1.9.4 Adaptions in OutStream and CommandExecuter classes for MINGW
lfcbase 08.04.2017 1.9.4 Cleanup of OutStream implementation ( removed some includes, removed ifdef for MINGW
cego 07.04.2017 2.33.5 Version released
cego 06.04.2017 2.33.5 Check052 has been introduced to verify the previous described behaviour
cego 06.04.2017 2.33.5 Fix in CegoSelect and friends for query cleanup. The cleanUp method did not cleanup all field value references which might lead to invalid memory access in case of repeated view calls ( Variable pParentJoinBuf ).
Corresponding cleanUp method have been introduced or CegoExpr, CegoTerm, CegoFactor and friends.
cego 02.04.2017 2.33.4 Version released
cego 02.04.2017 2.33.4 Fix in CegoTableManager::insertDataTable, the newRBEntry method call for the transactions manager also must be catched by the exception. Otherwise, the index might be corrupted if any exception occur ( e.g. out of temp space )
cego 01.04.2017 2.33.3 Version released
lfcbase 01.04.2017 1.9.3 Version released
lfcbase 01.04.2017 1.9.3 Small fixes for Monitor and Pager class, adding missing ifdef for curses option in Pager class, replaced CGNOCURSES with LFCNOCURSES
cego 30.03.2017 2.33.3 Fix in CegoRecoveryManager::recoverTableSet, before calling transactionRecovery, we have to set flag setIgnoreInvalid to true. During transaction recovery phase, we must ignore invalid btrees/index objects since these objects could be invalidated but Log data integrity and consistency is ensured
cego 29.03.2017 2.33.2 Version released
cego 29.03.2017 2.33.2 Added implizit tableset btree and index correction to recovery procedure ( CegoRecoveryManager::recoverTableSet )
cego 28.03.2017 2.33.2 Small syntax for cgadm from "backup TS" to "backup tableset TS" ( conform to other tableset commands )
Fix in CegoTableManager::deleteDataTableEntryAtomic / updateDataTableSynced / beginTransaction / commitTransaction / rollbackTransaction to avoid log entries for forced transactions ( introduction of doLog flag ).
Fix in CegoTableManager:deleteDataTable to avoid object synchronisation during recovery phase ( introduction is isSynced flag ), since during recovery phase, still no objects are registered and there is no need for synchronization
cego 27.03.2017 2.33.2 Added further admin console messages for recovery procedure. This enables the database admin to follow the recovery procedure on admin console level
cego 26.03.2017 2.33.1 Version released
cego 26.03.2017 2.33.1 Some cosmetic changes for backup manager handlng ( change from archmng to backupmng naming )
cego 24.03.2017 2.33.0 Version released
lfcbase 24.03.2017 1.9.2 Version released
cego 24.03.2017 2.33.0 Uplift to version 2.33.0 since the backup feature changes the product specification.
Integration of new introduced lfcbase OutStream class to catch output from backup manager. This allows to indicate a more detailed output from backup manager on admin console.
lfcbase 24.03.2017 1.9.2 Added class OutStream to catch stdout from forked programs via popen
cego 19.03.2017 2.32.16 Introduced archive manager, which can be triggered, to perform an online backup. Far now, online backups have to be triggered externally.
The achive manager should make backup / restore handling more convenient
lfcbase 19.03.2017 1.9.2 Added CommandExecuter::executeStream method to catch stdout for any forked process
cego 18.03.2017 2.32.15 Version released
cego 18.03.2017 2.32.15 Added database verify006 to check multidimensional btrees also in combination of null value handling.
cego 16.03.2017 2.32.15 * Fix in CegoObjectCursor::getNext, double method call for unlockData removed. * Small grammar correction to treat distinct flag for select-star statement * Fix in CegoBTreeCursor::compValue, null values have not been handled correctly. For string values, string termination was not clean, which also might lead to wrong cursor results
cego 11.03.2017 2.32.14 Version released
lfcbase 11.03.2017 1.9.1 Version released
cego 11.03.2017 2.32.14 Added check to CegoXMLSpace::addArchLog to verify, that directory for new archive location really exists
cego 11.03.2017 2.32.14 Added archive log management to curses based CegoAdmMon administration console
lfcbase 11.03.2017 1.9.1 Small fix for Monitor::showFormBox, in case of menu elements, delete key is disabled
cego 08.03.2017 2.32.13 Version released
cego 07.03.2017 2.32.13 - Fix in CegoBTreeValue::valueFromSchema added.
In case of multidimension btree objects, the insert of new values might fail, if string bases attributes occur at the beginning Here comes a sample :
drop if exists table t1; 
create table t1 ( a string(10), b string(10), c int ); 

insert into t1 values ( 'HUGO', 'ALPHA', 0 ); 
insert into t1 values ( 'HUGO', 'BETA', 0 ); 
insert into t1 values ( 'HUGO', 'GAMMA', 0 ); 
insert into t1 values ( 'HUGO', 'EPSILON', 0 ); 

create unique btree b1 on t1  ( a, b); 

-- this update will fail
update t1 set c = 1; 
- Fix in CegoDistManager::registerObjects, registration of btree objects was still missing. This might lead to wrong results for drop if exists btree statements
cego 07.03.2017 2.32.12 Version released
cego 06.03.2017 2.32.12 Correstion for distinct clause. With the current grammar implemention, queries with nested selects and using the distinct operator might fail. Cego.def grammar and CegoAction implementation has been changed in way, that distinct option is just allowed at the beginning ( e.g. select distinct count(a) from t1 and NOT select count(distinct a) from t1 )
This should simplify usage, since by using the distinct clause, distinct tuples are retrieved either for plain queries or for aggregation
Confusing sample not allowed anymore : select count(distinct a), count(distinct b) from t1 ... now select distinct count(a), count(b) from t1 )
cegobridge 05.03.2017 1.1.3 Version released
cego 05.03.2017 2.32.11 Version released
cego 04.03.2017 2.32.11 Online index build up tested and verified. First tests with heavy insert operations ( using cgblow ) during index build went succesful.
cego 04.03.2017 2.32.11 Improvements for CegoAdmMon role permission handling, added remove permission option
cego 04.03.2017 2.32.11 Preparation of CegoObjectCursor and CegoTableManager to support online index rebuild with write access to the table.
For this, concurrent insert operations have to be performed with append =true. The ObjectCursor locks the last page until the index rebuild is finished ( method setLastPageSync )
In this way, the index can be build up in parallel, while further tuples could be appended to the table. ( just supported for btree index objects )
cego 25.02.2017 2.32.10 Version released
cego 25.02.2017 2.32.10 Fix in CegoDistManager::stopDistTableSet, removing of btree objects from database object dictionary was still missing
In CegoTableManager::dropTableSet now also counter objects are dropped ( stored in the database xml file ).