Package org.h2.table
Class RangeTable
- java.lang.Object
-
- org.h2.engine.DbObject
-
- org.h2.schema.SchemaObject
-
- org.h2.table.Table
-
- org.h2.table.VirtualTable
-
- org.h2.table.RangeTable
-
- All Implemented Interfaces:
HasSQL
public class RangeTable extends VirtualTable
The table SYSTEM_RANGE is a virtual table that generates incrementing numbers with a given start end point.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ALIAS
The PostgreSQL alias for the range table.private RangeIndex
index
private Expression
max
private Expression
min
static java.lang.String
NAME
The name of the range table.private boolean
optimized
private Expression
step
-
Fields inherited from class org.h2.table.Table
columns, compareMode, EXCLUSIVE_LOCK, isHidden, READ_LOCK, TYPE_CACHED, TYPE_MEMORY, WRITE_LOCK
-
Fields inherited from class org.h2.engine.DbObject
AGGREGATE, comment, COMMENT, CONSTANT, CONSTRAINT, database, DOMAIN, FUNCTION_ALIAS, INDEX, RIGHT, ROLE, SCHEMA, SEQUENCE, SETTING, SYNONYM, TABLE_OR_VIEW, trace, TRIGGER, USER
-
Fields inherited from interface org.h2.util.HasSQL
ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS
-
-
Constructor Summary
Constructors Constructor Description RangeTable(Schema schema, Expression min, Expression max)
Create a new range with the given start and end expressions.RangeTable(Schema schema, Expression min, Expression max, Expression step)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canGetRowCount(SessionLocal session)
Check if the row count can be retrieved quickly.java.util.ArrayList<Index>
getIndexes()
Get all indexes for this table.long
getMax(SessionLocal session)
Calculate and get the end value of this range.long
getMaxDataModificationId()
Get the last data modification id.long
getMin(SessionLocal session)
Calculate and get the start value of this range.long
getRowCount(SessionLocal session)
Get the row count for this table.long
getRowCountApproximation(SessionLocal session)
Get the approximated row count for this table.Index
getScanIndex(SessionLocal session)
Get the scan index to iterate through all rows.java.lang.StringBuilder
getSQL(java.lang.StringBuilder builder, int sqlFlags)
Appends the SQL statement of this object to the specified builder.long
getStep(SessionLocal session)
Get the increment.TableType
getTableType()
Get the table type nameboolean
isDeterministic()
Check if the table is deterministic.private void
optimize(SessionLocal s)
-
Methods inherited from class org.h2.table.VirtualTable
addIndex, addRow, canDrop, canReference, checkRename, checkSupportAlter, close, getCreateSQL, isInsertable, removeRow, truncate
-
Methods inherited from class org.h2.table.Table
addConstraint, addDependencies, addDependentView, addSequence, addSynonym, addTrigger, canTruncate, checkDeadlock, checkWritingAllowed, compareValues, convertInsertRow, convertUpdateRow, createRow, doesColumnExist, dropMultipleColumnsConstraintsAndIndexes, findColumn, findPrimaryKey, fire, fireAfterRow, fireBeforeRow, fireRow, getBestPlanItem, getCheckForeignKeyConstraints, getChildren, getColumn, getColumn, getColumn, getColumns, getCompareMode, getConstraints, getCreateSQLForCopy, getDependentViews, getDiskSpaceUsed, getIdentityColumn, getIndex, getIndexForColumn, getMainIndexColumn, getNullRow, getOnCommitDrop, getOnCommitTruncate, getPrimaryKey, getRow, getRowFactory, getRowIdColumn, getScanIndex, getSQLTableType, getTemplateRow, getTemplateSimpleRow, getTriggers, getType, hasSelectTrigger, isGlobalTemporary, isHidden, isLockedExclusively, isLockedExclusivelyBy, isPersistData, isPersistIndexes, isQueryComparable, isRowLockable, isTableExpression, isView, lock, lockRow, removeChildrenAndResources, removeColumnExpressionsDependencies, removeConstraint, removeDependentView, removeIndex, removeIndexOrTransferOwnership, removeSequence, removeSynonym, removeTrigger, rename, renameColumn, setCheckForeignKeyConstraints, setColumns, setHidden, setOnCommitDrop, setOnCommitTruncate, setTableExpression, unlock, updateRow, updateRows
-
Methods inherited from class org.h2.schema.SchemaObject
getSchema, getSQL
-
Methods inherited from class org.h2.engine.DbObject
getComment, getCreateSQLForMeta, getDatabase, getDropSQL, getId, getModificationId, getName, invalidate, isTemporary, isValid, setComment, setModified, setObjectName, setTemporary, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.h2.util.HasSQL
getTraceSQL
-
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
The name of the range table.- See Also:
- Constant Field Values
-
ALIAS
public static final java.lang.String ALIAS
The PostgreSQL alias for the range table.- See Also:
- Constant Field Values
-
min
private Expression min
-
max
private Expression max
-
step
private Expression step
-
optimized
private boolean optimized
-
index
private final RangeIndex index
-
-
Constructor Detail
-
RangeTable
public RangeTable(Schema schema, Expression min, Expression max)
Create a new range with the given start and end expressions.- Parameters:
schema
- the schema (always the main schema)min
- the start expressionmax
- the end expression
-
RangeTable
public RangeTable(Schema schema, Expression min, Expression max, Expression step)
-
-
Method Detail
-
getSQL
public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder, int sqlFlags)
Description copied from interface:HasSQL
Appends the SQL statement of this object to the specified builder.- Specified by:
getSQL
in interfaceHasSQL
- Overrides:
getSQL
in classSchemaObject
- Parameters:
builder
- string buildersqlFlags
- formatting flags- Returns:
- the specified string builder
-
canGetRowCount
public boolean canGetRowCount(SessionLocal session)
Description copied from class:Table
Check if the row count can be retrieved quickly.- Specified by:
canGetRowCount
in classTable
- Parameters:
session
- the session- Returns:
- true if it can
-
getRowCount
public long getRowCount(SessionLocal session)
Description copied from class:Table
Get the row count for this table.- Specified by:
getRowCount
in classTable
- Parameters:
session
- the session- Returns:
- the row count
-
getTableType
public TableType getTableType()
Description copied from class:Table
Get the table type name- Overrides:
getTableType
in classVirtualTable
- Returns:
- the table type name
-
getScanIndex
public Index getScanIndex(SessionLocal session)
Description copied from class:Table
Get the scan index to iterate through all rows.- Specified by:
getScanIndex
in classTable
- Parameters:
session
- the session- Returns:
- the index
-
getIndexes
public java.util.ArrayList<Index> getIndexes()
Description copied from class:Table
Get all indexes for this table.- Overrides:
getIndexes
in classVirtualTable
- Returns:
- the list of indexes
-
getMin
public long getMin(SessionLocal session)
Calculate and get the start value of this range.- Parameters:
session
- the session- Returns:
- the start value
-
getMax
public long getMax(SessionLocal session)
Calculate and get the end value of this range.- Parameters:
session
- the session- Returns:
- the end value
-
getStep
public long getStep(SessionLocal session)
Get the increment.- Parameters:
session
- the session- Returns:
- the increment (1 by default)
-
optimize
private void optimize(SessionLocal s)
-
getMaxDataModificationId
public long getMaxDataModificationId()
Description copied from class:Table
Get the last data modification id.- Specified by:
getMaxDataModificationId
in classTable
- Returns:
- the modification id
-
getRowCountApproximation
public long getRowCountApproximation(SessionLocal session)
Description copied from class:Table
Get the approximated row count for this table.- Specified by:
getRowCountApproximation
in classTable
- Parameters:
session
- the session- Returns:
- the approximated row count
-
isDeterministic
public boolean isDeterministic()
Description copied from class:Table
Check if the table is deterministic.- Specified by:
isDeterministic
in classTable
- Returns:
- true if it is
-
-