Package org.h2.command.query
Class SelectListColumnResolver
- java.lang.Object
-
- org.h2.command.query.SelectListColumnResolver
-
- All Implemented Interfaces:
ColumnResolver
public class SelectListColumnResolver extends java.lang.Object implements ColumnResolver
This class represents a column resolver for the column list of a SELECT statement. It is used to resolve select column aliases in the HAVING clause. Example:SELECT X/3 AS A, COUNT(*) FROM SYSTEM_RANGE(1, 10) GROUP BY A HAVING A > 2;
-
-
Field Summary
Fields Modifier and Type Field Description private Column[]
columns
private Expression[]
expressions
private Select
select
-
Constructor Summary
Constructors Constructor Description SelectListColumnResolver(Select select)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Column
findColumn(java.lang.String name)
Get the column with the specified name.Column[]
getColumns()
Get the column list.Select
getSelect()
Get the select statement.Value
getValue(Column column)
Get the value for the given column.Expression
optimize(ExpressionColumn expressionColumn, Column column)
Get the expression that represents this column.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.h2.table.ColumnResolver
getColumnName, getRowIdColumn, getSchemaName, getSystemColumns, getTableAlias, getTableFilter, hasDerivedColumnList
-
-
-
-
Field Detail
-
select
private final Select select
-
expressions
private final Expression[] expressions
-
columns
private final Column[] columns
-
-
Constructor Detail
-
SelectListColumnResolver
SelectListColumnResolver(Select select)
-
-
Method Detail
-
getColumns
public Column[] getColumns()
Description copied from interface:ColumnResolver
Get the column list.- Specified by:
getColumns
in interfaceColumnResolver
- Returns:
- the column list
-
findColumn
public Column findColumn(java.lang.String name)
Description copied from interface:ColumnResolver
Get the column with the specified name.- Specified by:
findColumn
in interfaceColumnResolver
- Parameters:
name
- the column name, must be a derived name if this column resolver has a derived column list- Returns:
- the column with the specified name, or
null
-
getSelect
public Select getSelect()
Description copied from interface:ColumnResolver
Get the select statement.- Specified by:
getSelect
in interfaceColumnResolver
- Returns:
- the select statement
-
getValue
public Value getValue(Column column)
Description copied from interface:ColumnResolver
Get the value for the given column.- Specified by:
getValue
in interfaceColumnResolver
- Parameters:
column
- the column- Returns:
- the value
-
optimize
public Expression optimize(ExpressionColumn expressionColumn, Column column)
Description copied from interface:ColumnResolver
Get the expression that represents this column.- Specified by:
optimize
in interfaceColumnResolver
- Parameters:
expressionColumn
- the expression columncolumn
- the column- Returns:
- the optimized expression
-
-