Jet version detection from trevor@harrison.org

Update to HACKERS file with (sparce) information about indexes.
This commit is contained in:
brianb 2000-03-22 02:07:34 +00:00
parent ad4d17cfe9
commit 1e389d8d4c
3 changed files with 17 additions and 4 deletions

View File

@ -5,3 +5,5 @@ Karl Nyberg <knyberg@grebyn.com>
Georg Bauer <gb@hugo.westfalen.de>
Carl Seutter <cgseutter@worldnet.att.net>
Trevor Harrison <trevor@harrison.org>

13
HACKERS
View File

@ -114,18 +114,18 @@ The header to table definition pages start look something like this:
| ???? | 2 bytes | generally same as # of cols but not always |
| ???? | 2 bytes | ??? |
| ???? | 2 bytes | number of columns in table |
| ???? | 4 bytes | number of data pages in table |
| ???? | 4 bytes | number of data pages in table (repeat) |
| ???? | 4 bytes | number of indexes for this table |
| ???? | 4 bytes | number of indexes for this table (repeat) |
| 0x00 | 1 byte | ??? |
| ???? | 2 bytes | page number of first datapage for table |
| ???? | 2 bytes | ??? |
| ???? | 2 bytes | page number of first datapage for table |
| 0x00 | 1 byte | ??? |
+-------------------------------------------------------------------------+
| Iterate for the 2 x number of datapages |
| Iterate for the 2 x number of indexes |
+-------------------------------------------------------------------------+
| ???? | 4 bytes | number of rows in table |
| ???? | 4 bytes | ??? |
| ???? | 4 bytes | number of rows in the index |
+-------------------------------------------------------------------------+
The next few bytes are somewhat of a mystery right now, but around 0x2B from
@ -154,6 +154,11 @@ Column Type may be one of the following (not complete).
Following the 18 byte column records begins the column names, listed in order
with a 1 byte size prefix preceding each name.
After a number of bytes (generally 0x3a) the names of the indexes are listed.
It is currently unknown how indexes are mapped to columns and how they point at
index pages or the format of the index pages.
Data Rows
---------

View File

@ -34,6 +34,10 @@
#define MDB_CATALOG_PG 18
#define MDB_MEMO_OVERHEAD 12
enum {
MDB_VER_JET3 = 0,
MDB_VER_JET4 = 1
};
enum {
MDB_FORM = 0,
MDB_TABLE,
@ -73,6 +77,8 @@ typedef struct {
int num_catalog;
GArray *catalog;
int pg_size;
guint32 jet_version;
guint32 db_key;
} MdbHandle;
typedef struct {