Commit graph

345 commits

Author SHA1 Message Date
Björn Lemke
a50cd77d44 databases/cego{bridge}: 2.49.22 -> 2.50.2, 1.7.0 -> 1.8.1
cego:
- Added syntax expansion for group having clause to support
  advanced having conditions, e.g.
  SELECT a, sum(b), max(c) FROM t1
  GROUP BY a HAVING sum(b) > 10 AND max(c) = 100;
- Patch added for 'view condition evaluation' in
  CegoAttrCond::asConjunctionList, CegoSelect::setViewCond and
  CegoDistCursor::distSetup.
- Additional check added to CegoObjectManager to avoid duplicate
  table objects of different type ( e.g. Table t1 and View t1 ). Table
  objects are either native tables, views or aliases.
- For predicate export structure, changed from XML representation
  to native SQL syntax. This requires a dedicated Parser in CegoXPorter,
  which can handle predicate SQL representation, but saves lots of
  code, since all subsequent member classes of CegoPredDesc no more
  need to implement XML representation methods ( constructor,
  fromElement, toElement )
- Added stabilization patches for nested grouping select, e.g. in
  exists subselect. In CegoSelect::reset, for _selectMode == GROUPING,
  grouping space is resetted now properly.
- Added stabilization patches to CegoAction. Load statements for
  views, procedures, triggers and condition are treated regarding
  object allocation/free. These statements are for internal use only,
  so a database user receives a note message now
- Further improvements added in CegoQuery to give more detailed
  error information in case of exceptions
- In CegoTableManager, made some exception message improvements,
  instead of popping last message, the complete message stack is thrown

cegobridge:
- Support added for cego-2.50.x
- Fixes added for modified CegoAction::getSelect and
  CegoAction::getProcedure methods
2025-01-30 15:06:30 +01:00
Björn Lemke
69f948d717 databases/cego: update 2.49.21 -> 2.49.22
- For several modules, added exception trace information to improve
  error logging in case of any exception
- Patch added for CegoQueryCache::addEntry, getNumUsed added to
  search loop to find appropriate slot. This avoids some needless
  assignments, since used entries cannot be assigned.
- Patch added CegoQueryCache::invalidate. For main loop, a delay
  has been added, to give other threads the chance to claim the lock
2025-01-12 09:17:54 +01:00
Björn Lemke
987ed7e526 databases/cego: update 2.49.20 -> 2.49.21
- Patch for CegoFunction added.
  For methods getReturnType, getReturnTypeLen and evelFieldValue
  the following has been added : If proc object is getting used by
  useObject, the following getProcedure call must be catched for
  exception to unuse the object since _pProc is stiil null and the
  object so is not unused by cleanup
2025-01-02 11:50:37 +01:00
Björn Lemke
9789c73f37 databases/cego: update 2.49.16 -> 2.49.20
- Removed lockPool call in CegoAdminThread::srvExportTableSet and
  srvExportTable to avoid lock timeouts during long running exports
- Made some code cleanup in CegoAdminThread ( exception consolidation )
- db thread query history information, added timestamp and cost information
- Introduces new cgadm admin commands
  o queryhist last n
  o queryhist cost n
  to show the query history for all db threads in the db thread
  pool. The last n queries or the most expensive n queries are
  indicated
- Added query history suppport for cgadm screen mode
- CegoAdmScreen to fully support of query history feature
  ( last and full over all db threads ).
- Screen2:Grid schema patches added to satisfy new column alignment
  feature for Screen2
- Fix added in CegoDBThreadPool. CegoAdminThreadPool and CegoLogThreadPool.
  If database hostname is not defined, the corresponding service is served
  on any hostname. This avoids confusion regarding IPv4 and IPv6 host
  configuration ( e.g. on MacOSX Sequoia, java seems to
  handle localhost always as IPv4 127.0.0.1, while on POSIX layer,
  it is mapped to ::1, a bit strange )
- Added new lfcbase Net::serve6 method to db, admin and log threadpool.
  If no hostname is defined in database xml, an IP dual stack
  configuration is set up.
