Commit graph

297 commits

Author SHA1 Message Date
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
Björn Lemke
414c5d54aa databases/cego: update 2.47.13 -> 2.47.14
- In CegoDistManager::startTableset the method setCurrentLSN
  has to be called before registerObjects since this method
  might also trigger checkpoints
2022-01-05 16:43:26 +01:00
Björn Lemke
b9cb61848a databases/cego: update 2.47.11 -> 2.47.13
- Fix in CegoDistManager::renameLocalObject, before renaming the object,
  it has to be checked, if the new object name is already in use
- Fix in CegoXPorter::readIndexObject, index schema expects tablename
  instead of indexname.
  As a result binary and plain imports with index objects have failed.
2022-01-04 20:33:23 +01:00
Björn Lemke
8da598cd7b databases/cego: 2.47.7 -> 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
- 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
- In CegoDistManager, reload message for views, procedure and trigger
  is avoided now ( since this occurs for each db thread during startup )
- 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. See https://www.lemke-it.com/litexec?request=pubnews
  for details
- 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
2021-12-23 16:47:08 +01:00
Björn Lemke
6da2ac6908 databases/cego: update 2.47.6 -> 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.

Author:    Björn Lemke <lemke@lemke-it.com>
2021-10-10 21:16:41 +02:00
Björn Lemke
5aa5b648b1 databases/cego: update 2.47.3 -> 2.47.6 and devel/lfcbase: 1.16.1 -> 1.16.2
lfcbase:
- Added HashT::getRangePos and HashT::RemovePos for more efficient
  hash array manipulation

cego:
- Fix in CegoQueryCacheEntry::cleanCache, reset of all relevant
  variables. Furthermore, in CegoQueryCache methods, remove from
  hasharray is checked for return code true
- Usage of new HashT methods ( getRangePos and RemovePos ) for
  CegoQueryCache to remove entries from query cache array more efficient
- 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.
2021-07-04 09:48:24 +02:00
Bjoern Lemke
64b9e0376f databases/cego: update 2.47.2 -> 2.47.3
- New generated parsers ( Cego.def and CegoAdm.def ) with dragon 1.5.5
2021-06-06 13:47:45 +02:00
Bjoern Lemke
6794ce73f1 databases/cegobridge: update 1.6.0 -> 1.6.1
Also update databases/cego: update 2.47.1 -> 2.47.2

cego:
- Fix in CegoQueryHelper::checkIndexForPredicate, wrong tabSetId
  was used for getObjectListByTable, must be table specific

cegobridge:
- 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 ...
2021-05-24 09:24:30 +02:00
Bjoern Lemke
ec39a11846 databases/cego: update 2.47.0 -> 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.
- Added cego command line mode setpwd to setup user password
  for offline database
2021-05-23 23:24:19 +02:00
Mathieu Arnold
cf118ccf87
One more small cleanup, forgotten yesterday.
Reported by:	lwhsu
2021-04-07 10:09:01 +02:00
Mathieu Arnold
305f148f48
Remove # $FreeBSD$ from Makefiles. 2021-04-06 16:31:07 +02:00
Kurt Jaeger
e77e9f0aec devel/lfcbase: update 1.15.1 -> 1.16.0
databases/cego: update 2.46.8 -> 2.47.0

lfcbase:
- Introduction of template class HashT

cego:
- Integration of HashT into QueryCache for faster access of cached
  query entries
- 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
- Improvements done for query cache handling
  ( more support for nested queries, stabilization fixes )

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2021-02-21 19:14:36 +00:00
Kurt Jaeger
b415d7be68 databases/cego: update 2.46.7 -> 2.46.8
- Removed log entry in CegoDatabaseManager::checkTableSetRunState

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2021-02-01 15:37:30 +00:00
Kurt Jaeger
e82a74356c databases/cego: update 2.46.6 -> 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
  Example:
  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

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2021-01-29 19:37:30 +00:00
Kurt Jaeger
d9808c3192 databases/cego: 2.46.5 -> 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.

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2021-01-24 10:01:31 +00:00
Kurt Jaeger
09e959e844 databases/cego: update 2.46.0 -> 2.46.5
- Fix in CegoExpr::evalField, fixed dimension was still not handled
  here for ADD and SUB cases
- Added error msg improvement in CegoProcBlock
- 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
- Fix in CegoTableManager for table altering. No type conversion
  allowed with alter modify and no length shrinking

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-12-05 20:24:59 +00:00
Kurt Jaeger
609b3ea635 devel/lfcbase: update 1.14.6 -> 1.15.0
devel/lfcxml: update 1.2.11 -> 1.3.0
databases/cego: update 2.45.35 -> 2.46.0
databases/cegobridge: update 1.5.4 -> 1.6.0

Please note: database updates from 2.45.x to version 2.46.x require
a xml tableset export and import, since table structure information
has been changed!

