Commit Graph

399 Commits

Author SHA1 Message Date
Björn Lemke 3355938f08 databases/cego: 2.54.29 -> 2.54.38, devel/lfcbase: 1.23.5 -> 1.23.6
lfcbase:
- compiler warnings fixed for class Chain::toUpper and toLower
  ( dynamic wText allocation )

cego:
- procedure cache
- Added admin command set maxpagedelete to set up maximum number
  of pages marked for delete before forcing a checkpoint.
- CegoQueryManager: _authUser has to be stored locally,
  otherwise setUser method looses user information, if auth was not enabled
- new admin command object usage to show usage of tableset objects
  to detect any usage leaks and to get an overview of objects in
  use by running database threads
- backupManager: indicate number of logs to recover up to crash
  for the corresponding backup id.
- Fix added in CegoRecoveryManager::recoverCurrentTransactionLog
- Added list transaction command
- Added cgclt command show transaction to indicate detailed
  transaction information
- in CegoPredicate::Constructor, for LIKE-Constructor, the case
  ISNOTLIKE was not treated with the right condition
  ( ! isNegated && isCaseSensitive => isNegated && isCaseSensitive )
2026-07-02 21:04:09 +02:00
Björn Lemke 6f01aa2355 databases/cego: update 2.54.25 -> 2.54.29
- fix in CegoBTreeValue::valueToFVL
- log mesage cleanup done for CegoRecoveryManager, CegoQueryManager
  and CegoTableManager.
- Changed return code of CegoBufferPool::writeCheckPoint to int to
  return the exit code of the optional escape command.
  This exit code then is indicated in the admin console
- Consolidation work done for CegoTableManager and CegoAuthManager
- Code reorganization for CegoAuthManager, CegoQueryManager and
  CegoTableManager: TableManager contains low level data access methods,
  QueryManger contains high level access and AuthMenager contains
  authorized access methods
- Post patch for this version : In CegoFieldValue::castTo, changed
  __dateFormatLock to writeLock. This is needed, since with readlock
  the _dateFormatList could be traversed in parallel by the Datetime
  constructor. This may lead to concurreny issues

Author:    Björn Lemke <lemke@lemke-it.com>
2026-06-14 20:34:33 +02:00
Björn Lemke c6db2c5b8c databases/cego: update 2.54.23 -> 2.54.25
- btree dump implementation to CegoAction::execDumpBTree
- cleanup of dump statements ( moved dump table / btree statements from
  CegoAdm.def to Cego.def ).
  Dump still supported for table objects
- In CegoFunction::evalFieldValue, case USERDEFINED,
  removed cout debugging statements
- A recovery issue occured when using user function is expression list
  for update operations. For expressions containing user functions,
  the values for CegoQueryManager and tabSetId have to be setup explicit,
  since this is not done by redo log decoding. The corresponding setup
  method setQueryManager has been added for all involved classes
  ( CegoExpr, CegoTerm, CegoFactor, CaseCaseCond, etc )
- new global variable CegoFieldValue::__recoveryTS has been introduced.
  During transaction recovery, this variable is setup to the
  corresponding recovery timestamp. So the constant datatime value
  sysdate is setup to the current recovery timestamp value
  ( otherwise the current timestamp is used )
- Introduced crash recovery autocorrect option ( direct and post )
  for index rebuild either direclty after invalidating index during
  recovery or at at the end of the recovery procedure.
- indirect advantage : in case of many insert operations during recovery,
  this might lead to a faster recovery time, since index is
  invalidated and not treated
  direct advantage : in case of index oriented update operations,
  this might lead to a better recovery performance

Author:    Björn Lemke <lemke@lemke-it.com>
2026-05-24 13:25:41 +02:00
Björn Lemke 068d0df5b1 devel/lfcbase,databases/cego: 1.23.3 -> 1.23.5, 2.54.16 -> 2.54.23
lfcbase:
- Improved error message for File::open with strerror details added
- In File::operator = and File:operator +=, after file copy operation,
  source file descriptor was not closed.
  This might lead to file descriptor leaks.

