diff options
Diffstat (limited to 'src/java/com/healthmarketscience/jackcess/Index.java')
-rw-r--r-- | src/java/com/healthmarketscience/jackcess/Index.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/java/com/healthmarketscience/jackcess/Index.java b/src/java/com/healthmarketscience/jackcess/Index.java index 5300fe6..2da1fc2 100644 --- a/src/java/com/healthmarketscience/jackcess/Index.java +++ b/src/java/com/healthmarketscience/jackcess/Index.java @@ -154,6 +154,8 @@ public abstract class Index implements Comparable<Index> { private byte _indexType; /** Index name */ private String _name; + /** Usage map of pages that this index owns */ + private UsageMap _ownedPages; /** <code>true</code> if the index entries have been initialized, <code>false</code> otherwise */ private boolean _initialized; @@ -277,6 +279,10 @@ public abstract class Index implements Comparable<Index> { return _maxPageEntrySize; } + void addOwnedPage(int pageNumber) throws IOException { + _ownedPages.addPageNumber(pageNumber); + } + /** * Returns the number of index entries in the index. Only called by unit * tests. @@ -353,7 +359,12 @@ public abstract class Index implements Comparable<Index> { _columns.add(newColumnDescriptor(idxCol, colFlags)); } } - tableBuffer.getInt(); //Forward past Unknown + + int umapRowNum = tableBuffer.get(); + int umapPageNum = ByteUtil.get3ByteInt(tableBuffer); + _ownedPages = UsageMap.read(getTable().getDatabase(), umapPageNum, + umapRowNum, false); + _rootPageNumber = tableBuffer.getInt(); tableBuffer.getInt(); //Forward past Unknown _indexFlags = tableBuffer.get(); |