lfcbase:
- Added template class GraphT for dependency graph implementations
- Fix in BigInteger::mul and BigInteger::div, signing was not treated
  ( e.g. -12 * 12 => -144 ( was 144 ) )

lfcxml: get in sync with lfcbase

cego:
- 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
- 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
- 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.

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-11-28 19:28:21 +00:00
Kurt Jaeger
9168a83626 databases/cego: update 2.45.34 -> 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.
- 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
- 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 ..

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-11-18 17:01:47 +00:00
Kurt Jaeger
71d21a7de3 databases/cego: update 2.45.32 -> 2.45.34
- Improved runstate handling in CegoDistManager
- 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

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-11-17 20:22:20 +00:00
Kurt Jaeger
e136c722de databases/cego: 2.45.31 -> 2.45.32
- CegoObjectManager has been modified to check tableset run state
  for several methods. For this, method
  CegoObjectManager::checkTableSetRunState has been introduced.
- 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

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-11-16 21:15:56 +00:00
Kurt Jaeger
0bdc9bea2d databases/cego: update 2.45.28 -> 2.45.31
- Added case-cond support for aggregation queries
- 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

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-11-14 15:46:09 +00:00
Kurt Jaeger
b0d2a99bf4 databases/cego: update 2.45.25 -> 2.45.28
- 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 )
- 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
- 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.

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-10-25 20:53:43 +00:00
Kurt Jaeger
39b2eac7fd databases/cego: update 2.45.23 -> 2.45.25
- Typo fix in CegoTerm::evalField and CegoExpr::evalField
- More rework on CegoFieldValue for improved cast handling
  ( especially on fixed values )

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-09-18 08:01:37 +00:00
Kurt Jaeger
22dc689e9d devel/lfcxml: update 1.2.10 -> 1.2.11
databases/cego: update 2.45.19 -> 2.45.23

lfcxml:
- Sync patch for MinGW package build

cego:
- Fix in CegoFieldValue::castTo, case VARCHAR_TYPE to FIXED_TYPE,
  plain integers have not been accepted. check091 added for this
- 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 )
- Fix in CegoProcVar::setValue, a castTo has been added to cast to
  appropriate target type

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-09-17 07:25:44 +00:00
Kurt Jaeger
a6bb5b064d databases/cego: update 2.45.18 -> 2.45.19
- Fix in CegoAction::insertArg to check for duplicate attribute
  specification in insert statement, e.g.
  INSERT INTO t1 ( a, a ) VALUES ...

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-08-25 09:16:16 +00:00
Kurt Jaeger
48400fa4e6 databases/cego: 2.45.16 -> 2.45.18
- Fix in CegoClient for treating interactive input. Ctl-D input
  lead to segmentation fault, if used in multiline statements.
- 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
- 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 ...

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2020-08-14 07:20:38 +00:00
Kurt Jaeger
171f1701a1 databases/cego: update 2.45.9 -> 2.45.16
- 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
- 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
- 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
- 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.
- 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.
- 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 )
- 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

Submitted by:	Björn Lemke <lemke@lemke-it.com>
2020-06-05 18:05:04 +00:00
Kurt Jaeger
869f37c434 databases/cego: upgrade 2.45.8 -> 2.45.9
- Fix in CegoBTreeManager, the allowDuplicateNull flag was not
  treated any more. The duplicate handling has been moved from
  CegoBtreeNode to CegoBtreeManager

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-12-01 20:16:59 +00:00
Kurt Jaeger
9791df5e18 databases/cego: upgrade 2.45.6 -> 2.45.8
- 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
- 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
- Improvement in CegoAdmAction for input handling. Used the same
  methods for nextChar and friends as in CegoAction
- 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
  (do not edit the database xml without any deeper knowledge).

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-11-24 17:29:30 +00:00
Kurt Jaeger
3419f9eb05 devel/lfcbase: upgrade 1.14.0 -> 1.14.2
databases/cego: upgrade 2.45.5 -> 2.45.6

lfcbase:
- 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 )

cego:
- 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

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-08-18 17:22:44 +00:00
Kurt Jaeger
eda6267601 databases/cego: upgrade 2.45.1 -> 2.45.5
- 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
- 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 )
  example:
  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
- Code cleanup to avoid warnings with -Wswitch-enum
- 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

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-07-14 07:48:01 +00:00
Kurt Jaeger
b726fe6f4e databases/cego: upgrade 2.45.0 -> 2.45.1
- Treated alias insert queries with empty schema, e.g.
  insert into a1 values ( 1, 'XXX');
- 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

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-07-07 08:53:28 +00:00
Kurt Jaeger
4da64c0c27 databases/cego: upgrade 2.44.14 -> 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 ... )
- Added classes CegoAliasObject and CegoAttrAlias for table alias handling
- Implemented base semantic actions for creating, listing and
  describe alias objects ( still no usage )
