× News Cego SysMT Croom Web Statistics Impressum
SysMT Logo
Change Log

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

Last 10 30 100 1000 10000 entries

Category Date Version Log
cego 18.08.2025 2.52.29 Version released
cego 17.08.2025 2.52.29 In CegoDbThread::serveRequest, added further tableset states ( BACKUP, CHECKPOINT ) where sessions are accepted
cego 17.08.2025 2.52.29 Renamed new option forcestart to lockexpire. Since the argument expects an expire value, this seems to be a better naming.
Added lockexpire option to bsd rc script
cego 14.08.2025 2.52.28 Version released
cego 14.08.2025 2.52.28 Added command line option forcestart with integer parameter seconds exceeded. If set, this option will check for the configured daemon lockfile and if the timestamp of the lockfile is older than now - seconds exceeded, the lock file is removed and the database is started.
Since in the meantime, the database crash recovery seems to be pretty stable, this option makes sense.
cego 13.08.2025 2.52.28 Improved input handling in CegoClient. For interactive mode, trailing LF, CR and multiple semicolons are cut now.
cego 11.08.2025 2.52.27 Version released
cego 10.08.2025 2.52.27 Some code cleanup done in CegoSelect::nextTuple for code isolation regarding start and finish caching ( methods startCaching and finishCaching have been introduced )
Another performance patch was made regarding CegoSelect::reset method. Freeing table cursors is no more needed, so doRelease parameter was removed from the method. It is expected, that nested views and subqueries in expressions which are traced multiple times should run pretty faster.
cego 08.08.2025 2.52.26 Version released
cego 08.08.2025 2.52.26 Version released
cego 08.08.2025 2.52.26 For the admin command "threadinfo db", lastAction was added to the threadlist to indicate the current processed query. Once, this was indicated by "threadinfo db <thrid>", but was lost with introduction of query history
cego 08.08.2025 2.52.26 Added format improvements for CegoAction::getPlanString to indent subqueries
cego 08.08.2025 2.52.26 Added fix in CegoPredicate::eval, the cleanUp method call was removed, since this seems to be not needed and throttles performance in case of nested select statements
cego 01.08.2025 2.52.25 Version released
cego 01.08.2025 2.52.25 Fix added in CegoAttrCond::asConjunctionList, for the _isAnd == false case, the attr name also must be mapped to alias name from expression list to satisfy views, where attribute names are mapped
cego 31.07.2025 2.52.24 Version released
cego 31.07.2025 2.52.24 Added fix for combined conditions with in-expr predicate ( in-expr and comparison, e.g invnr like '%4711%' and status in ( 'EDIT', 'REVIEW' )
For these kind of conditions, CegoQueryHelper::checkAttrCond must priorize one of the predicates. For this, new method CegoAttrCond::hasIndexCandidate has been introduced
cego 27.07.2025 2.52.23 Version released
cego 26.07.2025 2.52.23 The optimization expansion basically works. Several code modules around CegoAttrCond have been adapted to support this expansion. Execution plans for several test cases look good and test suite runs without any errors.
cego 25.07.2025 2.52.23 Started with further join optimization for in-exprlist-Conditions. This idea is, to expand CegoAttrCond with a isAnd-Flag. If flag ist not set, the contains CegoAttrComp set which are treated as a or-list. CegoTableCursor then uses this or-list ( instead of a and-list ) and traces for each attribute comparison via btree cursor
This optimization will just work for in-expr conditions ( e.g. a in ( 'alpha', 'beta', 'gamma') ) but NOT for any other or-Condition
cego 24.07.2025 2.52.22 Version released
cego 24.07.2025 2.52.22 Fixed a memory leak in both CegoDistCursor::distSetup methods. _pJoinPred must be freed before allocate it via CegoPredicate::getReduced method
cego 24.07.2025 2.52.22 To join plan added information for master predicate ( eval on level 0 )
For master predicate mapping, added case cond case
cego 23.07.2025 2.52.22 More work on check123.sql to render random invoices which is useful to perform queries on larger filled tables
cego 23.07.2025 2.52.21 Version released
cego 22.07.2025 2.52.21 Several patches have been addd to handle join master predicate in the most optimal way. To show several condition cases, check123.sql has been introduced to demonstrate the join optimization for different join cases
cego 21.07.2025 2.52.21 For the new introduced master predicate handling, there was still missing some case handling. To map consequently a view condition to the unerlying join, a more sophisticed mapping is needed. For this, further mapping methods have been introduced in CegoExpr, CegoTerm, CegoFactor, CegoFunction and CegoCondition
E.g. for the following query on the view companyview
plan select cpid from companyview cv where lower(cv.cpname) like '%%' or debnr = 3;
The master condition now is mapped as can be seen in the execution plan
... Joining table company (cp) with full table scan with master condition (cp.debnr) = 3 or lower((cp.cpname)) like '%%' ...
Still just a subset of any possible master condition is actually mapped inside the view join. If no mapping is possible, the condition must be evaluated outside with a possibly lower performance
cego 20.07.2025 2.52.20 Version released
cego 20.07.2025 2.52.20 Added verify010 db check with a small invoice er model. This is used for advanced query verification with multilevel nested views and other dynamic stuff which is also relevant to proof valid results from query cache
cego 19.07.2025 2.52.20 Added fix in CegoAction for the following query:
select invid from invoice where status = ( select 'OPEN' );
In CegoAction::noFromOption, for _coListStack has to be pushed empty coList
cego 19.07.2025 2.52.20 For the new introduced query optimization, several code extensions have been added. In CegoPredicate, new methods map, getReduced, mapExpr and reduceExpr have been added to convert the "master" predicate to an appropriate form, which can be handled by CegoDistCursor. Also for for CegoDistCursor, the distSetup methods have been expanded to propagate the master predicate
cego 18.07.2025 2.52.20 Performance optimization added in CegoSelect and CegoDistCursor for or-condition handling
If an or-condition is recognized, the predicate is propagateed to the corresponding join level cursor and the evaluation is handled by the cursor.
This might avoid large table cursor result sets for the embedding join and might improve overall performance of the query
cego 16.07.2025 2.52.19 Version released
lfcbase 16.07.2025 1.22.1 Version released
lfcbase 15.07.2025 1.22.1 More patches on Replacer class to handle more match and replace cases. The match token has been changed to $ char to treat database integration.
cego 14.07.2025 2.52.19 Started with integration of lfcbase Replace class. For this, new function regmatch was added
lfcbase 13.07.2025 1.22.0 Version released
lfcbase 13.07.2025 1.22.0 More work on Replacer class with heafy rework of orgiginal regex_replace.c code. The original code did not treat many cases, e.g. replace string without prefix, multiple replace references and so on.
lfcbase 12.07.2025 1.22.0 Added further fixes for BigDecimal, scale handling still not correct for some cases
lfcbase 11.07.2025 1.22.0 Added class Replacer to support string replacement based on regular expressions ( like unix sed )
lfcbase 11.07.2025 1.21.9 Version released
lfcbase 11.07.2025 1.21.9 Fix added to BigDecimal class for internal constructor to normalize zero values to "0" and in scaleTo method to treat zero values correctly
cego 10.07.2025 2.52.18 Version released
lfcbase 10.07.2025 1.21.8 Version released
cego 09.07.2025 2.52.18 Added suport for lfcbase-1.21.8 ( BigDecimal::RoundMode ), Round mode ist setup in dbxml via database ROUNDMODE attribute ( either UP, DOWN, HALFUP, HALFDOWN )
lfcbase 09.07.2025 1.21.8 For class BigDecimal::scaleTo, added RoundMode parameter which can either be UP ( round up ), DOWN ( round down ) , HALFUP ( round up if neigbours equidistant or higher ) or HALFDOWN ( rond down if neighbors are equidistant or lower )
cego 08.07.2025 2.52.17 Version released
cego 08.07.2025 2.52.17 Added datetime cast operator to convert from string value to datetime. If used, this avoids expensive real time cast operations for queries and should accelerate execution time
cego 08.07.2025 2.52.16 Version released
cego 08.07.2025 2.52.16 In CegoFieldValue::toChain, for case DATETIME resulting string was corrected. In the meantime, we avoid date value construction via date/scandate function, either the required value is calculated via cast. So just the date string value is provided in the defined datetime formt.
cego 07.07.2025 2.52.15 Version released
cego 06.07.2025 2.52.15 Added performance patch to CegoSelect::buildJoinConditions. pPred is set to checked if analyzed as complete, also if the predicate is external ( setup via setViewCond ) In the meantime, external conditions are fully handeled via CegoDistCursor
cego 04.07.2025 2.52.14 Version released
cego 04.07.2025 2.52.14 To provide an appropriate output length for datetime values, date format evaluation has been added to CegoMain which sets up __dateLength. This global variable then is used by CegoQueryHelper to provide appropriate length ( method maxFieldSize )
cego 04.07.2025 2.52.13 Note : If check contraints are used, tableset export and import is required for this version !
cego 03.07.2025 2.52.13 Version released
cego 03.07.2025 2.52.13 Introduction of nclike operator for case insensitive pattern matching ( analog usage as like operator )
cego 03.07.2025 2.52.12 Version released
cego 02.07.2025 2.52.12 Patch addded in CegoTerm::getSelectQueryList to retrieve subselects also for case conditions and nested conditions. So this affects also class CegoFactor, CegoCaseCond and CegoCondition which have to provide the getSelectQueryList method. This extension is required to retrieve appropriate table sets for query cache decicisions
cego 25.06.2025 2.52.11 Version released
cego 25.06.2025 2.52.11 Fix added in CegoQueyHelper::evalAttrCond, COMPLETE value must be returned in flArray loop and if not found PARTIAL must be returned ( return was missing )
cego 21.06.2025 2.52.10 Version released
cego 21.06.2025 2.52.10 Added tableset online check in CegoDbThread::serveRequest. This avoids query execution of any connected client during recovery phase
cego 20.06.2025 2.52.10 Improved log trace in CegoDistManager::startTableSet to log complete stack trace in case of tableset startup failure
cego 15.06.2025 2.52.9 Version released
cego 15.06.2025 2.52.9 Added duplicate check for table aliases in CegoSelect::evalReferences
cego 15.06.2025 2.52.9 In CegoSelect::getPlan, added parentJoinBuf setup for nested queries in expression list to evaluate join plan correctly ( parentJoinBuf is required for analysis in CegoQueryHelper::checkAttrCond)
cego 15.06.2025 2.52.9 Fix added in CegoDistCursor::joinSetup, for outerCond calculation, also null value comparisons are used, since leads to correct join results and can be optimized by using btrees. ( set attrCond.getFilterCond(outerSchema, false) to (outerSchema, true) for left outer and right outer join)
cego 09.06.2025 2.52.9 In CegoAdminHandler::getUserInfo, increased size of NUMREQ and NUMQUERY from 10 to 12, which could be usefulfor some long running system with many requests ( > 1000 000 000 requests )
Added pack mode in CegoClient for a better representation of large string column definitions. A number of packsize rows is analyzed and the schema is packed for minimal column length, e.g.
CGCLT > desc table t1;
+-----------+-----------+-----------+-----------+-----------+-----------+
| TABLEDESC | TABLEDESC | TABLEDESC | TABLEDESC | TABLEDESC | TABLEDESC |
|      ATTR |      TYPE |    LENGTH |       DIM |   DEFAULT |  NULLABLE |
+-----------+-----------+-----------+-----------+-----------+-----------+
|         a |       int |         4 |         0 |      null |       yes |
|         b |    string |       300 |         0 |      null |       yes |
+-----------+-----------+-----------+-----------+-----------+-----------+
2 tuples
ok ( 0.001 s )
CGCLT > select * from t1;
+-----------+-------+
|        t1 |    t1 |
|         a |     b |
+-----------+-------+
|         1 | Hello |
+-----------+-------+
1 tuples
ok ( 0.001 s )
cego 31.05.2025 2.52.8 Version released
cego 31.05.2025 2.52.8 Fix added in CegoSelect constructors to initialize _joinLevel to 0. A problem may arise, if the reset method is called without a previous select analyse which happens in nested subselects
cego 30.05.2025 2.52.7 Version released
cego 30.05.2025 2.52.7 Patch added in CegoPredicate::getExprOnlyValue, changed return value from reference to value
cego 28.05.2025 2.52.6 Version released
lfcbase 28.05.2025 1.21.7 Version released
cego 28.05.2025 2.52.6 Patch added in CegoCondition and CegoPredicate for arithmetic expression evaluation. The recent grammar modification limits enclosed arithmetic expression to logic expressions. This leads confusing results e.g. for select ( a + b ) / 2 from t1 since ( a + b ) is evaluated as a condition with a logical value as the result ( true or false ) ( caused by grammar production : Factor -> LB Condition RB ) Arithmetic expressions are just parsed with grammar production Predicate -> Expr ( expression only ), so for this case now a special handling has been added ( with new introduced method CegoPredicate::getExprOnlyValue )
lfcbase 17.05.2025 1.21.7 Added improvements to Pager class, e.g. case insensitive search and message box at end of search )
cego 12.05.2025 2.52.5 Small adaptions made for Debian ( in cgwtest.c, cast added to malloc for CGClob and CGBlob allocation ). There are still required some changes for the testsuite shell scripts to safisty Debian flavour ( expimpcheck )
cego 11.05.2025 2.52.4 Version released
cego 11.05.2025 2.52.4 Adaptions made for pager history feature
lfcbase 11.05.2025 2.21.6 Version released
lfcbase 10.05.2025 1.21.6 Added history feature to Pager class. Command history can be loaded and saved with readHistory and writeHistory methods.
Navigation through command history in Edit mode with Cntrl-P and Cntrl-N
lfcbase 10.05.2025 1.21.6 In Pager class, added buffer scrolling in editor part. Preparation started for Pager command history management
cego 05.05.2025 2.52.3 Version released
lfcbase 05.05.2025 1.21.5 Version released
cego 05.05.2025 2.52.3 Adaptions made for lfcbase-1.21.5
lfcbase 05.05.2025 1.21.5 Added virtual method hasData to Pager class. The method must be implemented to indicate, if an execution returns a result set. If no result set is returned, just a message box is shown and edit mode is left ). This seems to be useful for DML queries ( insert, udate, delete, create, drop, ...)
lfcbase 04.05.2025 1.21.4 Version released
lfcbase 04.05.2025 1.21..4 To support several keyboard layouts, changed some window control sequences from Cntrl-Key to ESC key ( e.g. Esc-h is now help in edit mode )
lfcbase 02.05.2025 1.21.3 Version released
lfcbase 01.05.2025 1.21.3 Added pattern search feature for Pager class
cegojdbc 01.05.2025 1.14.0 Version released
cegojdbc 01.05.2025 1.14.0 Support added for cego-2.52
cego 01.05.2025 2.52.2 Version released
lfcbase 01.05.2025 1.21.2 Version released
cego 01.05.2025 2.52.2 Fixes made for CegoFunction regarding Datetime long long values ( e.g. date2str from int to long long )
lfcbase 01.05.2025 1.21.2 Patches added in Datetime class to complete change from unsigned long long to long long value
cego 30.04.2025 2.52.1 Version released
lfcbase 30.04.2025 1.21.1 Version released
cego 30.04.2025 2.52.1 Added patches for abort handler to cgclt pager mode
Queries now can be interrupted with Cntrl-C also in pager mode