2024-12-11 20:14:35 +01:00
Björn Lemke
afd8891d85 databases/cego: update 2.49.11 -> 2.49.16
- cgmkdb utility script:
  allows to set up advanced database parameters
- In CegoXMLSpace::addTableSeDef, added ARCHMODE attribute to
  set archmode to OFF as default
- Added querycache threshold parameter. Just queries with execution
  time greater than threshold value are cached. This leads to a lower
  stressed cache and avoids cache latency for those queries. Threshold
  is given in msec, which seems to be appropriate for now.
- Some memory leaks fixed
- fix cgadm (hang if INTR received while idle)
- Added query history for db threads. Not just the last action is
  indicated via admin command "threadinfo db threadId", but also the
  last n queries processed by this thread. History Length can be
  configured via new cego command line option dbthreadhist
2024-11-17 20:44:22 +01:00
Björn Lemke
3e3c5c10d1 databases/cego: update 2.49.10 -> 2.49.11
- Patch added for memory leak in CegoSelect::cleanUp and
  CegoSelect::reset, for both methods, _pCacheList has to checked and
  freed, since for uncompleted queries ( e.g. exists clause ) the
  _pCacheList was still not deleted
- Another fix for memory leak added in CegoFieldValue::getLocalCopy,
  Before allocation, _len has to be checked for _len < STATICFIELDBUF
  and then use _staticBuf, otherwise, the memory is lost
2024-10-25 16:29:18 +02:00
Björn Lemke
4c0cee86b5 databases/cego: 2.49.9 -> 2.49.10, devel/lfcbase: 1.18.7 -> 1.18.8
lfcbase:
- patch to Screen2::Form::handleKey to treat pipe character ( | )
- patch to Screen2::Attribute::setAttrList for refresh window
  after attrlist has been updated
- Change in Screen2::Attribute class.
  The class now provides three layout modes : HORIZONTAL, VERTICAL, OVERLAY.
  In OVERLAY mode, with left and right cursor key it is switched
  to visible attribute list. For this, the Screen2::Attribute constructor
  has been changed

cego:
- For CegoAdmScreen, added QueryCacheInfo to tableset menu
- daptions made for CegoAdmScreen to
  handle lfcbase-1.18.8 API change for Screen2::Attribute
2024-10-20 16:34:11 +02:00
Björn Lemke
acd64d531b databases/cego: update 2.49.8 -> 2.49.9, devel/lfcbase: 1.18.6 -> 1.18.7
lfcbase:
- Added patch in Matcher.cc to support extended regular expression
  (added REG_EXTENDED flag to regcomp call )

cego:
- Added dedicated admin command to show query cache information
  including hit rate ( show querycache for tableset )
  This will replace the querycache information shown with general
  show tableset admin
  command
- Added patch for memory leak in CegoSelect. Within
  CegoSelect::consolidateConjunctionList method, predicate and condition
  instances are created for conjunction organisation. These instances
  have to be registered and freed later within CegoSelect::cleanUp
- Rework of table cache logic, which is still experimental. A table
  filter now can be defined to just cache a specified subset of tables.
  Since table cache is just useful for specific tables with read only
  flavor and medium size, this extension seems to makes sense. Cached
  table rows can be accessed directly without accessing buffer pool
  pages and without decoding. This might accelerate some database
  configurations, where query cache is not appropriate and hot spot
  readonly tables have to access very often and very fast.
2024-10-16 21:23:17 +02:00
Björn Lemke
ad32ab475b databases/cego: update 2.49.7 -> 2.49.8
- Added patches for querycache.
  The CegoQueryCache::addEntry method now is limited to
  QUERYCACHE_MAXTRY tries to add an entry. Otherwise numFail
  counter is increaed, which is monitored for the query cache.
  This should resolve deadlocks in smoother way ( no more lock timeouts )
  in case of other db thread have the requested querycache slot in use.
  For performance reasons, CegoQueryCacheEntry::calcSize was introduced
  to just calculate the entry size in the constructor.
