Minor documentation corrections

This commit is contained in:
whydoubt 2004-08-18 04:30:57 +00:00
parent 1f30522bd0
commit 9a4b90878a
2 changed files with 9 additions and 8 deletions

View File

@ -1,5 +1,6 @@
Tue Aug 17 22:46:13 CDT 2004 Jeff Smith <whydoubt@yahoo.com> Tue Aug 17 22:46:13 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
* src/libmdb/data.c: Fix and simplify usage map handling * src/libmdb/data.c: Fix and simplify usage map handling
* HACKING: Minor documentation corrections
Wed Aug 4 21:22:46 CDT 2004 Jeff Smith <whydoubt@yahoo.com> Wed Aug 4 21:22:46 CDT 2004 Jeff Smith <whydoubt@yahoo.com>
* HACKING: * HACKING:

16
HACKING
View File

@ -52,7 +52,7 @@ Covered Query - a query that can be satisfied by reading only index pages. For
Pages Pages
----- -----
At it's topmost level MDB files are organized into a series of fixed sized At its topmost level MDB files are organized into a series of fixed sized
pages. These are 2K in size for Jet3 (Access 97) and 4K for Jet4 (Access pages. These are 2K in size for Jet3 (Access 97) and 4K for Jet4 (Access
2000/2002). All data in MDB files exists within pages, of which there are 2000/2002). All data in MDB files exists within pages, of which there are
a number of types. a number of types.
@ -100,7 +100,7 @@ The header of a Jet3 data page looks like this:
| ???? | 2 bytes | offset_row | The records location on this page | | ???? | 2 bytes | offset_row | The records location on this page |
+--------------------------------------------------------------------------+ +--------------------------------------------------------------------------+
In Jet4, an additional four byte field was added. It's purpose is currently In Jet4, an additional four byte field was added. Its purpose is currently
unknown. unknown.
+--------------------------------------------------------------------------+ +--------------------------------------------------------------------------+
@ -146,8 +146,8 @@ The Jet3 row format is:
| ???? | n bytes | var_cols | Variable length columns | | ???? | n bytes | var_cols | Variable length columns |
| ???? | 1 byte | eod | length of data from begining of record | | ???? | 1 byte | eod | length of data from begining of record |
| ???? | n bytes | var_table[]| offset from start of row for each var_col | | ???? | n bytes | var_table[]| offset from start of row for each var_col |
| ???? | 1 byte | var_len | number of variable length columns |
| ???? | n bytes | jump_table | Jump table (see description below) | | ???? | n bytes | jump_table | Jump table (see description below) |
| ???? | 1 byte | var_len | number of variable length columns |
| ???? | n bytes | null_mask | Null indicator. size is 1 byte per 8 cols | | ???? | n bytes | null_mask | Null indicator. size is 1 byte per 8 cols |
| | | | 0 indicates a null value. Also used to | | | | | 0 indicates a null value. Also used to |
| | | | represent value of boolean type columns | | | | | represent value of boolean type columns |
@ -160,7 +160,7 @@ Notes:
columns are added. columns are added.
. All fixed length columns are stored first to last, followed by variable length . All fixed length columns are stored first to last, followed by variable length
columns. columns.
. The size of the null table is computed by (num_cols - 1)/8 + 1 . The size of the null table is computed by (num_cols + 7)/8.
. Fixed columns can be null (unlike some other databases). . Fixed columns can be null (unlike some other databases).
. The var_len field indicates the size of the var_table[]. . The var_len field indicates the size of the var_table[].
. The eod field points at the first byte after the var_cols field. It is used . The eod field points at the first byte after the var_cols field. It is used
@ -174,9 +174,9 @@ get around this offsets are computed using a jump table. The jump table stores
the number of the first column in this jump segment. If the size of the data is the number of the first column in this jump segment. If the size of the data is
less than 256 then no jump table will be present. less than 256 then no jump table will be present.
For example if the row contains 45 columns and the offset of the 14th column is For example if the row contains 45 columns and the offset of the 15th column is
more than 256 then the first entry in the jump table will be 0xe (14). If the more than 256 then the first entry in the jump table will be 0xe (14). If the
23rd column is the first one at offset > 512 the second entry of the jump table 24th column is the first one at offset > 512 the second entry of the jump table
would be 0x17 (23) and so on. would be 0x17 (23) and so on.
+--------------------------------------------------------------------------+ +--------------------------------------------------------------------------+
@ -269,8 +269,8 @@ In a LVAL type 2 data page, you have
2 bytes for an offset, 2 bytes for an offset,
4 bytes for the next lval_pg 4 bytes for the next lval_pg
So there is a bloc of 2048 - (10+2+4) = 2032(jet3) So there is a block of 2048 - (10+2+4) = 2032(jet3)
or 4096 - (12+2+4) = 4078(jet4) bytes max in a page. or 4096 - (12+2+4) = 4078(jet4) bytes max in a page.
TDEF Pages (Table Definition) TDEF Pages (Table Definition)
----------------------------- -----------------------------