cego:
- Many fixes for crash recovery and startup, write logs, etc.
2026-04-09 10:10:50 +02:00
Björn Lemke 8293be66e5 databases/cego: update 2.54.9 -> 2.54.16
- rework tableset verification procedure
- removed logback.xml to avoid logging side effects
- Added admin command "verify locks" to perform a test aquire
  of all lock manager locks read and write
- Fix CegoQueryHelper::maxFieldSize.
  The returned size must be at least MAX_NULL_LEN
- CegoTableManager::checkBTreeIntegrity support for allowDuplicateNull
  feature ( multiple null values in unique btree )
- CegoLockHandler, check for unlock methods to check for lockId == 0
- Completed verify locks command with missing pool, querycache, tablecache,
  db and xml locks
- CegoClient: query abort via interrupt character fixed
2026-03-13 19:44:03 +01:00
Björn Lemke 2daab57770 databases/cego: update 2.54.7 -> 2.54.9
- fix CegoAdminThread::srvVerifyTableSet for view loop iterator
- Before decoding values via CegoQueryHelper::decodeFVL,
  the btree schema has to be sorted in terms of field id.
  Otherwise, decoding might be not complete in case of
  non-ascending btree attributes.
  fix in CegoBtreeNode::verifyLeafFull
2026-02-24 20:45:13 +01:00
Björn Lemke 69ff2b9e0f devel/lfcbase,databases/cego: update 1.23.2 -> 1.23.3, 2.54.2 -> 2.54.7
lfcbase:
- Screen class regarding, some int to unsigned fixes

cego:
- patch in CegoAction::execProcCall and CegoAction::execFuncCall,
  fix locking in case of exceptions
- CegoAdmScreen to support current backup and restore features.
  Also added online help
- added dbcheck/failcheck to also check correct handling of failed queries
- Fixes added for CegoFieldValue:castTo. In case of thrown data
  conversion exceptions, is is ensured, that _pV is set to _staticBuf
  after freed, otherwise memory fault cause by double free in desctructor
  may occur
- initfile handling fixed
- CegoAdminThread::executeRestore improvements
  with online docs updated for the restore procedures
- Added patches to CegoBufferPool, CegoLogManager and CegoArchiveThread.
- database xml file will be updated during checkpointing runs.
2026-02-15 10:09:32 +01:00
Björn Lemke 6f3027a1ec databases/cego: update 2.54.1 -> 2.54.2
- fix for eft and right outer joins
2026-01-25 20:55:58 +01:00
Björn Lemke c99902e64e databases/cego: update 2.53.8 -> 2.54.1
- Removed PIDFILE attribute from db xml.
  PIDFILE should be specified by database startup with pidfile option
- remove distributed mode, was never used in production (2.53.x -> 2.54.x)
- Changed tableset ticket handling for backup recovery
2026-01-24 18:30:28 +01:00
Björn Lemke 429f5de689 databases/cego: update 2.53.4 -> 2.53.8
- big rework for crash recovery
- Added point in time recovery option to restore to a specified lsn.
- Cleanup and reduction of logging in CegoRecoveryManager
2026-01-03 13:31:33 +01:00
Björn Lemke ed8dac31c9 databases/cego: 2.53.3 -> 2.53.4
- fix in CegoSelect::nextJoinTuple
  in case of result ordering, the check for unknown order attribute
  has been removed. The attribute list returned with getAttrRefList
  may also contain attributes for nested ( or parent ) query attributes
  ( attr not found is returned in any case,
  if there is an invalid attribute reference ).
  check125 has been added to verify this case.