- Added lockId for lock objects in CegoBufferPool and CegoQueryCache
2024-08-23 17:08:33 +02:00
Björn Lemke
aa7dd71732 databases/cego: 2.49.6 -> 2.49.7
- Fix added for CegoXPorter / CegoAdminThread / CegoBufferPool
  to treat locking issue during tableset / table import.
  Since the pool is locked during import ( by new introduced method
  lockPool ), no further locking calls must occur during import.
  For this, log writing is disabled before lockPool is called and
  CegoBufferPool::logIt checks for active log ( via new isActive
  method ) before trying to get a lock.
2024-08-12 13:16:08 +02:00
Björn Lemke
8b40ea6aed databases/cego: update 2.49.4 -> 2.49.6
- Synchronization of tableset admin operations added with this patch.
  In CegoBufferPool, new methods are provided for tableset oriented locking
  ( lockPool and unlockPool ) These methods are used by CegoAdminThread
  to synchronize concurrent tableset admin operations
  ( like stop tableset, drop tableset, export tableset, e.g. )
- Indent format improvements made for select, insert and update queries.
  This is relevant for formatted sql code in stored procedures.

Author:    Björn Lemke <lemke@lemke-it.com>
2024-07-21 09:52:04 +02:00
Björn Lemke
ae39d556b5 databases/cego: fix build 2024-06-29 09:26:45 +02:00
Björn Lemke
a2313efedf databases/cego: update 2.49.3 -> 2.49.4
- More stabilization added to c wrapper library.
  Relocation of cpluscheck and c wrapper check to root directory.
  CegoCPlusCheck and cgwtest are now build during make all

Will be used in upcoming python module to access cego.
2024-06-29 09:17:52 +02:00
Björn Lemke
b1c904f3a0 databases/cego: update 2.49.2 -> 2.49.3
- Added fix in CegoFieldValue for construction of double values
  ( added missing normFloatValue method call )

Author:    Björn Lemke <lemke@lemke-it.com>
2024-06-28 11:53:17 +02:00
Björn Lemke
0d05eba7ba devel/lfcxml,databases/cego: 1.3.6 -> 1.3.7, 2.49.0 -> 2.49.2
lfcxml:
- Patch added in XMLSuite.cc to treat CDATA lookahead correctly.
  Trailing square brackets ( ] ) at the end of cdata caused parsing problems

cego:
- Added missing thread lock information for admin thread list and
  thread stat command ( query + table locks, logmanager locks )
- Added patches in CegoQueryCache to improve locking.
  For the addEntry method, the complete locking logic was
  redesigned to avoid deadlocks

Author:    Björn Lemke <lemke@lemke-it.com>
Date:      Sat Jun 15 13:15:23 2024 +0200
2024-06-15 13:17:18 +02:00
Björn Lemke
b49179e8ca databases/cego: update 2.48.48 -> 2.49.0, cegobridge 1.6.5 -> 1.7.0
- In CegoCaseCond, added getPlanList method to retrieve execution plan
  for nested selects. The planlist then is catched in CegoFactor::getPlanList
- Consolidation done for data types decimal and fixed.
  This version just supports the decimal datatype which originally was
  the fixed datatype. The original decimal datatype was useless.
  IMPORTANT: To migrate to version 2.49, you have to xml export
  the databases and rename the datatype strings "fixed" and "FIXED"
  to "decimal" and "DECIMAL"
- cegobridge needs to be rebuild
2024-05-20 09:15:11 +02:00
Björn Lemke
55e6b1884c databases/cego: update 2.48.45 -> 2.48.48
- Fix in CegoAdmScreen::TableSet::TableSet constructor,
  SysUsage field added to indicate correct usage
  for system, temp and app files
- Patch added for transaction handling in CegoTransactionManager::doCommit
  and CegoTableManager::deleteDataTableEntry.
  Just for tuple state COMMITTED, a rollback entry must be created,
  otherwise double tuple delete may occur.
  For tuple state INSERTED, tuple state is just set to OBSOLETE,
  for tuple state OBSOLETE and DELETED, nothing has to be done.
  In CegoTableManager::doCommit, tuple state just has to be set
  to COMMITTED in case of INSERTED tuples
