mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-04-05 20:31:00 +08:00
Minor documentation corrections
This commit is contained in:
parent
1f30522bd0
commit
9a4b90878a
@ -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
16
HACKING
@ -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)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user