2025-12-23 07:38:20 +01:00
Björn Lemke bbb038535a databases/cego,devel/lfcbase: update 2.53.2 -> 2.53.3, 1.23.0 -> 1.23.1
lfcbase:
- Completed integer cleanup for Pager class,
  replacement of some asInteger with asUnsigned method calls
  ( BigInteger, NetHandler, etc. )

cego:
- Added several patches for trigger objects
  ( check self refering tables in trigger block to avoid recursion,
  object invalidation handling fixed )
- In CegoRecoveryManager::recoverCurrentTransactionLog,
  completed recovery procedure for trigger and alias objects.
  For drop operations, added CegoDatabaseManager::removeObject calls,
  to remove corresponding objects from object cache
2025-12-17 20:49:31 +01:00
Björn Lemke 58306c09c2 databases/cego: update 2.52.44 -> 2.53.2
- integer cleanup, all int values will be replaced by unsigned
  or unsigned long, where is no need of nagative values
- for those ports:
  devel/lfcbase
  devel/lfcxml
  databases/cego
  databases/cegobridge
  databases/p5-DBD-cego

cego:
- Fix added in CegoDbHander::acceptSession and CegoSerial::readChain
  to treat empty or invalid session requests
- fix in CegoDbThreadPool for bad message handling

p5-DBD-cego:
- Fix added for execute return value and $sth->rows value to
  return affected rows for update statements
2025-12-11 16:47:33 +01:00
Björn Lemke c3eb8b809d devel/lfcbase: 1.22.3 -> 1.22.4, databases/cego: 2.52.43 -> 2.52.44
- Warning elimination for G++ based compiles
2025-11-24 18:09:07 +01:00
Björn Lemke 26c78421c1 devel/lfcbase: 1.22.2 -> 1.22.3, databases/cego: 2.52.42 -> 2.52.43
lfcbase:
- Warning elimination in several code modules.
  -Wall should print no warnings anymore (with clang)

cego:
- Added patch for CegoJoinObject for correct and complete decoding.
  This is needed for database recovery procedure if nested join select
  occurs in update statement, e.g.
  update t1 set b1 = ( select max(b2) from t2 inner join t3 on t2.a2 = t3.a3 );
- Warning elimination for several code modules.
  In CegoContentObject encoding and decoding method,
  the obsolete key flag in the schema information was removed.
  This leads to a incompatibel datastructure and requires tableset
  export/import for an uplift ot this version
- To toChain method of CegoTableObject, CegoJoinObject and
  CegoAliasObject has been improved to treat undefined tabSetId
  argument ( defTabSetId = 0 ).
2025-11-23 18:57:59 +01:00
Björn Lemke dd19ed2a57 devel/lfcbase: 1.22.1 -> 1.22.2, databases/cego: 2.52.40 -> 2.52.42
lfcbase:
- Added patch in File::hasData to check return code of pool library call
- Added fix in basecheck ReplaceTest to return valid results

cego:
- For CegoClient and CegoAdmin changed argument evaluation to handle
  pipe input data in a better way.
  Pipe mode is just used, if no batch or command mode ist setup and
  if data is available at stdin.
- This should also work for FreeBSD, when cgclt or cgadm is used
  via cronjob. It has been observed, that if a program is called by
  cron, poll returns data available at stdin also if there is no data
  available.
- In CegoAdminThread, for tableset and table import procedure added
  switch to next backup branch.
  This is required, since during import, logging is disabled.
  So after import, a new backup is needed.