- Elimination of a cout in CegoQueryCache::QueryCacheEntry::cleanCache
2024-04-01 16:54:20 +02:00
Björn Lemke
43a51802cc databases/cego: update 2.48.44 -> 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.
- returnList has been localized ( new method CegoQueryHelper::localizeFL )
  to ensure correct values after update cursor ist closed.
2024-03-17 13:39:33 +01:00
Björn Lemke
33732634ff databases/cego: update 2.48.43 -> 2.48.44
- CegoXPorter: improve exception handling for invalid export file names
2024-03-16 13:30:50 +01:00
Björn Lemke
664c788ca3 databases/cego: 2.48.42 -> 2.48.43
- Added patch in CegoSelect::evalSchema to treat null values for union all,
  added patch in CegoFunction::clone to treat counterId value
2024-03-08 19:58:35 +01:00
Björn Lemke
dbc04396b3 databases/cego: update 2.48.41 -> 2.48.42
- In CegoDistCursor::nextTuple, added query aborted check.
  This is needed to abort long running inner and outer join selects
2024-02-15 19:53:01 +01:00
Björn Lemke
0fa35b1efc databases/cego: update 2.48.40 -> 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.
2024-02-13 09:59:49 +01:00
Björn Lemke
1e9f93de92 databases/cego: fix distinfo
Author:    Björn Lemke <lemke@lemke-it.com>
2024-02-07 09:29:31 +01:00
Björn Lemke
181653c687 databases/cego: update 2.48.38 -> 2.48.40
- Patch added in CegoAdminThread::srvParameterInfo to list current
  QUEUEDELAY value and configured scandal formats ( SCANDATETIMEFORMAT )
- Small patch on CegoDistManager::startTableSet,
  improvement for exception message added

Author:    Bjoern Lemke <lemke@lemke-it.com>
2024-02-05 11:09:53 +01:00
Björn Lemke
121038037c databases/cego: update 2.48.37 -> 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 )

Author:    Björn Lemke <lemke@lemke-it.com>
2024-01-18 20:02:19 +01:00
Björn Lemke
a75f447a75 databases/cego: update 2.48.36 -> 2.48.37
- Patch added in CegoQueryHelper::encodeFL and CegoQueryHelper::decodeFL.
  The dim field value was still not treated.
  This might lead to wrong fixed values for update operations during
  crash recovery operation

Author:    Björn Lemke <lemke@lemke-it.com>
2023-12-21 16:43:15 +01:00
Björn Lemke
7bf99a8a20 databases/cego: update 2.48.34 -> 2.48.36
- Renaming date function dateformat to scandate to reflect its
  scanning function. Please note, that cegojdbc uses this
  function in CegoPreparedStatement class.
- Fix in CegoXPorter for view import.
  For view creation, the field entries in schema must be setup
  with a unique id ( analog to view creation via sql command )

Author:    Björn Lemke <lemke@lemke-it.com>
2023-12-13 08:59:25 +01:00
Björn Lemke
914f3cfd15 databases/cego: update 2.48.32 -> 2.48.34
- 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 )
- In CegoDistCursor::getTuple, the tuple retrievel has been changed
  for view objects. Complicated reasons...
2023-11-16 21:25:44 +01:00
Björn Lemke
4ba2a97e0a devel/lfcbase: update 1.18.5 -> 1.18.6 and databases/cego: 2.48.29 -> 2.48.32
lfcbase:
- 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:
- Patch added for CegoCaseCond::evalField to eval appropriate datatype.
  If the case condition contains null type this was not done correctly
- Added patch in CegoSelect::evalSchema. At the end of the method,
  schema ids are calculated to provide unique attribute ids for views
- support nested case conditions

Author:    Björn Lemke <lemke@lemke-it.com>
2023-11-14 15:32:09 +01:00
Björn Lemke
6c0e87f2e0 databases/cego: update 2.48.28 -> 2.48.29
- Fix added in CegoAggregation::decode, c flag was
  not decoded correctly ( wrong order in memcpy function )
2023-08-08 11:06:00 +02:00
Björn Lemke
6b907e14e4 databases/cego: update 2.48.27 -> 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 )
2023-07-30 20:06:09 +02:00
Björn Lemke
36f42e480a databases/cego: update 2.48.25 -> 2.48.27
- 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
- In CegoFunction constructors, added _pProc = 0 initialization
  for decoding and fromElement constructors. This avoids a set fault,
  in case of database recovery, when a predicate expression
  with user function is dedoded from log file

