org.h2.index
Class PageDataLeaf

java.lang.Object
  extended by org.h2.util.CacheObject
      extended by org.h2.store.Page
          extended by org.h2.index.PageDataLeaf
All Implemented Interfaces:
java.lang.Comparable<CacheObject>

public class PageDataLeaf
extends Page

A leaf page that contains data of one or multiple rows. Format:


Field Summary
protected  Data data
          The data page.
protected  int entryCount
          The number of entries.
protected  PageDataIndex index
          The index.
protected  long[] keys
          The row keys.
protected  int memoryEstimated
          The estimated memory used by this object.
protected  int parentPageId
          The page number of the parent.
protected  boolean written
          Whether the data page is up-to-date.
 
Fields inherited from class org.h2.store.Page
changeCount, FLAG_LAST, TYPE_BTREE_LEAF, TYPE_BTREE_NODE, TYPE_DATA_LEAF, TYPE_DATA_NODE, TYPE_DATA_OVERFLOW, TYPE_EMPTY, TYPE_FREE_LIST, TYPE_STREAM_DATA, TYPE_STREAM_TRUNK
 
Fields inherited from class org.h2.util.CacheObject
cacheChained, cacheNext, cachePrevious
 
Method Summary
 boolean canRemove()
          Check if the object can be removed from the cache.
 int getMemory()
          Get the estimated memory size.
 void moveTo(Session session, int newPos)
          Copy the data to a new location, change the parent to point to the new location, and free up the current page.
static Page read(PageDataIndex index, Data data, int pageId)
          Read a data leaf page.
protected  void remapChildren(int old)
          Update the parent id of all children.
 java.lang.String toString()
           
 void write()
          Write the page.
 
Methods inherited from class org.h2.store.Page
add, canMove, insert, insert, insert, remove, remove, remove
 
Methods inherited from class org.h2.util.CacheObject
compareTo, getPos, isChanged, setChanged, setPos
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

index

protected final PageDataIndex index
The index.


parentPageId

protected int parentPageId
The page number of the parent.


data

protected final Data data
The data page.


entryCount

protected int entryCount
The number of entries.


keys

protected long[] keys
The row keys.


written

protected boolean written
Whether the data page is up-to-date.


memoryEstimated

protected int memoryEstimated
The estimated memory used by this object.

Method Detail

read

public static Page read(PageDataIndex index,
                        Data data,
                        int pageId)
Read a data leaf page.

Parameters:
index - the index
data - the data
pageId - the page id
Returns:
the page

remapChildren

protected void remapChildren(int old)
Update the parent id of all children.

Parameters:
old - the previous position

write

public void write()
Description copied from class: Page
Write the page.

Specified by:
write in class Page

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

moveTo

public void moveTo(Session session,
                   int newPos)
Description copied from class: Page
Copy the data to a new location, change the parent to point to the new location, and free up the current page.

Specified by:
moveTo in class Page
Parameters:
session - the session
newPos - the new position

getMemory

public int getMemory()
Get the estimated memory size.

Specified by:
getMemory in class CacheObject
Returns:
number of double words (4 bytes)

canRemove

public boolean canRemove()
Description copied from class: CacheObject
Check if the object can be removed from the cache. For example pinned objects can not be removed.

Specified by:
canRemove in class CacheObject
Returns:
true if it can be removed