- In CegoDistManager::registerObjects, added registration for fkey,
  check, trigger and alias
- Added alias mapping for insert, update and delete queries (
  CegoQueryHelper::mapAliasPredicate still to implement )
- Basic alias mapping for select works, here's 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;
- 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
- 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
- Added trigger and alias object handling to CegoXPorter binary
  export and import

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-07-04 19:13:00 +00:00
Kurt Jaeger
4978cb9f3d databases/cego: upgrade 2.44.13 -> 2.44.14
- Some improved exception handling in CegoTableManager::checkIntegrity
  ( more detail information about violated object )
- Code cleanup CegoTableManager, drop/create/alter operations inside
  a transaction no more allowed

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-06-19 11:57:35 +00:00
Kurt Jaeger
c2c7c8a20d databases/cego: upgrade 2.44.12 -> 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
- 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
- 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
- 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

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-05-14 05:23:19 +00:00
Kurt Jaeger
90d277c9ca databases/cego: upgrade 2.44.11 -> 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))

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-05-11 07:44:38 +00:00
Kurt Jaeger
3da3c7a4f8 databases/cego: upgrade 2.44.10 -> 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 )
- 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 )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-05-10 09:19:07 +00:00
Kurt Jaeger
5caa0e848b databases/cego: upgrade 2.44.9 -> 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 )
- Fix in CegoBTreeNode::getChildPage, parameter traceMin has been
  introduced, which is needed to trace btree with
  CegoBTreeManager::deleteBTree.
  Otherwise, it might happen that non-unique btree objects are not found

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-05-04 15:34:35 +00:00
Kurt Jaeger
f935e2c9b2 databases/cego: upgrade 2.44.8 -> 2.44.9
- Removed legacy method CegoAggregation::setInit/isInit
- 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.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-05-02 12:50:46 +00:00
Kurt Jaeger
de27c99c6f databases/cego: upgrade 2.44.7 -> 2.44.8
- Added method CegoClient::treateEscape to handle escacpe charaters
  in command strings for interactive and batch mode ( newline, carriage
  return und tab )
- 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. Example:
    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 optimization done in CegoSelect and CegoAction for schema
  evaluation.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-04-28 08:35:46 +00:00
Kurt Jaeger
d8e996290e databases/cego: update 2.44.6 -> 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.
- 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.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-04-26 07:35:54 +00:00
Kurt Jaeger
8bec5afaeb databases/cego: update 2.44.5 -> 2.44.6
- Added some code cleanup and additional checks ( check082 and check083 )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-04-23 11:56:46 +00:00
Kurt Jaeger
05773f4f5f databases/cego: update 2.44.4 -> 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.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-04-22 14:11:46 +00:00
Kurt Jaeger
a03d0cd817 databases/cego: update 2.44.3 -> 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

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-04-22 12:16:55 +00:00
Kurt Jaeger
5d36972ee2 databases/cego: update 2.44.1 -> 2.44.3
- Fix in CegoTableManager::deleteDataTable, before resolving external
  table references via evalExtTableReferences, the subquery must be
  prepared, to resolve local attributes first
- 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.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2019-04-22 06:57:54 +00:00
Kurt Jaeger
65db7a8725 devel/lfcbase: update 1.11.9 -> 1.13.0
devel/lfcxml: update 1.2.6 -> 1.2.10
databases/cego: update 2.39.16 -> 2.44.1
databases/cegobridge: update 1.4.0 -> 1.5.0
databases/p5-DBD-cego: update 14.0 -> 1.5.0

- Warning: storage format has changed
  Export to xml format before upgrade and re-import after the upgrade
  See UPDATING
- recompile all applications linked to libcego
- Lots of changes, among them:
  o improved crash recovery
  o fixes to SQL expected behaviour
  o better CDATA handling
  o fixes primary key handling design issue
  o changes to serialisation for export/import, XML export/import is still
    possible

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
Changelog:	http://www.lemke-it.com/litexec?request=pubnews&user=&lang=en&numlog=1000
2019-04-21 13:31:25 +00:00
Sunpoet Po-Chuan Hsieh
40c9c7f7eb Update devel/readline to 8.0
- Bump PORTREVISION of dependent ports for shlib change

Changes:	https://tiswww.case.edu/php/chet/readline/CHANGES
PR:		236156
Exp-run by:	antoine
2019-04-09 14:04:49 +00:00
Kurt Jaeger
47e263b158 devel/lfcbase: update 1.11.8 -> 1.11.9
databases/cego: update 2.39.15 -> 2.39.16

lfcbase:
- Introduced new method File::flush to force synchronization of data to disk

cego:
- 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
- Added File::flush method to CegoLogManager and CegoFileHandler
  to synchronize log data and datafile data to disk

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-04-24 05:22:57 +00:00
Kurt Jaeger
7632a3b891 databases/cego: update 2.39.14 -> 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.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-04-11 11:24:41 +00:00