2025-11-23 12:01:07 +01:00
Xavier Beaudouin ee5c766cba */*: Introduction USES=sudo
A new uses 'sudo' has been added to transperently depends of the
proper flavor of sudo 'default' or 'sssd' depending on the default
version set by the user.

If you prefere to use 'sssd' flavor of sudo, add the following
to your make.conf:

        DEFAULT_VERSIONS+=sudo=sssd

All sudo consummer ports has benn updated to USES=sudo

Reviewed by:    0mp
Approved by:    mat
Sponsored by:   Klara, Inc.
Differential Revision:	https://reviews.freebsd.org/D52160
2025-11-11 04:16:23 +01:00
Björn Lemke 45067d7531 databases/cego: update 2.52.39 -> 2.52.40
NOTE: Since this patch changed content object encoding,
  the upgrade requires a tableset export/import !

- Fix added for CegoLogReader. __dateTimeFormat has to be setup
  to print date values in log data
- In CegoContentObject, encoding and decoding was not done for tableAlias.
  This might lead query errors during crash or backup recovery for insert
  or update statements with nested selects.
  Table Alias has been added to encoding.
2025-11-08 11:01:57 +01:00
Björn Lemke 6df43aca86 databases/cego: update 2.52.36 -> 2.52.39
- Fix added in CegoAggration decoding constructor.
  _pExpr must be set to 0, otherwise this might result in seg fault
  during tableset recovery.
- Added stdin mode for cego admin console cgadm, so instead
  of using option --batchfile, admin commands can be feed by pipe
- Cleanup and completion work done for CegoLogReader ( cglog ).
  For this also the abstract method CegoDecodable::getFormatted
  has been changed to getInfo, which provides a more compact output format.
  cglog is used to print ( binary ) redo logfiles in a human readable form.
2025-11-06 20:59:28 +01:00
Björn Lemke ebcdc6a846 databases/cego: update 2.52.34 -> 2.52.36
- For CegoLogReader added stdin feature, so log file can be piped
  via stdin to cglog
- Extended backup list to indicate most recent redo log timestamp.
  For this, the backupManager utility had to be adapted to retrieve
  last redo log timestamp from arch and tape directory
- Added CegoXMLSpace::adjustPageOffset method to adjust page offset
  attribute after tableset recovery. This is needed, if a recovery
  is made from scratch with a new initialized database xml file
- Changed method CegoXMLSpace::nextTSID to generic.
  Instead of calculating the next tableset id on XML_MAXTSID_ATTR,
  the id is calculated based on all defined tablesets.
  In case of a from scratch recovery ( with a new initialized db xml file ),
  this ensures id consistency
2025-11-02 19:36:57 +01:00
Björn Lemke 04c39b2761 databases/cego: update 2.52.32 -> 2.52.34
- improved utility scripts for online backup to tools directory
  ( logManager, backupManager, backupExecuter )
- more stabilzation for online backup recovery from scratch,
  e.g. checking for existing tableset set entry in db xml during recovery
  and allow non existing entry.
  Perhaps it might be useful to check pagesize of backup datafiles
  and defined pagesize in db xml ...
- added tableset define parameter branchid.
  This parameter can be used to set up an appropriate backup branchid
  for from scratch recovery procedures
- patch added for scratch recovery.
  If a tableset is defined for backup recovery, the tableset id
  must be adjusted to the corresponding id in the datafile.
  For this, new methods CegoTableManager::adjustTableSetId and
  CegoFileHandler::readTableSetId have been introduced and added
  to CegoRecoveryManager::recoverTableSet
- In CegoRecoveryManager::recoverTableSet: shifted ticket recovery
  before file registration.
  So all needed tableset id values are set up correctly and there's
  no more need to adjust any ids.
  Just root path and branch id must contain appropriate values
  for newly defined tableset to be recovered
2025-10-30 15:04:09 +01:00
Björn Lemke 7b55950b3b databases/cego: update 2.52.31 -> 2.52.32
- Fix added in CeegoXMLSpace::getTableSetBackupBranch,
  removed a double V() operation which caused XML locking issue
- Changed BRANCHID attribute to NEXTBRANCHID in XML root tag,
  to clarify the meaning.
2025-10-20 16:04:58 +02:00
Björn Lemke b7627f0de3 databases/cego: update 2.52.30 -> 2.52.31
- Changed Backup Branch Id from timestamp value to
  database wide unique numeric id.
  For this CegoXMLSpace::setTableSetBackupBranch method
  has changed to nextTableSetBackupBranch
2025-10-19 19:43:51 +02:00
Björn Lemke bdbfdd6ecd databases/cego: update 2.52.29 -> 2.52.30
- Block variables in CegoDistCursor still have not been handled
- For this, the constructor has been expanded to take a block variable
  as an argument. The block variable then is propagated to the
  corresponding eval methods ( of CegoPredicate objects )
- check124 has been added to illustrate a case, where this patch is needed.
2025-10-04 14:48:00 +02:00
Björn Lemke 718f232e36 databases/cego: update 2.52.57 -> 2.52.59
- Improved input handling in CegoClient.
  For interactive mode, trailing LF, CR and multiple semicolons are cut now.
- Added command line option lockexpire 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.
  Database crash recovery seems to be stable, so this option is made available.
- In CegoDbThread::serveRequest, added further tableset states (
  BACKUP, CHECKPOINT ) where sessions are accepted
2025-08-24 10:04:21 +02:00
Björn Lemke c2ff2acbb5 databases/cego: update 2.52.26 -> 2.52.27
- CegoSelect::nextTuple code isolation for caching
- CegoSelect::reset fixes
2025-08-11 09:26:10 +02:00
Björn Lemke 32684a5270 databases/cego: update 2.52.25 -> 2.52.26
- fix performance for CegoPredicate
- CLI: threadinfo db, lastAction was added to the threadlist to
  indicate the query currently processing
- format improvements for CegoAction::getPlanString to indent subqueries
2025-08-08 07:43:02 +02:00
Björn Lemke bb0df92e30 databases/cego: update 2.52.23 -> 2.52.25
- more fixes for CegoAttrCond
2025-08-01 20:38:36 +02:00
Björn Lemke f93f1c49dc databases/cego: update 2.52.22 -> 2.52.33
- further join optimization for in-exprlist-Conditions
- Execution plans for several test cases look good and test suite
  runs without any errors.
2025-07-29 07:10:41 +02:00
Björn Lemke 705d11d86a databases/cego: update 2.52.21 -> 2.52.22
- fixed memory leak
- master predicate mapping: added case cond case
- More work on check123.sql test
2025-07-24 20:06:43 +02:00
Björn Lemke 87ac380770 databases/cego: update 2.52.20 -> 2.52.21
- handle join master predicate in the most optimal way.
  To show several condition cases, check123.sql has been added to
  demonstrate the join optimization for different join cases
- fixed some cases for master predicate handling
  example:
  plan select cpid from companyview cv where lower(cv.cpname) like '%%'
  or debnr = 3;
  shows the execution plan for the query.
2025-07-23 09:56:49 +02:00
Björn Lemke 45e80ed49a databases/cego: 2.52.19 -> 2.52.20
- details for this update see
  https://cgit.freebsd.org/ports/commit/?id=3427c19c14646a53485c02a56d925ddca59ac04d
2025-07-21 11:01:31 +02:00
Björn Lemke 3427c19c14 devel/lfcbase,databases/cego: update 1.21.8 -> 1.22.1, 2.52.19 -> 2.52.20
lfcbase:
- Fixed BigDecimal class for internal constructor to
  normalize zero values to "0" and in scaleTo method to treat
  zero values correctly
- Added class Replacer to support string replacement based
  on regular expressions ( like unix sed )
- Fixed BigDecimal, scale handling still not correct for some cases
- Replacer: The match token has been changed to $ char to treat
  database integration

cego:
- 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 can avoid large table cursor result sets for the embedding
  join and might improve overall performance of the query.
- 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
- 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
- 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
2025-07-20 20:01:21 +02:00
Björn Lemke 0397ae9add databases/cego,devel/lfcbase: update 2.52.17 -> 2.52.18, 1.21.7 -> 1.21.8
lfcbase:
- 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:
- Added support for lfcbase-1.21.8 ( BigDecimal::RoundMode ),
  Round mode ist setup in dbxml via database ROUNDMODE attribute
  ( either UP, DOWN, HALFUP, HALFDOWN )
2025-07-10 16:43:01 +02:00
Björn Lemke 67c640dea2 databases/cego: update 2.52.14 -> 2.52.17
- 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
- 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 format.
- 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
2025-07-09 19:05:10 +02:00
Björn Lemke ddeca61a7b databases/cego: update 2.52.10 -> 2.52.12
- Fix added in CegoQueyHelper::evalAttrCond, COMPLETE value must
  be returned in flArray loop and if not found PARTIAL must be returned
  ( return was missing )
- Patch 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
2025-07-04 06:18:14 +02:00
Björn Lemke bd22535c51 databases/cego: update 2.52.9 -> 2.52.10
- Added tableset online check in CegoDbThread::serveRequest.
  This avoids query execution of any connected client during recovery phase
- Improved log trace in CegoDistManager::startTableSet to log complete
  stack trace in case of tableset startup failure
2025-06-22 11:17:36 +02:00
Björn Lemke 85b9beb4f5 databases/cego: update 2.52.8 -> 2.52.9
- In CegoAdminHandler::getUserInfo, increased size
  of NUMREQ and NUMQUERY from 10 to 12, for long running systems
  with > 10^9 requests
- Added pack mode in CegoClient to improve the display of
  large string column values. Only the longest length of all values
  in <n> rows is displayed, not the full length of the field itself.
  Example: If the table definition for a string is 300 chars,
  and the values are only 4-10 chars wide, the table is only
  displayed with 10 chars.
- Fix added in CegoDistCursor::joinSetup:
  for outerCond calculation, null value comparisons are also used,
  since this 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)
- 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)
- Add duplicate check for table aliases in CegoSelect::evalReferences
2025-06-15 17:31:43 +02:00
Björn Lemke c99d95a18c databases/cego: update 2.52.7 -> 2.52.8
- Fix 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
2025-05-31 09:18:40 +02:00
Björn Lemke dd5f135cd8 databases/cego: update 2.52.6 -> 2.52.7
- CegoPredicate::getExprOnlyValue, return value changes
  from reference to value
2025-05-30 18:24:32 +02:00
Björn Lemke 11b0a92a3c databases/cego,devel/lfcbase: update 2.52.4 -> 2.52.6, 1.21.6 -> 1.21.7
lfcbase:
- Added improvements to Pager class, e.g. case insensitive search and
  message box at end of search

cego:
- 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 satisfy Debian flavour ( expimpcheck )
- 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 )
2025-05-29 13:26:17 +02:00
Björn Lemke 6af6045d84 databases/cego,devel/lfcbase: 2.52.2 -> 2.52.4, 1.21.3 -> 1.21.6
lfcbase:
- To support several keyboard layouts, changed some window control
  sequences from Cntrl-Key to ESC key
- 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, ...)
- In Pager class, added buffer scrolling in editor part. Preparation
  started for Pager command history management
- 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

cego:
- Adaptions made for pager and pager history feature
2025-05-11 10:19:13 +02:00
Björn Lemke 3bb25f4409 databases/cego: update 2.51.9 -> 2.25.2, devel/lfcbase: 1.20.1 -> 1.21.3
lfcbase:
- more patches for the Pager class
  Removed init_color with custom color for select cursor since the
  custom color seems to be poor supported for curses. Fixes added
  to Pager::writeFooter
- edit-feature in Pager (must discuss this with Bjoern 8-)
- ignore SIGINT in Pager
- change from unsigned long long to long long value in Datetime class
- pattern search feature for Pager class

cego:
- Small fix in CegoBufferPool.h
- CegoClient adapted to new Pager API
- Queries now can be interrupted with Cntrl-C also in pager mode
- adapt to Datetime long long values ( e.g. date2str from int to long long )
2025-05-02 21:33:52 +02:00
Björn Lemke 72de34f9dc devel/lfcbase,databases/cego: update 1.19.1 -> 1.20.0, 2.51.8 -> 2.51.9
lfcbase:
- Rework of Pager class, which is a API change

cego:
- Made some adaptions for reworked lfcbase Pager class
  rows with multiline entries are more readable
2025-04-26 20:49:33 +02:00
Björn Lemke 5be43f640a databases/cego: update 2.51.7 -> 2.51.8
- Added check script check119.sql to verify grammar expansion
  for stored procedure condition
- CegoAction::procArg1() and CegoAction::procArg2() to check
  duplicate parameter names
- Added check118.sql to demonstrate explicit table locking for nested
  delete operation within a cursor loop
2025-04-24 15:16:56 +02:00
Björn Lemke e577c12f18 databases/cego: update 2.51.5 -> 2.51.7
- Fix added in CegoFactor::getAggregationList:
  for case QUERY and case FETCH, the not-supported exceptions
  have been removed, otherwise this leads a useless exception
  in CegoAttrCond::asConjunctionList where aggregations are just checked
- Added grammer change in Cego.def to ensure operator precedence
  for AND and OR condition operator.
  AND has higher precedence if no enclosing braces are given.
  The result for the following queries should be the same
  select * from t1 where a = 42 or a = 1 and  b = 'X' ;
  select * from t1 where a = 1 and  b = 'X' or a = 42;
  select * from t1 where a = 42 or ( a = 1 and  b = 'X' );
- With cego version before 2.51.7, braces have been mandatory to
  ensure operator precedence.
  With the new grammar extension, the AND operator has a higher presedence
2025-04-21 14:02:32 +02:00
Björn Lemke 8e73e677d3 databases/cego: update 2.51.3 -> 2.51.5
- CegoFactor::evalFieldValue, QUERY case, after query
  evaluation, the parentJoinBuf has to be reset, otherwise an invalid
  reference is used later to CegoSelect::getQueryId. This might result
  in core dumps, if query cache is enabled
- Added querycache verification to db check routines
- Added querycache mode to command line options to set up query cache by batch
2025-04-13 10:25:07 +02:00
Björn Lemke af3d489aef databases/cego: update 2.51.1 -> 2.51.3, devel/lfcbase: update 1.19.0 -> 1.19.1
lfcbase:
- BigDecimal::div null value check

cego:
- CegoFactor::toChain to add braces for condition case
- CegoSelect::initAggregation, for sum and avg aggregation, aggregation
  value is initialized with 0 and appropriate datatype ( instead of
  null value ). This leads to numeric result 0 in case of empty result
  sets ( instead of null value )
2025-04-10 20:24:34 +02:00
Björn Lemke 6e28ea9a2f databases/cego: update 2.51.0 -> 2.51.1
- Fix made in CegoDistCursor::distSetup to support FLA setting with
  no cursor condition. This is needed for query plan evaluation for
  nested inner/left outer/right outer joins
  See check114 as a sample
2025-04-06 08:59:35 +02:00
Björn Lemke 0fdd0ce675 */*: update several cego related ports
devel/lfcbase 1.18.11 -> 1.19.0
- Changed Datetime::asLong to return signed long values ( long long ).
  This is needed to support timestamp values before 01.01.1970,
  which are signed negative

databases/cego 2.50.6 -> 2.51.0
- consolidate grammar productions for query conditions and
  procedure conditions
- Since CegoPredicate::CompType has received new type EXPRONLY,
  this requires a tableset export/import for upgrading to this version
  ( for predicate encoding / decoding )
- Several changed in CegoFieldValue to switch from Datetime integer
  type unsigned long long to long long. This is required to support
  datetime comparison for values before 01.01.1970

databases/cegobridge 1.8.1 -> 1.9.0
- adapt to cego 2.51.0
2025-04-05 18:07:10 +02:00