Author: Björn Lemke <lemke@lemke-it.com>
2023-07-17 12:18:36 +02:00
Björn Lemke
14202f58e9 databases/cego: update 2.48.23 -> 2.48.25
- Performance improved for stored procedures.
  In CegoFunction, the procedure handle is now stored after first
  stored procedure call ( instead of freeing the handle and requesting
  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 )
- Patch added in CegoFunction to avoid useObject leaks
2023-05-14 12:12:13 +02:00
Björn Lemke
9b18436978 devel/lfcbase,databases/cego: update 1.18.3 -> 1.18.5, 2.48.19 -> 2.48.23
lfcbase:
- Added scrollable feature to Screen2::Message, so longer messages can
  now be handled by the panel
- improvements for Screen2:Message panel

cego:
- 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
- Fix added for CegoAdmScreen in tableset parameter panel.
  Initfile was not setup correctly
  ( null value indicated, should be empty string )
- Changes in CegoAdmScreen::DBThread panel to show long queries
  with new Screen2::Message panel
- 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 ) )
2023-04-28 21:24:12 +02:00
Björn Lemke
9c66b76f43 devel/lfcbase,databases/cego: update
lfcbase: 1.18.0 -> 1.18.3
- Opimization in Screen2 to customize screen refreshes
  ( introduced virtual method Panel::doRefresh )

cego: 2.48.15 -> 2.48.19
- Fix added for CegoAdmScreen, the data file root path was not added
  to new datafiles in the 'tableset add datafile mask'
- 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
- Some adaptions for extended Screen2 interface with refresh customizing.
2023-03-07 11:58:14 +01:00
Björn Lemke
b76b5eb901 databases/cego: 2.48.14 -> 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
2023-01-26 20:07:17 +01:00
Björn Lemke
314ad8b61a databases/cego: 2.48.10 -> 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
- 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 )
- 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)
- In CegoMain, added DEFAULTDATETIMEFORMAT1 to dateFormat list to
  also parse this format for native cast from string to datetime
- Added Query Cache menu to CegoAdmScreen to manage query cache parameters
2023-01-24 11:49:11 +01:00
Björn Lemke
c4bd711217 devel/lfcbase: update 1.17.2 -> 1.18.0
- Fix for some geometries in Screen::showFormBox
- Further improvements for Screen::showFormBox and showInfoBox
  ( selected rows and newline treatment )
- integrate Screen2 interface

databases/cego: update 2.48.2 -> 2.48.10

- 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.
- 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
- Further improvements for cgadm screen mode. confirm dialogs added
  and backup log history indicated for online backups in case of errors
- 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
- Fixes added in CegoClient for dump mode. Some attribute and
  attribute values have not treated correctly ( default values,
  dimension for fixed attributes, clob values )
- Fixes added for CegoClient dump and batch mode, has been tested
  with more complex acc application
- 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
- 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
- Fix added in CegoAction::execViewCreate(), in case of grace mode,
  empty schema must be stored with created view to force recompile
  via CegoDistManager::reloadView
- Added defTabSetId parameter to several toChain methods to write
  views, procedures and triggers without explizit tableset references.
  This might 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 )
- Fixes added for alias object usage ( e.g. in combination with views )
- Added lfcbase Screen2 support to CegoAdmScreen

databases/cegobridge: update 1.6.2 -> 1.6.3

- Build fixes added

Author:    Björn Lemke <lemke@lemke-it.com>
2023-01-03 13:31:35 +01:00
Björn Lemke
68b2a25ae0 devel/lfcbase: update 1.16.6 -> 1.17.2, databases/cego: 2.47.31 -> 2.48.2
lfcbase:
- Improvements done for ncurses based Monitor class.
  Added confirm box and improved form box
- many changed have been made to Screen class ( was Monitor ).
  The changes require a recompile for consuming packages ( here : cego )
- Improvements done for Screen::showFormBox ( scrolling content in input mask )

