2014-10-20 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)
* config/lang2po.hb
! fixed negative UTC offsets to string conversion
* include/dbinfo.ch
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
+ added DBOI_INDEXPAGESIZE - get index page size
* include/dbinfo.ch
* include/hbrdddbf.h
* src/rdd/dbf1.c
+ added RDDI_INDEXPAGESIZE - get/set default index page size
* include/hbrddcdx.h
* src/rdd/dbfcdx/dbfcdx1.c
* modification for user defined index page size (work in progress)
This commit is contained in:
@@ -105,6 +105,7 @@
|
||||
#define RDDI_PASSWORD 42 /* Get/Set default password */
|
||||
#define RDDI_LOCKRETRY 43 /* Get/Set record and file lock timeout value */
|
||||
#define RDDI_DIRTYREAD 44 /* Get/Set index dirty read flag */
|
||||
#define RDDI_INDEXPAGESIZE 45 /* Get/Set default index page size */
|
||||
|
||||
/*
|
||||
Constants for SELF_ORDINFO ()
|
||||
@@ -203,6 +204,7 @@
|
||||
#define DBOI_USECURRENT 131 /* get/set "use current index" flag */
|
||||
#define DBOI_INDEXTYPE 132 /* current index type */
|
||||
#define DBOI_RESETPOS 133 /* rest logical and raw positions */
|
||||
#define DBOI_INDEXPAGESIZE 134 /* get index page size */
|
||||
|
||||
/* return values for DBOI_OPTLEVEL */
|
||||
#define DBOI_OPTIMIZED_NONE 0
|
||||
|
||||
@@ -62,16 +62,13 @@ HB_EXTERN_BEGIN
|
||||
#define CDX_PAGELEN (1<<CDX_PAGELEN_BITS)
|
||||
#define CDX_HEADERLEN 1024
|
||||
#define CDX_HEADEREXPLEN (CDX_HEADERLEN - 512)
|
||||
#define CDX_HEADERPAGES ((CDX_HEADERLEN+CDX_PAGELEN-1)/CDX_PAGELEN)
|
||||
#define CDX_INT_FREESPACE (CDX_PAGELEN-12) /* 500 */
|
||||
#define CDX_EXT_FREESPACE (CDX_PAGELEN-24) /* 488 */
|
||||
#define CDX_DUMMYNODE 0xFFFFFFFFL
|
||||
#define CDX_INT_HEADSIZE 12
|
||||
#define CDX_EXT_HEADSIZE 24
|
||||
#define CDX_INT_FREESPACE (CDX_PAGELEN-CDX_INT_HEADSIZE) /* 500 */
|
||||
#define CDX_EXT_FREESPACE (CDX_PAGELEN-CDX_EXT_HEADSIZE) /* 488 */
|
||||
|
||||
#define CDX_HARBOUR_SIGNATURE 0x52434842L /* Harbour index signature: RCHB */
|
||||
|
||||
|
||||
/* #define CDX_LOCKOFFSET 0x7FFFFFFEL */
|
||||
/* #define CDX_LOCKSIZE 1L */
|
||||
#define CDX_STACKSIZE 64
|
||||
#define CDX_PAGECACHESIZE 8
|
||||
#define CDX_NODE_BRANCH 0
|
||||
@@ -80,6 +77,7 @@ HB_EXTERN_BEGIN
|
||||
#define CDX_NODE_UNUSED 0xFF
|
||||
#define CDX_IGNORE_REC_NUM 0x0L
|
||||
#define CDX_MAX_REC_NUM 0xFFFFFFFFL
|
||||
#define CDX_DUMMYNODE 0xFFFFFFFFL
|
||||
#define CDX_BALANCE_LEAFPAGES 3
|
||||
#define CDX_BALANCE_INTPAGES 3
|
||||
|
||||
@@ -194,7 +192,7 @@ typedef struct _CDXTAGHEADER
|
||||
{
|
||||
HB_BYTE rootPtr [ 4 ]; /* offset of the root node */
|
||||
HB_BYTE freePtr [ 4 ]; /* offset of list of free pages or -1 */
|
||||
HB_BYTE reserved1[ 4 ]; /* Version number ??? */
|
||||
HB_BYTE counter [ 4 ]; /* update counter (in root node) */
|
||||
HB_BYTE keySize [ 2 ]; /* key length */
|
||||
HB_BYTE indexOpt; /* index options see CDX_TYPE_* */
|
||||
HB_BYTE indexSig; /* index signature */
|
||||
@@ -270,13 +268,9 @@ typedef struct _CDXPAGE
|
||||
HB_ULONG Left;
|
||||
HB_ULONG Right;
|
||||
|
||||
HB_BYTE PageType;
|
||||
int iKeys;
|
||||
int iCurKey;
|
||||
|
||||
HB_BOOL fChanged;
|
||||
HB_BYTE bUsed;
|
||||
|
||||
HB_ULONG RNMask;
|
||||
HB_BYTE ReqByte;
|
||||
HB_BYTE RNBits;
|
||||
@@ -284,7 +278,20 @@ typedef struct _CDXPAGE
|
||||
HB_BYTE TCBits;
|
||||
HB_BYTE DCMask;
|
||||
HB_BYTE TCMask;
|
||||
|
||||
HB_BYTE PageType;
|
||||
HB_BYTE bUsed;
|
||||
HB_BOOL fChanged;
|
||||
HB_BOOL fBufChanged;
|
||||
|
||||
HB_BYTE * pKeyBuf; /* pointer to uncompressed leaf page key pool */
|
||||
|
||||
struct _CDXPAGE * Owner;
|
||||
struct _CDXPAGE * Child;
|
||||
struct _CDXTAG * TagParent;
|
||||
struct _CDXPAGE * pPoolPrev;
|
||||
struct _CDXPAGE * pPoolNext;
|
||||
|
||||
union
|
||||
{
|
||||
CDXEXTNODE extNode;
|
||||
@@ -295,14 +302,6 @@ typedef struct _CDXPAGE
|
||||
HB_SHORT bufKeyPos; /* they have to be just after the node */
|
||||
HB_SHORT bufKeyLen; /* and maybe temporary overwriten when adding */
|
||||
HB_SHORT iFree; /* new key to interior node record. */
|
||||
HB_BYTE * pKeyBuf; /* pointer to uncompressed leaf page key pool */
|
||||
/* HB_SHORT iKeyInBuf; */
|
||||
|
||||
struct _CDXPAGE * Owner;
|
||||
struct _CDXPAGE * Child;
|
||||
struct _CDXTAG * TagParent;
|
||||
struct _CDXPAGE * pPoolPrev;
|
||||
struct _CDXPAGE * pPoolNext;
|
||||
} CDXPAGE;
|
||||
typedef CDXPAGE * LPCDXPAGE;
|
||||
|
||||
@@ -393,6 +392,9 @@ typedef struct _CDXINDEX
|
||||
HB_BOOL fReadonly; /* Read only file */
|
||||
HB_BOOL fDelete; /* delete on close flag */
|
||||
HB_BOOL fLargeFile; /* page numbers instead of page offsets in index file */
|
||||
HB_USHORT uiHeaderLen; /* length of tag header */
|
||||
HB_USHORT uiPageLen; /* length of index page */
|
||||
HB_UINT uiPageBits; /* length of index page in bits */
|
||||
HB_ULONG nextAvail; /* offset to next free page in the end of index file */
|
||||
HB_ULONG freePage; /* offset to next free page inside index file */
|
||||
LPCDXLIST freeLst; /* list of free pages in index file */
|
||||
|
||||
@@ -143,6 +143,7 @@ typedef struct _DBFDATA
|
||||
HB_BYTE bMemoType; /* DB_MEMO_FPT */
|
||||
HB_BYTE bMemoExtType; /* DB_MEMOVER_FLEX */
|
||||
HB_USHORT uiDirtyRead; /* HB_IDXREAD_CLEANMASK */
|
||||
HB_USHORT uiIndexPageSize; /* 0 */
|
||||
HB_ULONG ulMemoBlockSize; /* 0 */
|
||||
|
||||
HB_BOOL fSortRecNo;
|
||||
|
||||
Reference in New Issue
Block a user