2014-10-23 17:58 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* renamed CDX_TYPE_TEMPORARY to CDX_TYPE_PARTIAL
* eliminated Temporary member from CDXTAG structure
* cleaned tag signature flag setting to strictly follow
CL5.2 (SIx3) and CL5.3 (COMIX)
This commit is contained in:
@@ -3350,23 +3350,23 @@ static void hb_cdxTagHeaderStore( LPCDXTAG pTag )
|
||||
|
||||
pTag->TagChanged = HB_FALSE;
|
||||
pTag->OptFlags &= ~( CDX_TYPE_UNIQUE | CDX_TYPE_FORFILTER |
|
||||
CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM );
|
||||
CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM );
|
||||
if( pTag->UniqueKey )
|
||||
pTag->OptFlags |= CDX_TYPE_UNIQUE;
|
||||
if( pTag->pForItem != NULL )
|
||||
pTag->OptFlags |= CDX_TYPE_FORFILTER;
|
||||
#if defined( HB_SIXCDX )
|
||||
if( pTag->Custom )
|
||||
pTag->OptFlags |= CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM;
|
||||
pTag->OptFlags |= CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM;
|
||||
else if( pTag->ChgOnly )
|
||||
pTag->OptFlags |= CDX_TYPE_CUSTOM;
|
||||
else if( pTag->Partial )
|
||||
pTag->OptFlags |= CDX_TYPE_TEMPORARY;
|
||||
pTag->OptFlags |= CDX_TYPE_PARTIAL;
|
||||
#else
|
||||
if( pTag->Temporary )
|
||||
pTag->OptFlags |= CDX_TYPE_TEMPORARY;
|
||||
if( pTag->Custom )
|
||||
pTag->OptFlags |= CDX_TYPE_CUSTOM;
|
||||
if( pTag->Partial )
|
||||
pTag->OptFlags |= CDX_TYPE_PARTIAL;
|
||||
#endif
|
||||
|
||||
memset( &tagHeader, 0, sizeof( tagHeader ) );
|
||||
@@ -3522,24 +3522,20 @@ static void hb_cdxTagLoad( LPCDXTAG pTag )
|
||||
pTag->OptFlags = tagHeader.indexOpt;
|
||||
pTag->UniqueKey = ( pTag->OptFlags & CDX_TYPE_UNIQUE ) != 0;
|
||||
#if defined( HB_SIXCDX )
|
||||
pTag->Temporary = HB_FALSE;
|
||||
pTag->Custom = ( pTag->OptFlags & CDX_TYPE_CUSTOM ) != 0 &&
|
||||
( pTag->OptFlags & CDX_TYPE_TEMPORARY ) != 0;
|
||||
( pTag->OptFlags & CDX_TYPE_PARTIAL ) != 0;
|
||||
pTag->ChgOnly = ( pTag->OptFlags & CDX_TYPE_CUSTOM ) != 0 &&
|
||||
( pTag->OptFlags & CDX_TYPE_TEMPORARY ) == 0;
|
||||
( pTag->OptFlags & CDX_TYPE_PARTIAL ) == 0;
|
||||
pTag->Partial = ( pTag->OptFlags & CDX_TYPE_CUSTOM ) != 0 ||
|
||||
( pTag->OptFlags & CDX_TYPE_TEMPORARY ) != 0;
|
||||
( pTag->OptFlags & CDX_TYPE_PARTIAL ) != 0;
|
||||
|
||||
pTag->Template = hb_cdxIsTemplateFunc( pTag->KeyExpr );
|
||||
if( pTag->Template )
|
||||
pTag->Custom = HB_TRUE;
|
||||
pTag->Template = pTag->Custom && hb_cdxIsTemplateFunc( pTag->KeyExpr );
|
||||
/* SIx3 does not support repeated key value for the same record */
|
||||
pTag->MultiKey = HB_FALSE;
|
||||
#else
|
||||
pTag->Temporary = ( pTag->OptFlags & CDX_TYPE_TEMPORARY ) != 0;
|
||||
pTag->Partial = ( pTag->OptFlags & CDX_TYPE_PARTIAL ) != 0;
|
||||
pTag->Custom = ( pTag->OptFlags & CDX_TYPE_CUSTOM ) != 0;
|
||||
pTag->ChgOnly = HB_FALSE;
|
||||
pTag->Partial = pTag->Temporary || pTag->Custom;
|
||||
pTag->Template = pTag->MultiKey = pTag->Custom;
|
||||
#endif
|
||||
|
||||
@@ -9442,8 +9438,12 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag, HB_BOOL fReindex )
|
||||
pEvalItem = pArea->dbfarea.area.lpdbOrdCondInfo->itmCobEval;
|
||||
pWhileItem = pArea->dbfarea.area.lpdbOrdCondInfo->itmCobWhile;
|
||||
lStep = pArea->dbfarea.area.lpdbOrdCondInfo->lStep;
|
||||
if( pArea->dbfarea.area.lpdbOrdCondInfo->fRest )
|
||||
pTag->Temporary = HB_TRUE;
|
||||
if( pArea->dbfarea.area.lpdbOrdCondInfo->lNextCount ||
|
||||
pArea->dbfarea.area.lpdbOrdCondInfo->itmRecID ||
|
||||
pArea->dbfarea.area.lpdbOrdCondInfo->fRest ||
|
||||
pArea->dbfarea.area.lpdbOrdCondInfo->fUseCurrent ||
|
||||
pArea->dbfarea.area.lpdbOrdCondInfo->fUseFilter )
|
||||
pTag->Partial = HB_TRUE;
|
||||
}
|
||||
|
||||
if( pTag->Custom || ( pTag->OptFlags & CDX_TYPE_STRUCTURE ) )
|
||||
|
||||
Reference in New Issue
Block a user