PageData

A page that contains data rows.

Methods
int addRowTry(Row row)
Add a row if possible.
int addRowTry(Row row)
Add a row if possible. If it is possible this method returns -1, otherwise the split point. It is always possible to add one row.
Parameters:
row - the now to add
Returns:
the split point of this page, or -1 if no split is required
boolean canRemove()
boolean canRemove()
int find(long key)
Find an entry by key.
int find(long key)
Find an entry by key.
Parameters:
key - the key (may not exist)
Returns:
the matching or next index
Cursor find(Session session, long minKey, long maxKey, boolean multiVersion)
Get a cursor.
Cursor find(Session session, long minKey, long maxKey, boolean multiVersion)
Get a cursor.
Parameters:
session - the session
minKey - the smallest key
maxKey - the largest key
multiVersion - if the delta should be used
Returns:
the cursor
void freeRecursive()
Free this page and all child pages.
void freeRecursive()
Free this page and all child pages.
long getDiskSpaceUsed()
Get the used disk space for this index.
long getDiskSpaceUsed()
Get the used disk space for this index.
Returns:
the estimated number of bytes
PageDataLeaf getFirstLeaf()
Get the first child leaf page of a page.
PageDataLeaf getFirstLeaf()
Get the first child leaf page of a page.
Returns:
the page
long getKey(int at)
Get the key at this position.
long getKey(int at)
Get the key at this position.
Parameters:
at - the index
Returns:
the key
long getLastKey()
Get the last key of a page.
long getLastKey()
Get the last key of a page.
Returns:
the last key
int getMemory()
Get the estimated heap memory size.
int getMemory()
Get the estimated heap memory size.
Returns:
number of double words (4 bytes each)
int getParentPageId()
int getParentPageId()
int getRowCount()
Get the real row count.
int getRowCount()
Get the real row count. If required, this will read all child pages.
Returns:
the row count
Row getRowWithKey(long key)
Get the row for the given key.
Row getRowWithKey(long key)
Get the row for the given key.
Parameters:
key - the key
Returns:
the row
void remapChildren(int old)
Update the parent id of all children.
void remapChildren(int old)
Update the parent id of all children.
Parameters:
old - the previous position
boolean remove(long key)
Remove a row.
boolean remove(long key)
Remove a row.
Parameters:
key - the key of the row to remove
Returns:
true if this page is now empty
void setPageId(int id)
Change the page id.
void setPageId(int id)
Change the page id.
Parameters:
id - the new page id
void setParentPageId(int id)
Change the parent page id.
void setParentPageId(int id)
Change the parent page id.
Parameters:
id - the new parent page id
void setRowCountStored(int rowCount)
Set the stored row count.
void setRowCountStored(int rowCount)
Set the stored row count. This will write the page.
Parameters:
rowCount - the stored row count
PageData split(int splitPoint)
Split the index page at the given point.
PageData split(int splitPoint)
Split the index page at the given point.
Parameters:
splitPoint - the index where to split
Returns:
the new page that contains about half the entries

Fields
static int ROOT = 0
static int START_PARENT = 3
static int UNKNOWN_ROWCOUNT = -1
static Data data
static int entryCount
static PageDataIndex index
static long[] keys
static int parentPageId
static boolean written

UNKNOWN_ROWCOUNT = -1

Indicator that the row count is not known.

ROOT = 0

This is a root page.

START_PARENT = 3

The position of the parent page id.

data

The data page.

entryCount

The number of entries.

index

The index.

keys

The row keys.

parentPageId

The page number of the parent.

written

Whether the data page is up-to-date.