Commit graph

249 commits

Author SHA1 Message Date
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
Kurt Jaeger
a0321b3482 databases/cego: update 2.39.13 -> 2.39.14
- Fix in CegoXPorter::writeRow and CegoXPorter::readRow for binary
  export and import of tables containing lob null values. lob null
  values must be identified by colLen unsigned long long = 0 instead
  of integer = 0

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-04-09 17:56:15 +00:00
Kurt Jaeger
abd1113fb0 databases/cego: update 2.39.12 -> 2.39.13
- Introduced CegoTransactionManager::getCrashAffectedTables method.
  In case of a crash recovery, all transaction affected tables have
  to be analysed for index objects. Before finishing transactions,
  the index objects have to be invalidated ( since they might be
  corrupted ) and after completion of transactions they have to be
  recreated. This is done now in CegoTableManager::finishOpenTransaction
- Fixes in CegoLogManager, CegoRecoveryManager, CegoDistManager and
  CegoTableManager for LSN handling. Instead of saving the next LSN,
  now the current written LSN is recorded in CegoLogManager. This
  seems to be more natural, since a lot of methods set up the LSN to
  a value + 1. Also this fixes a mismatch between commited lsn and
  current lsn, which leads to a tableset recovery during startup in
  any case ( occured with version 2.39.9 )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-04-07 17:22:23 +00:00
Kurt Jaeger
5fd30ea130 databases/cego: update 2.39.11 -> 2.39.12
- Patch in CegoClient to catch format exceptions like
  "Invalid datetime string <0> for format <%d.%m.%Y %H:%M:%S>"
  This may happen, if on server side bad union selects are defined like
  create view v1 as
    select a as a, b as b from t1
    union all
    select a as a, 0 as b from t2;
  where b is a datetime data type. In this case, invalid formatted
  strings occur on the client side, which are catched now.
- Patch in CegoDatabaseManager::useObject to support lock
  delay values > 1 sec. The DBM_LOCKDELAY value in CegoDefs has now
  increased to 2500 msec. In some cases for heavy updates
  ( e.g. clob updates ) this might be useful to avoid ugly exclusive
  lock delay messages in database log file
- Fix in CegoTableManager::updateTuple. If the update fails ( this
  might happen, if another transaction actually updates the corresponding
  tuple ), any allocated lob values are freed now. Otherwise the
  data pages for the lob values were allocated with no more references.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-04-05 17:10:43 +00:00
Kurt Jaeger
73dedf9695 databases/cego: update 2.39.9 -> 2.39.11
- Improvements for log handling, the logIt method was moved from
  CegoTableManager to CegoBufferPool. This allows a more adequate
  locking of the logging actions. For this the tsLock array has been
  removed from CegoTableManager and lmLock array has been set up in
  CegoBufferPool. Since checkpoint writing occurs in CegoBufferPool
  ( which is also relevant for loging operations ), the logging method
  is now part of CegoBufferPool.
- The logAction method in CegoLogManager has also been improved in
  a way, that a log buffer is not allocated for each logging operation
  anymore. Instead, a logBuf array has been defined for all tablesets
  and the logBuf is reallocated, if the current logging record exceeds
  the log buffer.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-04-01 14:00:47 +00:00
Kurt Jaeger
b57cda5639 databases/cego: update 2.39.8 -> 2.39.9
- Added fixes for recovery procedure in CegoTableManager. Now the
  LSN is allocated at the beginning of critical operation to avoid
  double operations in case of a forced checkpoint. For this the
  CegoLogManager::nextLSN method has been introduced. Now it is no
  more ensured that the log is written with increasing LSN, so some
  logical parts of the recovery procedure in CegoRecoveryManager has
  been changed.
- In CegoBufferPool, the writeCheckPoint method still returned int
  value. This has been changed to unsigned long long

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-29 11:55:47 +00:00
Kurt Jaeger
ee269d6802 devel/lfcbase: 1.11.6 -> 1.11.7
databases/cego: 2.39.7 -> 2.39.8