cego:
- 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' )
- Fix in CegoFunction::getId, the GETCOUNT function still was not
  treated
- Some cleanup of source file was done (removed tilde files)
- 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
- Grammar fix in Cego.def to ensure _returnOnFirst variable
  is set to false for non return update statements
  ( added production NoUpdateReturnOpt )
- 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 led
  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 );
- 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 )
- many changes made in CegoAdmScreen class ( was CegoAdmMon )
  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 )
- Small adaptions for cgadm screen mode window sizes
  ( corresponds to lfcbase-1.17.2 )
2022-11-18 20:23:16 +01:00
Björn Lemke
fcbe84c2b4 databases/cego: 2.47.30 -> 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.
2022-09-23 16:42:38 +02:00
Björn Lemke
35129a4e7c databases/cego: 2.47.29 -> 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 up and
reduced in code size in such a way that generic create and alter
methods are now provided for all objects
( createObject and alterObject using encoding method inherited from
CegoDecodableObject ). This results in less code, since the create/alter
operations are just implemented once.
2022-09-23 10:53:41 +02:00
Björn Lemke
3da7b52173 devel/lfcbase,databases/cego: update 1.16.5 -> 1.16.6, 2.47.27 -> 2.47.29
lfcbase:
- Added new method BigDecimal::scaleTo to change scaling for an instance.
  This includes an appropriate rounding, if scaling is reduced

cego:
- In CegoFieldValue::castTo, cast from varchar to fixed is done
  now with newly introduced BigDecimal::scaleTo method
  This includes an appropriate rounding in case of precision reduction.
- Fix in CegoCaseCondition to allow null types in condition
  see dbcheck/check106.sql for a sample
2022-09-22 14:56:32 +02:00
Stefan Eßer
fb16dfecae Remove WWW entries moved into port Makefiles
Commit b7f05445c0 has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
2022-09-07 23:58:51 +02:00
Stefan Eßer
b7f05445c0 Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
2022-09-07 23:10:59 +02:00
Björn Lemke
71e17812c2 devel/lfcbase,databases/cego: update 1.16.4 -> 1.16.5, 2.47.26 -> 2.47.27
lfcbase:
- Fix in BigDecimal::operator ==, if _val, _scale and _isPositive
  do not match, we still have to call further checks

cego:
- Fix in CegoProcBlock::toChain, dimension has still not been
  treated for fixed procedure variables
2022-08-16 16:23:22 +02:00
Björn Lemke
83aad88a39 databases/cego: update 2.47.25 -> 2.47.26
- In CegoFieldValue, completed appropriate rounding via cast for
  decimal types to integer types
2022-07-10 10:30:14 +02:00
Björn Lemke
0ccb79496b devel/lfcbase: 1.16.3 -> 1.16.4, databases/cego: 2.47.24 -> 2.47.25
lfcbase:
- Fix added for BigDecimal to avoid rounding for zero trailing values,
  e.g. 119.00 / 100.00 was 1.1, should be 1.19

cego:
- Added small patch for verification check to meet new BigDecimal patch
  in lfcbase
2022-07-09 16:22:06 +02:00
Björn Lemke
4c310a05f3 databases/cego: update 2.47.22 -> 2.47.24
- Replaced Chain("") with Chain() for several. This was motivated by
  an observed bug for check constraint xml import, where a comparision
  between Chain() and Chain("") returned false
- Fix in CegoFunction::evalFieldValue for case REPLACE. If replace
  string is null, then empty string is replaced instead of "null"
  string.

Author:    Björn Lemke <lemke@lemke-it.com>
2022-06-13 11:25:23 +02:00
Björn Lemke
4c4ce8d385 databases/cego: upgrade 2.47.16 -> 2.47.22
- 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
- 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
- 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
- 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
- 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
- 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
- Added function getcount to retrieve current counter value for
  a specific counter
- 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.
2022-02-20 14:03:57 +01:00
Björn Lemke
fcd7f34fbe databases/cego: update 2.47.14 -> 2.47.16
- 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

Author:    Björn Lemke <lemke@lemke-it.com>
2022-01-16 21:56:39 +01:00