diff options
author | Tim McCune <javajedi@users.sf.net> | 2005-08-20 05:46:15 +0000 |
---|---|---|
committer | Tim McCune <javajedi@users.sf.net> | 2005-08-20 05:46:15 +0000 |
commit | 20d7d78325c0259cb3445c7b41848ab8e7db7b4c (patch) | |
tree | 7045fabefbb48c7c091a41c6cbecf17d456ac522 /src | |
parent | 37a4da64ca2d69df87103627d8e6bf86b522367d (diff) | |
download | jackcess-20d7d78325c0259cb3445c7b41848ab8e7db7b4c.tar.gz jackcess-20d7d78325c0259cb3445c7b41848ab8e7db7b4c.zip |
Fixed bug 1261536.
Skip overflow rows (need to figure out how to read them, but at least it no longer throws an exception.)
Fixed bad index offset for table definition. Index count is repeated, but the 2nd one is the correct one to read, not the first.
Added changes report to site.
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@22 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src')
-rw-r--r-- | src/java/com/healthmarketscience/jackcess/JetFormat.java | 2 | ||||
-rw-r--r-- | src/java/com/healthmarketscience/jackcess/Table.java | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/src/java/com/healthmarketscience/jackcess/JetFormat.java b/src/java/com/healthmarketscience/jackcess/JetFormat.java index 561e417..d6925b6 100644 --- a/src/java/com/healthmarketscience/jackcess/JetFormat.java +++ b/src/java/com/healthmarketscience/jackcess/JetFormat.java @@ -251,7 +251,7 @@ public abstract class JetFormat { protected int defineOffsetNumRows() { return 16; } protected int defineOffsetTableType() { return 40; } protected int defineOffsetNumCols() { return 45; } - protected int defineOffsetNumIndexes() { return 47; } + protected int defineOffsetNumIndexes() { return 51; } protected int defineOffsetOwnedPages() { return 55; } protected int defineOffsetFreeSpacePages() { return 59; } protected int defineOffsetIndexDefBlock() { return 63; } diff --git a/src/java/com/healthmarketscience/jackcess/Table.java b/src/java/com/healthmarketscience/jackcess/Table.java index f9f7f1f..9ac791b 100644 --- a/src/java/com/healthmarketscience/jackcess/Table.java +++ b/src/java/com/healthmarketscience/jackcess/Table.java @@ -243,8 +243,14 @@ public class Table { if (_rowStart < 0) { // Deleted row. Skip. return positionAtNextRow(); + } else if ((_rowStart & 0x4000) > 0) { + // Overflow page. + // FIXME - Currently skipping this. Need to figure out how to read it. + _buffer.position(_rowStart - 0x4000); + int overflow = _buffer.getInt(); + _lastRowStart -= 4; + return positionAtNextRow(); } else { - // XXX - Handle overflow pages. _buffer.position(_rowStart); _buffer.limit(_lastRowStart); _lastRowStart = _rowStart; |