lfcbase:
- Fix for memory leak in TreeT and AVLTreeT.
  The = operator implementation did not empty the tree before copy.
- Additional fix to this release : Added regfree call to Matcher
  destructor. Missing this call seems to cause a small memory leak

cego:
- Fix for memory leak in CegoPredDesc, pMatcher has not been cleaned up

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-18 10:57:01 +00:00
Kurt Jaeger
f8010281e0 databases/cego: update 2.39.5 -> 2.39.7
- Fix in CegoTableManager::deleteDataTable, pBlock has to be checked
  for null value, otherwise crash recovery might crash. ( bug came
  with 2.39.0 to check for pBlock->getTriggerValueList )
- Some clob related fixes in CegoQueryHelper::decodeNativeFVL /
  decodeFVL relevant for recovery handling
- Fix in CegoRecoveryManager::recoverCurrentTransactionLog for the
  INSERT case. For the blob/clob handling, the lobREf values have not
  been set up correctly. This might lead to problems for table recovery
  with more than one lob row ( e.g. table t1 ( a blob , b clob )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-10 11:45:01 +00:00
Kurt Jaeger
c85048adba databases/cego: update 2.39.4 -> 2.39.5
- Bug fix in CegoAction::reallocateStringBuf, in the memcpy call,
  just the previous stringBufLen has to be copied ( _stringBufLen -
  MAXSTRINGLEN ). This bug might lead to seg fault in case of large
  parser input ( e.g. clob strings )
- In CegoQuery for insert and insert-by-select case, allocated blob
  and clob data ( by CegoQueryHelper::prepareFieldValue ) is cleaned
  now if any exception occurs

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-06 18:26:49 +00:00
Kurt Jaeger
be6fb2b13f databases/cego: update 2.39.3 -> 2.39.4
- Small bug fix in CegoDistManager, which came up with version
  2.39.0. In method deleteLocalDataTable, the variable delCount was
  declared two times, which lead to a result of 0 tuples deleted in
  any case

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-05 20:34:13 +00:00
Kurt Jaeger
94ab853af5 databases/cego: update 2.39.2 -> 2.39.3
- Small improvement in CegoDbThreadPool. For a better db thread
  load value calculation, the request queue is no longer locked while
  waiting for incoming requests. Instead the QUEUEDELAY parameter has been
  increased to a default value of 200 msec to reduce db thread cpu
  load while idle. Now the db thread has a good chance to report
  idle time to the db thread pool.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-03 09:10:06 +00:00
Kurt Jaeger
a19dcac247 databases/cego: update 2.39.1 -> 2.39.2
databases/cegobridge: update 1.3.0 -> 1.4.0

cego:
- Fix in CegoTableManager::updateTuple, while setting up expression
  list, field list array must be setup BEFORE block ist set, since
  field list is needed by block setup ( in case of subqueries for
  prepare )

cegobridge:
- Adaptions for cego-2.39

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-03-01 12:29:31 +00:00
Kurt Jaeger
4ddc75fd13 databases/cego: update 2.38.20 -> 2.39.1
- Introduced table locking statements to set an explicit lock on a
  table ( e.g. for update synchronisation ). This feature replaces
  the "set update sync on/off" command
- Trigger implementation basically completed
- Fix in CegoQueryHelper::encodeFVL, for blob/clob values lists,
  the corresponding index variables ( blobidx/clobidx ) have not been
  increaed while encoding lob data. This might lead to invalid results
  and seg faults in case of multiple lobs values in one insert/update
  operation.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-02-28 18:53:10 +00:00
Kurt Jaeger
1dea0a5453 databases/cego: fix distinfo
Reported by:	pkg-fallout
2018-02-25 04:49:54 +00:00
Kurt Jaeger
44c4e1e059 databases/cego: 2.38.19 -> 2.38.20
- For heavy update operations on tables with btrees using embedding
  transactions, duplicate btree errors may occur. This is caused
  by not checking corresponding tuple states. To solve this problem,
  the following fixes have been done :
  o Fix in CegoTableManager::checkBTreeIntegrity : The tuple state for
    found entries has to be checked if state = COMMITTED
  o Fix in CegoBTreeNode:checkForAffected ( was checkForDeleted before ) :
    The tuple state has already checked for state
    INSERTED if tid != dataTid

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-02-24 19:09:17 +00:00
Kurt Jaeger
c6e8c07d58 databases/cego: update 2.38.18 -> 2.38.19
- Fix in dbcheck/check065.sql for union sql in view.There must be
  set up aliases for attributes in selection now

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-02-13 20:25:50 +00:00
Kurt Jaeger
473c9e5bfe databases/cego: update 2.38.16 -> 2.38.18
- Fix in CegoTableManager::createForeignKey, for empty tables,
  referenced attributes names have not been checked. This might lead
  to invalid key objects.
- Fix in CegoSelect::prepare, expression alias in select list are
  checked now for union selects. Alias definition in select expression
  list should be identical for all select statements in union

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2018-02-02 18:04:41 +00:00
Kurt Jaeger
4c16423c3c databases/cego: update 2.38.14 -> 2.38.16
- Increased NETMNG_QUEUE_DELAY to 1000000 ( 1 ms ) to minimize CPU load
- Introduced QUEUEDELAY ( in usec ) config parameter to adjust queue
  delay in database xml file. This allows to throttle down database
  response time for incoming connection requests and minimize CPU
  load
- Added dbcheck/check072.sql. This implements the calculation of
  fibonacci numbers using stored procedures as a demonstration for
  massive recursive procedure calls
- Optimization for procedure load in CegoFunction::evalFieldValue
  ( case USERDEFINED ), procedure is just loaded as a dedicated
  instance ( via loadProcedure method ), if pMasterBlock is set. This
  avoids ( expensive ) dedicated load, if the procedure is still not
  in use by the corresponding thread. So just for recursive procedure
  calls, the dedicated load happens.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-12-31 19:28:20 +00:00
Kurt Jaeger
c3a3c592b8 devel/lfcbase: update 1.11.4 -> 1.11.5
databases/cego: update 2.38.12 -> 2.38.14

lfcbase:
- Stability patch for strptime implementation ( MinGW only )

cego:
- Fixed memory lead in CegoDistManager destructor ( _pPA was not deleted )
- Further optimization done in CegoBTreeCursor, introduced methods
  traceLow and inRange to treat btree comparison in a more efficient way
- Fix in CegoAttrCond::getIndexCond, like and no like comparisons
  must be filtered out for new btree cursor tracing logic

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-12-20 19:59:04 +00:00
Kurt Jaeger
acad63c263 databases/cego: update 2.38.10 -> 2.38.12
- Small optimization in CegoAttrCond::checkIndex, removed primary
  flag, since this is done now by attribute ordering. This leads
  to full index trace match instead of trace with index support and
  so, additional unnecessary predicate evaluation is avoided.
- More rework for btree evaluation in CegoBTreeCursor
- Optimization in CegoBTreeCursor::getNext. Instead of calling
  getNext in a recursive way, this is now done in a iterative way.
  This might avoid heavy stacking in case of special query constraints
  ( e..g multi dimensional btrees and range conditions like a > 400
  and b betweeen 'AAA' and 'DDD' )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-12-14 16:56:12 +00:00
Kurt Jaeger
133458ad7f devel/lfcbase: update 1.11.3 -> 1.11.4
databases/cego: update 2.38.9 -> 2.38.10

lfcbase:
- Fixes in TreeT class, changed methods First, Next, isEmpty and
  compare operators to const

cego:
- Fix in CegoDistManager, we have to use a dedicated parser for
  loadView and loadProc methods. Otherwise compilation may fail in
  case of nested objects ( e.g. a view which references another view
  object)
- Fix in CegoBTreeCursor, CegoAttrCond and CegoAttrComp, for
  conflicting cursor conditions ( e.g. a = 4 and a < 1 ), the cursor
  evaluation failed, since just the primary condition was treated.
- For CegoBTreeCursor, the method fullMatch has been introduced,
  to make an final evalution in case of multi conditions.
- Also introduced: a ordering for CegoAttrComp set in
  CegoAttrCond to treat more constraint conditions at the beginning
  ( EQUAL before LESS_THAN before NOT_EQUAL and so on )
- Changed CegoAttrCond compSet from SetT to TreeT.
  This is required, since we need the ordering in the set.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-12-10 20:36:28 +00:00
Kurt Jaeger
fa8acb3c2c databases/cego: update 2.38.7 -> 2.38.9
- Introduction of new functions ascii ( get ascii character for
  numeric value ) , ldiv and lmod ( div and mod operation for long
  values )
- Modification in CegoFunction::evalFieldValue. To allow recursive
  calls of user defined functions and procedures, dedicated procedure
  instances are created for each call. This is done by parsing the
  procedure text via CegoAction

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-12-09 10:52:32 +00:00
Kurt Jaeger
d21a9cbd29 devel/lfcbase: update 1.11.2 -> 1.11.3
databases/cego: update 2.38.6 -> 2.38.7

lfcbase:
- Improvements made for dedicated strptime implementation. The
  function did not return null in case of unparsable date values.
  This code is just used for MinGW compiles since there is no
  implementation in the Standard C library available.

cego:
- Fix in CegoXPorter::readTableObject, the defintion for MAXROW BUF
  still was defined locally and rowLen was noch checked.
- Optimization in CegoFieldValue::decode, memory was allocated via
  malloc, rather _staticBuf should be used for performance reasons.
  _isLocalCopy was not set to true

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-12-02 10:43:31 +00:00
Kurt Jaeger
0400e7971d devel/lfcbase: update 1.11.1 -> 1.11.2
databases/cego: update 2.38.5 -> 2.38.6

lfcbase:
- More detailed exception messages for BigDecimal and BigInteger

cego:
- Fix in CegoFunction::getId and CegoSelect::getQueryId : with
  enabled query cache, the following select is cached
    select nextcount(mycount);
- Since nextcount is a modifying operation, this is not a good idea.
  To avoid caching, CegoFunction now throws an Exception if
  nextcount / setcount function calls are detected during getQueryId.
  For these cases, the query id ignored for caching

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-30 20:09:16 +00:00
Kurt Jaeger
94f035c7c0 databases/cego: update 2.38.3 -> 2.38.5
- Fix in CegoBTreeValue::valueFromSchema, introduced method
  getReservedLength to return fixed value length for type fixed and
  decimal. Since for decimal and fixed type just the dimension is
  stored in CegoField::getLength, we must define a reserved area
  for those types. This is done now with constant definition
  RESERVED_BTREE_FLOATLEN in CegoDefs.h
- Improved ordersize calculation in CegoOrderSpace:insertTuple. Now
  the following formula is used :
    int s = sizeof(fv);
    if ( fv.getLength() > STATICFIELDBUF )
      s += fv.getLength();
    orderEntryLen += s;
  The catches the base memory usage for the instance but also the
  dynamic allocated part

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-25 12:54:48 +00:00
Kurt Jaeger
d4cb82ae6f databases/cego: update 2.38.1 -> 2.38.3
- Fix in CegoXMLSpace::setTSSortAreaSize, changed type from int to
  unsigned long long, otherwise overflow may occur for large sort
  area size configurations
- Performance optimization done in CegoOrderSpace. Instead of storing
  the CegoField list for the result tuple in CegoOrderNode, just the
  values are stored there. The order cursor now gets the schema with
  the constructor and build the CegoField List in the getFirst /
  getNext methods. This seems a huge amount of heap space, which is
  dynamically allocated during the sorting procedure ( sortareasize
  parameter ).
  Especially for large ordering result sets this saves significantly
  memory and improves performance.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-22 18:46:12 +00:00
Kurt Jaeger
aac9300cfd databases/cego: update 2.38.0 -> 2.38.1
- Fix in CegoPredDesc::decode, loop variable i for IN/NOTIN case
  was not initialized
- Fix in CegoAction::execCheckCreate, check contraints are checked
  for contained subselects. subselects are ( still ) not supported
  since the CegoCheckOject::decode method can not provide a valid
  tablemanager instance ( it is called from CegoObjectManager )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-19 09:33:10 +00:00
Kurt Jaeger
a90cb2865a databases/cego: update 2.37.3 -> 2.38.0
databases/cegobridge: update 1.2.1 -> 1.3.0

cego:
- Fix in CegoSelect::clone, pUnionSelect was not cloned, which might
  lead to seg faults
- Introduced predicate clause for select .. in ( expr, expr, ... ),
  e.g. select * from t1 where a in ( 1, 2, 3 ); This was still not
  implemented but is part of standard SQL.

cegobridge:
- Adaptions made for modified cego-2.38.0 API with extended
  CegoDatabaseFormatter::formatPred method ( exprList was added for
  new introduced select in ( expr list ) predicate )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-18 08:34:07 +00:00
Kurt Jaeger
1ba43953c4 databases/cego: update 2.37.1 -> 2.37.3
- Fix in CegoClient, the new comment logic by using Tokenizer does
  not work ( '-' characters are detected as comment tokens ). Code
  replaced by using posStr chain function
- Adaption in CegoMain to also parse comment lines in a more
  sophisticated way ( same as in CegoMain ), just relevant for server
  batch mode
- Optimization in CegoDistCuror::joinSetup, the join predicate is
  now analysed in a way, that a condition list is created ( via makeCNF
  and createCondition methods in CegoQueryHelper ). The condition
  list then is analysed to achieve a better cursor condition which
  results in improved index usage

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-15 12:32:34 +00:00
Kurt Jaeger
ab253c5ab8 devel/lfcbase: update 1.11.0 -> 1.11.1
devel/lfcxml: update 1.2.5 -> 1.2.6
databases/cego: update 2.37.0 -> 2.37.1
databases/cegobridge: update 1.2.0 -> 1.2.1

- New generated configure script with libtool-2.4.6

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-10 19:09:33 +00:00
Kurt Jaeger
59c7249a69 devel/lfcbase: update 1.10.3 -> 1.11.0
databases/cego: update 2.36.4 -> 2.37.0
databases/p5-DBD-cego: update 1.3.0 -> 1.4.0
databases/cegobridge: update 1.1.6 -> 1.2.0

lfcbase:
- Layout improvements in Pager class
- Changed constructor for Net and NetHandler class to setup maxSendLen.
  Since this changes the API, minor release level has been increased

cego:
- Improvements for cgblow simulation mode added
- Improvements for cgclt, added pipe mode to read input from stdin
  Now comments are allowed also after delimiter token, e.g.
  create table t1(a int); -- a sample table
- Support for lfcbase-1.11.x with new Net API.
  The parameter maxSendLen ist still a constant in CegoDefs.h
  Improvements added for CegoXMLSpace::setPerm, for existing permissions,
  just tableset, filter or right can be set up now,
  e.g set permission p1 with right=WRITE for role1 just sets the right
  value for permission p1 to value WRITE, all other values are unchanged
- Added show parameter admin command to show all tableset independent
  database parameters

p5-DBD-cego:
- support changed API with lfcbase-1.11.0

cegobridge:
- support changed API with lfcbase-1.11.0

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-08 10:23:00 +00:00
Kurt Jaeger
9ddae3c3f6 devel/lfcbase: update 1.10.1 -> 1.10.2
databases/cego: update 2.36.3 -> 2.36.4
databases/cegobridge: update 1.1.5 -> 1.1.6

cego:
- Fix in CegoSelect::nextTuple, before adding an entry to the query
  cache, it has to be checked, if any tables from foreign tableset
  are referenced in the query. If so, no cache entry is made, since
  table changes for foreign tables are not detected.
- Improved error messages for invalid database objects
- Decreased shutdown delay time by reducing net delays for all
  thread pools and optimized mediator thread wait procedure
- Completely removed the nologging option for import actions.
  Logging is disabled in any case now.
- Optimization added for log handling. During ( xml ) import,
  logging is completely deactivated, after import is completed,
  log is started again and a checkpoint is written.
  Since import can be repeated in case of a system during import,
  nothing gets lost. Deactivating logging increases import speed and
  avoids side effects

cegobridge:
- Speed up imports by changing the way the parser reads the input

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-01 17:42:34 +00:00
Kurt Jaeger
02bf7be731 databases/cego: update 2.36.2 -> 2.36.3
- Changed recovery strategy for existing btree / avl index objects.
  Before creating an index object, it is checked if exists. If exists,
  it is dropped and recreated. This seems to be a more stable strategy,
  since it may occur, that index objects still exist for several
  reasons.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-11-01 06:44:04 +00:00
Kurt Jaeger
9cf2b08e2a databases/cego: update 2.36.1 -> 2.36.2
- Fix in CegoFactor::setFieldListArray, the _flaCached variable has
  to be set to false, if _pFLA is set to a different value. Otherwise,
  we might refer to invalid memory, which results in core dump

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-10-30 19:36:54 +00:00
Kurt Jaeger
57a2337b4b databases/cego: update 2.36.0 -> 2.36.1
- Added signal handler to CegoAdmAction. Now, ( long ) running
  tableset export and import requests can be aborted in a controlled
  way via Ctrl-C command.
- Fix in CegoXPorter, export file will be removed, if any exception
  occurs. So it is ensured, that the written export file is consistent
  and complete
- fixes in CegoXPorter for CLOB handling ( was not checked for plain exports )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-10-29 10:42:23 +00:00
Kurt Jaeger
5a28c3da1a databases/cego: 2.35.10 -> 2.36.0
- Completed pointer cleanup in CegoQueryHelper::evalPredicate, added
  check061 to check pointer cleanup
- Fix in CegoTableManager::createBTree, pC object cursor has to be
  set to 0, otherwise in case of abortion a seg fault occurs
- Changed default value for btree cache enabling to false
- Improvement in CegoBufferPool::calcSegment for segid calculation.
  It has been recognized, that with the current calculation
  ( pageid % numsegment ) not all slots can be reached for
  special buffer pool configurations.
  The formula has been changed ( to ( pageid / numpages ) % numsegment )
- Adding missing export / import messages to CegoXPorter
- Changed btree cache enabling syntax. Instead of a dedicated switch
  command ( set btree cache on / off ), the cache option now is
  directly given with the create btree command ( e.g. create btree
  b1 on t1(a) cached )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-09-30 06:17:07 +00:00
Kurt Jaeger
069c031f08 databases/cego: update 2.35.8 -> 2.35.10
- Fix in CegoBufferpool::writeCheckpoint, in case of an locking
  exception ( lockBufferPool ), the pool must be released in any case.
  For this the CegoLockManager::lockBufferPool and
  CegoLockManager::unlockBufferPool have been modified in a way,
  that lockBufferPool saves the current sema index ( _poolRangeLock )
  which is later used for the unlocking call.
- Timeout parameter for bufferpool lock reduced to 60 seconds.
- Optimization in CegoBufferPool:bufferfix for minHashId calculation
  in step 2, there was an unneeded locking operation for the
  minhashId, which was already locked by the main loop
- Small format fix in CegoProcCreateStmt ( missing indent )
- Add header row out put for client raw mode ( attribute names )
- Fix in CegoQueryHelper::evalPredicate, for all predicate types,
  the field array value has to be reset to 0, otherwise seg fault my
  occur since invalid references might be used

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-09-17 18:23:35 +00:00
Kurt Jaeger
ce851b4316 databases/cego: update 2.35.4 -> 2.35.8
- Fix in CegoQueryHelper::aggregateTuple, in case of min-Aggregation,
  wrong results may occur, if null values have to be treated. Since
  null value handling is now treated inside CegoFieldValue, some code
  here was obsolete.
- Fix in CegoPredDesc for INSUB and NOTINSUB constructor + clone
  method. There was a confusing with the isNegated flag which has
  been corrected ( also in using class CegoAction ) The wrong negation
  might lead to wrong query result for views using subselect with in
  or not in subselects
- Bug fix in CegoDistCursor::getTuple, for the LEFTOUTER case and
  moreRight conditions, the right table cursor was called double time
  ( native and with nextRight ). The native call has to be removed
  since this may lead to strange effects actually just observed for
  mingw compiles

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-09-09 20:38:04 +00:00
Kurt Jaeger
166d12ce5c databases/cego: update 2.35.3 -> 2.35.4
- Added tuple information command tupleinfo to indicate
  tuple state information for a given table
  ( COMMITTED, INSERTED, DELETED, OBSOLETE )
- Fix in CegoTransactionManager::commitTransaction and
  CegoTransactionManager::rollbackTransaction, in case of a crash recovery
  the taList does not contain any transaction entries, but the rollback
  segments have to be checked in any case for entries to process. Otherwise,
  the transaction will not be completed

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-09-03 09:44:23 +00:00
Kurt Jaeger
8257b79276 devel/lfcxml: update 1.2.4 -> 1.2.5
databases/cego: update 2.35.2 -> 2.35.3

lfcxml:
- Small improvement in XMLSuite::nextChar to check for non-ASCII characters

cego:
- Fix in CegoTableManager::finishOpenTransaction, the transaction id for
  the corresponding tableset must be set to zero, otherwise in case of crash
  recovery procedures a transaction id might be active and the open
  transactions are not completed correctly

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-09-02 10:08:30 +00:00
Kurt Jaeger
c0db7227aa databases/cego: update 2.35.1 -> 2.35.2
- Fix for a bad patch
  In CegoSelect::clone also the pCache variable has to be copied
  ( was previously done by calling setTabSetId )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-08-25 19:50:18 +00:00
Kurt Jaeger
d478eaa4e3 databases/cego: update 2.35.0 -> 2.35.1
- Fix in CegoSelect::setProcBlock, pBlock was not setup for _pPred
  This might result in wrong query results within stored procedures
  with select statements which refer to procedure variables
- Changed index recovery handling in a way, that index and btree
  objects are rebuild immediately instead of invalidating them. This
  leads to a much better recovery performance in case of expensive
  queries where index use is needed for fast evaluation

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-08-24 17:20:17 +00:00
Kurt Jaeger
670f13ad56 databases/cego: update 2.34.0 -> 2.35.0
- Fix in CegoDistManager::checkKey ( used for verify tableset admin
  commend ). Check for foreign key has been redesigned
- Fix in CegoBTreeCursor::getFirst, _pAttrCond has to be checked
  for 0, otherwise a core dump may occur ( detected with verify
  tableset admin command )
- In CegoViewObject::toChain() the view object reference string has
  to return complete information including the tableset. Otherwise,
  references to foreign tableset objects with the view will not work
  correctly.
- Fix in CegoDistCursor to support multiple view references in a
  query ( e.g. select a from v1 where exists select * from v1 ... )
  In the past, this might lead to infinite loops, since just the view
  select reference was used. Now the reference is cloned.
  The usage of clones results in several fixes for the CegoSelect::clone
  and underlying clone methods
- The previous problem regarding query cache is a result of the new
  introduced select cloning. The extended query id string should solve
  the problem
- Fix in CegoSelect::getId, the values of the parent join buffer
  have also be added to the query id string, otherwise, nested queries
  which references attributes to parent join buffer can not be
  distinguished
- Introduced simple selects, e.g. select 1, select sysdate, etc for
  select queries without any object access
  This might be useful for example for database connection validation queries

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-08-23 14:32:56 +00:00
Kurt Jaeger
ae07e8c34e devel/lfcbase: update 1.9.7 -> 1.10.0
databases/cego: update 2.33.22 -> 2.34.0

lfcbase:
- Adoptions made in CommandExecuter and Outstream for MINGW builds
- Added Datetime advanced constructor for more efficient datetime construction

cego:
- Small fix in CegoAttrCond::operator = , compare Find result
  with 0 instead of false. A compile error occured for MINGW compiles
- Use of new introduced lfcbase datetime constructor to create
  datetime values with numeric input ( year, month, day, hour, minute
  and second ) for more efficient value handling
- Fix in CegoTypeConverter::getTypeLen for LONG_TYPE values, it
  should be size of(long long) instead of sizeof(long). This impacts
  MINGW compiles, since sizeof(long) ist just 4 bytes
- Changed CegoTypeConverter methods to static
- Introduced new date function newdate with optional numeric input.
  If used with year and month input, this can double the speed for
  date construction ( no string parsing required )

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-08-12 12:21:23 +00:00
Kurt Jaeger
89cc751e72 databases/cego: update 2.33.21 -> 2.33.22
- More fixes in CegoTableManager::keyReferenceExists and
  CegoTableManager::createForeignKey, there still were missing some
  adpotions for TableCursor::setup return code and other case handling

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-08-05 12:12:35 +00:00
Kurt Jaeger
1889127004 databases/cego: update 2.33.20 -> 2.33.21
- Added further constraint check in CegoTableManager::dropObjectSynced.
  Primary objects just allowed to be removed, if no foreign key
  reference exists
- More fixes on foreign key contraint handling in
  CegoTableManager::checkKeyIntegrity and CegoTableManager::insertDataTable
  methods
- Fix in CegoTableManager::checkKeyIntegrity. The implementation
  of the mehod has been completly reworked, since not all violation
  cases have been treated.

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-07-29 07:01:49 +00:00
Kurt Jaeger
731c58726d databases/cego: update 2.33.19 -> 2.33.20
Fix in CegoDistCursor to support advanced left and right outer
join queries of the form

SELECT tx.a AS xa, ty.a AS ya FROM t1 tx
LEFT OUTER JOIN t2 ty ON tx.a = ty.a + 1;

For this, the evaluation of the predicate has to be done in a
different way to get complete row set

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-07-22 08:34:58 +00:00
Kurt Jaeger
2dbcf22671 databases/cego: update 2.33.18 -> 2.33.19
- Fix in CegoOrderSpace::insertTuple, for the localTuple variable,
  also a dedicated copy has to be allocated, otherwise it may happen
  that invalid tuple references ( caused be page relocation ) lead
  to invalid order results
- Added performance optimization to CegoTableManager::updateTuple.
  The already evaluated index, key and checklist are also provided
  to checkIntegrity method now ( instead of retrieving the lists again).
  The improves performance for updates with many tuples significantly

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-07-16 13:47:20 +00:00
Kurt Jaeger
2567ba54ea databases/cego: update 2.33.16 -> 2.33.18
- Method cleanup in CegoSelect.cc, also some irrelevant case is
  treated for grouping clauses in combination with distinct operator
- Added tablemanager parameter to CegoProcWhileStmt to catch query
  abort. In case of infinite while loops, this enables the db admin
  to abort procedure execution
- Optimization for CegoFunction::SETCOUNT procedure implementation
  added. Now this is an atomic operation, instead of calling
  getCounterValue.
- For this, also the CegoXMLSpace::setCounterValue method has been
  changed to return the current counter value return the current
  counter value

Submitted by:	Bjoern Lemke <lemke@lemke-it.com>
2017-07-14 06:22:06 +00:00