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:
@@ -10,6 +10,14 @@
|
||||
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
|
||||
*/
|
||||
|
||||
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)
|
||||
|
||||
2014-10-23 14:11 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
|
||||
* src/rdd/dbfcdx/dbfcdx1.c
|
||||
* pacified warning
|
||||
|
||||
@@ -133,7 +133,7 @@ HB_EXTERN_BEGIN
|
||||
|
||||
|
||||
#define CDX_TYPE_UNIQUE 0x01 /* unique index */
|
||||
#define CDX_TYPE_TEMPORARY 0x02 /* temporary index */
|
||||
#define CDX_TYPE_PARTIAL 0x02 /* temporary index */
|
||||
#define CDX_TYPE_CUSTOM 0x04 /* custom index */
|
||||
#define CDX_TYPE_FORFILTER 0x08 /* for expression present */
|
||||
#define CDX_TYPE_BITVECTOR 0x10 /* SoftC? */
|
||||
@@ -147,12 +147,12 @@ HB_EXTERN_BEGIN
|
||||
|
||||
/*
|
||||
SIx3 order temperature flags:
|
||||
switch ( indexOpt & ( CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM ) )
|
||||
case CDX_TYPE_TEMPORARY:
|
||||
switch ( indexOpt & ( CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM ) )
|
||||
case CDX_TYPE_PARTIAL:
|
||||
PARTIAL_RYO
|
||||
case CDX_TYPE_CUSTOM:
|
||||
PARTIAL_RYO | CHGONLY_RYO
|
||||
case CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM:
|
||||
case CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM:
|
||||
PARTIAL_RYO | NOUPDATE_RYO
|
||||
if index key begin with:
|
||||
'sxChar(' or 'sxNum(' or 'sxDate(' or 'sxLog('
|
||||
@@ -160,23 +160,23 @@ HB_EXTERN_BEGIN
|
||||
| TEMPLATE_RYO
|
||||
|
||||
sx_Chill() if ( ! NOUPDATE_RYO ) then set ( CHGONLY_RYO | PARTIAL_RYO )
|
||||
if ( indexOpt & ( CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM ) !=
|
||||
CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM )
|
||||
if ( indexOpt & ( CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM ) !=
|
||||
CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM )
|
||||
{
|
||||
indexOpt &= ~CDX_TYPE_CUSTOM;
|
||||
indexOpt |= CDX_TYPE_TEMPORARY
|
||||
indexOpt |= CDX_TYPE_PARTIAL
|
||||
}
|
||||
|
||||
sx_Warm() if ( ! NOUPDATE_RYO ) then clear CHGONLY_RYO
|
||||
if ( indexOpt & ( CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM ) !=
|
||||
CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM )
|
||||
if ( indexOpt & ( CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM ) !=
|
||||
CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM )
|
||||
{
|
||||
indexOpt |= CDX_TYPE_CUSTOM;
|
||||
indexOpt &= ~CDX_TYPE_TEMPORARY
|
||||
indexOpt &= ~CDX_TYPE_PARTIAL
|
||||
}
|
||||
|
||||
sx_Freeze() set NOUPDATE_RYO
|
||||
indexOpt |= CDX_TYPE_TEMPORARY | CDX_TYPE_CUSTOM;
|
||||
indexOpt |= CDX_TYPE_PARTIAL | CDX_TYPE_CUSTOM;
|
||||
*/
|
||||
/*
|
||||
indexSig:
|
||||
@@ -323,7 +323,6 @@ typedef struct _CDXTAG
|
||||
HB_BYTE OptFlags; /* index options flag */
|
||||
HB_BOOL AscendKey; /* ascending/descending order flag */
|
||||
HB_BOOL UniqueKey; /* unique order flag */
|
||||
HB_BOOL Temporary; /* temporary order flag */
|
||||
HB_BOOL Custom; /* custom order flag */
|
||||
HB_BOOL Template; /* user keyadata in ordKeyAdd()/ordKeyDel() accepted */
|
||||
HB_BOOL MultiKey; /* repeated key values in custom indexes accepted */
|
||||
|
||||
@@ -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