org.h2.pagestore.db.PageIndex Maven / Gradle / Ivy
/*
* Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
* and the EPL 1.0 (https://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.pagestore.db;
import org.h2.index.BaseIndex;
import org.h2.index.IndexType;
import org.h2.table.IndexColumn;
import org.h2.table.Table;
/**
* A page store index.
*/
public abstract class PageIndex extends BaseIndex {
/**
* The root page of this index.
*/
protected int rootPageId;
private boolean sortedInsertMode;
/**
* Initialize the page store index.
*
* @param newTable the table
* @param id the object id
* @param name the index name
* @param newIndexColumns the columns that are indexed or null if this is
* not yet known
* @param newIndexType the index type
*/
protected PageIndex(Table newTable, int id, String name, IndexColumn[] newIndexColumns, IndexType newIndexType) {
super(newTable, id, name, newIndexColumns, newIndexType);
}
/**
* Get the root page of this index.
*
* @return the root page id
*/
public int getRootPageId() {
return rootPageId;
}
/**
* Write back the row count if it has changed.
*/
public abstract void writeRowCount();
@Override
public void setSortedInsertMode(boolean sortedInsertMode) {
this.sortedInsertMode = sortedInsertMode;
}
boolean isSortedInsertMode() {
return sortedInsertMode;
}
}