aboutsummaryrefslogtreecommitdiff
path: root/databases/cego
Commit message (Collapse)AuthorAgeFilesLines
* One more small cleanup, forgotten yesterday.Mathieu Arnold2021-04-071-1/+0
| | | | Reported by: lwhsu
* Remove # $FreeBSD$ from Makefiles.Mathieu Arnold2021-04-061-1/+0
|
* devel/lfcbase: update 1.15.1 -> 1.16.0Kurt Jaeger2021-02-212-4/+4
| | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=566237
* databases/cego: update 2.46.7 -> 2.46.8Kurt Jaeger2021-02-012-4/+4
| | | | | | | | | - Removed log entry in CegoDatabaseManager::checkTableSetRunState Submitted by: Björn Lemke <lemke@lemke-it.com> Notes: svn path=/head/; revision=563585
* databases/cego: update 2.46.6 -> 2.46.7Kurt Jaeger2021-01-292-4/+4
| | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=563242
* databases/cego: 2.46.5 -> 2.46.6Kurt Jaeger2021-01-242-4/+4
| | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=562455
* databases/cego: update 2.46.0 -> 2.46.5Kurt Jaeger2020-12-052-4/+4
| | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=557082
* devel/lfcbase: update 1.14.6 -> 1.15.0Kurt Jaeger2020-11-282-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=556518
* databases/cego: update 2.45.34 -> 2.45.35Kurt Jaeger2020-11-182-4/+4
| | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=555652
* databases/cego: update 2.45.32 -> 2.45.34Kurt Jaeger2020-11-172-4/+4
| | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=555583
* databases/cego: 2.45.31 -> 2.45.32Kurt Jaeger2020-11-162-4/+4
| | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=555517
* databases/cego: update 2.45.28 -> 2.45.31Kurt Jaeger2020-11-142-4/+4
| | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=555118
* databases/cego: update 2.45.25 -> 2.45.28Kurt Jaeger2020-10-252-4/+4
| | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=553291
* databases/cego: update 2.45.23 -> 2.45.25Kurt Jaeger2020-09-182-4/+4
| | | | | | | | | | | - 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> Notes: svn path=/head/; revision=548877
* devel/lfcxml: update 1.2.10 -> 1.2.11Kurt Jaeger2020-09-172-4/+4
| | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=548819
* databases/cego: update 2.45.18 -> 2.45.19Kurt Jaeger2020-08-252-4/+4
| | | | | | | | | | | - 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> Notes: svn path=/head/; revision=546144
* databases/cego: 2.45.16 -> 2.45.18Kurt Jaeger2020-08-142-4/+4
| | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=544874
* databases/cego: update 2.45.9 -> 2.45.16Kurt Jaeger2020-06-052-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=538042
* databases/cego: upgrade 2.45.8 -> 2.45.9Kurt Jaeger2019-12-012-4/+4
| | | | | | | | | | | - 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> Notes: svn path=/head/; revision=518811
* databases/cego: upgrade 2.45.6 -> 2.45.8Kurt Jaeger2019-11-242-4/+4
| | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=518340
* devel/lfcbase: upgrade 1.14.0 -> 1.14.2Kurt Jaeger2019-08-182-4/+4
| | | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=509231
* databases/cego: upgrade 2.45.1 -> 2.45.5Kurt Jaeger2019-07-142-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=506611
* databases/cego: upgrade 2.45.0 -> 2.45.1Kurt Jaeger2019-07-072-4/+4
| | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=506111
* databases/cego: upgrade 2.44.14 -> 2.45.0Kurt Jaeger2019-07-043-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=505863
* databases/cego: upgrade 2.44.13 -> 2.44.14Kurt Jaeger2019-06-192-4/+4
| | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=504537
* databases/cego: upgrade 2.44.12 -> 2.44.13Kurt Jaeger2019-05-142-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=501620
* databases/cego: upgrade 2.44.11 -> 2.44.12Kurt Jaeger2019-05-112-4/+4
| | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=501228
* databases/cego: upgrade 2.44.10 -> 2.44.11Kurt Jaeger2019-05-102-4/+4
| | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=501163
* databases/cego: upgrade 2.44.9 -> 2.44.10Kurt Jaeger2019-05-042-4/+4
| | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=500814
* databases/cego: upgrade 2.44.8 -> 2.44.9Kurt Jaeger2019-05-022-4/+4
| | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=500656
* databases/cego: upgrade 2.44.7 -> 2.44.8Kurt Jaeger2019-04-282-4/+4
| | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=500295
* databases/cego: update 2.44.6 -> 2.44.7Kurt Jaeger2019-04-262-4/+4
| | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=500086
* databases/cego: update 2.44.5 -> 2.44.6Kurt Jaeger2019-04-232-4/+4
| | | | | | | | | - Added some code cleanup and additional checks ( check082 and check083 ) Submitted by: Bjoern Lemke <lemke@lemke-it.com> Notes: svn path=/head/; revision=499747
* databases/cego: update 2.44.4 -> 2.44.5Kurt Jaeger2019-04-222-4/+4
| | | | | | | | | | | - 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> Notes: svn path=/head/; revision=499646
* databases/cego: update 2.44.3 -> 2.44.4Kurt Jaeger2019-04-222-4/+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> Notes: svn path=/head/; revision=499629
* databases/cego: update 2.44.1 -> 2.44.3Kurt Jaeger2019-04-222-4/+4
| | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=499609
* devel/lfcbase: update 1.11.9 -> 1.13.0Kurt Jaeger2019-04-213-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=499537
* Update devel/readline to 8.0Sunpoet Po-Chuan Hsieh2019-04-091-0/+1
| | | | | | | | | | | - Bump PORTREVISION of dependent ports for shlib change Changes: https://tiswww.case.edu/php/chet/readline/CHANGES PR: 236156 Exp-run by: antoine Notes: svn path=/head/; revision=498476
* devel/lfcbase: update 1.11.8 -> 1.11.9Kurt Jaeger2018-04-242-4/+4
| | | | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=468176
* databases/cego: update 2.39.14 -> 2.39.15Kurt Jaeger2018-04-112-4/+4
| | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=467043
* databases/cego: update 2.39.13 -> 2.39.14Kurt Jaeger2018-04-092-4/+4
| | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=466871
* databases/cego: update 2.39.12 -> 2.39.13Kurt Jaeger2018-04-072-4/+4
| | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=466757
* databases/cego: update 2.39.11 -> 2.39.12Kurt Jaeger2018-04-052-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=466571
* databases/cego: update 2.39.9 -> 2.39.11Kurt Jaeger2018-04-012-4/+4
| | | | | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=466159
* databases/cego: update 2.39.8 -> 2.39.9Kurt Jaeger2018-03-292-4/+4
| | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=465886
* devel/lfcbase: 1.11.6 -> 1.11.7Kurt Jaeger2018-03-182-4/+4
| | | | | | | | | | | | | | | | | | 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> Notes: svn path=/head/; revision=464892
* databases/cego: update 2.39.5 -> 2.39.7Kurt Jaeger2018-03-102-4/+4
| | | | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=464070
* databases/cego: update 2.39.4 -> 2.39.5Kurt Jaeger2018-03-062-4/+4
| | | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=463738
* databases/cego: update 2.39.3 -> 2.39.4Kurt Jaeger2018-03-052-4/+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> Notes: svn path=/head/; revision=463667
* databases/cego: update 2.39.2 -> 2.39.3Kurt Jaeger2018-03-032-4/+4
| | | | | | | | | | | | | | - 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> Notes: svn path=/head/; revision=463472