From 4875a3dd9b183dcd2256e2abfc4ccf7484c233b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Wed, 7 Dec 2022 13:17:14 +0100 Subject: New upstream version 4.0.2 --- docs/html/xbc8.htm | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 docs/html/xbc8.htm (limited to 'docs/html/xbc8.htm') diff --git a/docs/html/xbc8.htm b/docs/html/xbc8.htm new file mode 100755 index 0000000..cb47657 --- /dev/null +++ b/docs/html/xbc8.htm @@ -0,0 +1,79 @@ + + +Xbase DBMS Chapter 8 + +

MDX Indices

+

Chapter Updated 11/28/22


+ +The objective of this chapter is to provide information regarding the +basic concepts of how .MDX index files work in the Xbase environment.

+ +The information in this chapter has been gathered by searching the internet +and by examining the structure of known good
+ +

MDX Index File Characteristics

+ +
  • MDX files are the same name as the corresponding DBF file with an MDX extension. +
  • MDX files are automatically opened by the library when the DBF file is opened. +
  • MDX index files (aka prod indices) contain from one to 47 tags, where each tag has it's own key characteristics. +
  • MDX indices maintain keys in either ascending or descending sort order. +
  • MDX indices support filtered keys. For example, a filter of .NOT. DELETED() will keep deleted records out +of the index tag. +
  • MDX indices are automatically updated by the Xbase library after the +indices are opened. + +
  • MDX indices support unique or non unique keys.

    + +Unique keys must be unique if the UniqueKeyOption is not set to XB_EMULATE_DBASE. +If the UniqueKeyOption is set to XB_EMULATE_DBASE, then the database update routines will +add a record to the table, but not add a corresponding duplicate key to the index tag. +The UniqueKeyOption is off (don't allow duplicates) by default. +

    + +Non-unique Keys are not required to be unique, duplicate +keys are allowed if the index is created with the XB_NOT_UNIQUE +setting. Duplicate keys are stored in record number order.

    + + +
  • Character keys are left justified and padded on the right with spaces. +
  • Numeric keys are stored as twelve byte BCD values. +
  • Date keys are stored as eight byte double julian values. + +

    MDX File Internals

    + +The following information is not needed to use the library, it is just included +for general information.

    + +MDX files are comprised of 512 pages where multiple pages make a block. The default +setting is 1024 blocks, each block containing two pages.

    + +The first four pages contain: +
  • Bytes 0 - 543 contain general file information. +
  • Bytes 544 - 2047 is a 47 item table containing specific tag information. +

    + +Pages five and beyound: +
  • Bytes 2048 and beyond contain tag header blocks, interior nodes and leaf nodes. + +

    + +

    Interior and Leaf Nodes

    + +Interior Nodes and Leaf Nodes share the same structure in an NDX file with +the exception that interior nodes have a non zero number immediately +after the rightmost key on the node. + +Interior nodes point to other interior nodes or leaf nodes and leaf nodes point +to records in a DBF file. Interior nodes are optional nodes in an MDX file, +however if there are more than a few keys in the index there will +certainly be one or more interior nodes in the file. There will +always be at least one leaf node per tag in the file. Leaf nodes +contain DBF record numbers which point to the location of the record +in the DBF file.

    + +

    + +
    +



    + + -- cgit v1.2.3