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