| Modifier and Type | Field and Description |
|---|---|
| private static final int | CACHED
Count of cached INDEPENDENT and EVALUATABLE visitors with different query level. |
| private final AllColumnsForPlan | |
| public static final int | DECREMENT_QUERY_LEVEL
Decrement query level of all expression columns. |
| public static final int | DETERMINISTIC
Does the expression return the same results for the same parameters? |
| public static final ExpressionVisitor | DETERMINISTIC_VISITOR
The visitor singleton for the type DETERMINISTIC. |
| public static final int | EVALUATABLE
Can the expression be evaluated, that means are all columns set to 'evaluatable'? |
| public static final ExpressionVisitor | EVALUATABLE_VISITOR
The visitor singleton for the type EVALUATABLE. |
| private static final ExpressionVisitor[] | EVALUATABLE_VISITORS
EVALUATABLE listeners with query level 0, 1, ... |
| public static final int | GET_COLUMNS1
Get all referenced columns for the optimiser. |
| public static final int | GET_COLUMNS2
Get all referenced columns. |
| public static final int | GET_DEPENDENCIES
Request to get the set of dependencies (addDependency). |
| public static final int | INDEPENDENT
Is the value independent on unset parameters or on columns of a higher level query, or sequence values (that means can it be evaluated right now)? |
| public static final ExpressionVisitor | INDEPENDENT_VISITOR
The visitor singleton for the type INDEPENDENT. |
| private static final ExpressionVisitor[] | INDEPENDENT_VISITORS
INDEPENDENT listeners with query level 0, 1, ... |
| private final long[] | |
| public static final int | NOT_FROM_RESOLVER
Does an expression have no relation to the given table filter (getResolver)? |
| public static final int | OPTIMIZABLE_AGGREGATE
Are all aggregates MIN(column), MAX(column), COUNT(*), MEDIAN(column), ENVELOPE(count) for the given table (getTable)? |
| public static final int | QUERY_COMPARABLE
Can the expression be added to a condition of an outer query. |
| public static final ExpressionVisitor | QUERY_COMPARABLE_VISITOR
The visitor singleton for the type QUERY_COMPARABLE. |
| private final int | |
| public static final int | READONLY
Does the expression have no side effects (change the data)? |
| public static final ExpressionVisitor | READONLY_VISITOR
The visitor singleton for the type EVALUATABLE. |
| private final ColumnResolver | |
| private final HashSet | |
| public static final int | SET_MAX_DATA_MODIFICATION_ID
Request to set the latest modification id (addDataModificationId). |
| private final Table | |
| private final int |
| Access | Constructor and Description |
|---|---|
| private | ExpressionVisitor(int type, int queryLevel, HashSet<?> set, AllColumnsForPlan columns1, Table table, ColumnResolver resolver, long[] maxDataModificationId)
|
| private | |
| private |
| Modifier and Type | Method and Description |
|---|---|
| pack-priv void | |
| pack-priv void | |
| public void | addDataModificationId(long
the data modification id value)Update the field maxDataModificationId if this value is higher than the current value. |
| public void | addDependency(DbObject
the additional dependency. obj)Add a new dependency to the set of dependencies. |
| public static void | allColumnsForTableFilters(TableFilter[]
the filters filters, AllColumnsForPlan the on-demand all-columns set allColumnsSet)Get the set of columns of all tables. |
| public HashSet | |
| public static ExpressionVisitor | Returns: the new visitorthe columns map columns)Create a new visitor to get all referenced columns. |
| public static ExpressionVisitor | Returns: the new visitorthe columns map columns, Table table to gather columns from, or table)null to gather all columnsCreate a new visitor to get all referenced columns. |
| public static ExpressionVisitor | Returns: the new visitorcolumn resolvers columnResolvers, int 0 to check whether operation is allowed, 1 to actually perform
the decrement queryDecrement)Create a new visitor to decrement query level in columns with the specified resolvers. |
| public HashSet | |
| public static ExpressionVisitor | Returns: the new visitorthe dependencies set dependencies)Create a new visitor object to collect dependencies. |
| public long | |
| public static ExpressionVisitor | |
| public static ExpressionVisitor | Returns: the new visitorthe resolver resolver)Create a new visitor to check if no expression depends on the given resolver. |
| public static ExpressionVisitor | Returns: the new visitorthe table table)Create a new visitor to check if all aggregates are for the given table. |
| pack-priv int | |
| public ColumnResolver | |
| public Table | |
| public int | |
| public ExpressionVisitor | Returns: this visitor or its clone with the changed query level1 to increment, -1 to decrement offset)Increment or decrement the query level. |
| CACHED | back to summary |
|---|---|
| private static final int CACHED Count of cached INDEPENDENT and EVALUATABLE visitors with different query level. | |
| columns1 | back to summary |
|---|---|
| private final AllColumnsForPlan columns1 | |
| DECREMENT_QUERY_LEVEL | back to summary |
|---|---|
| public static final int DECREMENT_QUERY_LEVEL Decrement query level of all expression columns. | |
| DETERMINISTIC | back to summary |
|---|---|
| public static final int DETERMINISTIC Does the expression return the same results for the same parameters? | |
| DETERMINISTIC_VISITOR | back to summary |
|---|---|
| public static final ExpressionVisitor DETERMINISTIC_VISITOR The visitor singleton for the type DETERMINISTIC. | |
| EVALUATABLE | back to summary |
|---|---|
| public static final int EVALUATABLE Can the expression be evaluated, that means are all columns set to 'evaluatable'? | |
| EVALUATABLE_VISITOR | back to summary |
|---|---|
| public static final ExpressionVisitor EVALUATABLE_VISITOR The visitor singleton for the type EVALUATABLE. | |
| EVALUATABLE_VISITORS | back to summary |
|---|---|
| private static final ExpressionVisitor[] EVALUATABLE_VISITORS EVALUATABLE listeners with query level 0, 1, ... | |
| GET_COLUMNS1 | back to summary |
|---|---|
| public static final int GET_COLUMNS1 Get all referenced columns for the optimiser. | |
| GET_COLUMNS2 | back to summary |
|---|---|
| public static final int GET_COLUMNS2 Get all referenced columns. | |
| GET_DEPENDENCIES | back to summary |
|---|---|
| public static final int GET_DEPENDENCIES Request to get the set of dependencies (addDependency). | |
| INDEPENDENT | back to summary |
|---|---|
| public static final int INDEPENDENT Is the value independent on unset parameters or on columns of a higher level query, or sequence values (that means can it be evaluated right now)? | |
| INDEPENDENT_VISITOR | back to summary |
|---|---|
| public static final ExpressionVisitor INDEPENDENT_VISITOR The visitor singleton for the type INDEPENDENT. | |
| INDEPENDENT_VISITORS | back to summary |
|---|---|
| private static final ExpressionVisitor[] INDEPENDENT_VISITORS INDEPENDENT listeners with query level 0, 1, ... | |
| maxDataModificationId | back to summary |
|---|---|
| private final long[] maxDataModificationId | |
| NOT_FROM_RESOLVER | back to summary |
|---|---|
| public static final int NOT_FROM_RESOLVER Does an expression have no relation to the given table filter (getResolver)? | |
| OPTIMIZABLE_AGGREGATE | back to summary |
|---|---|
| public static final int OPTIMIZABLE_AGGREGATE Are all aggregates MIN(column), MAX(column), COUNT(*), MEDIAN(column), ENVELOPE(count) for the given table (getTable)? | |
| QUERY_COMPARABLE | back to summary |
|---|---|
| public static final int QUERY_COMPARABLE Can the expression be added to a condition of an outer query. Example: ROWNUM() can't be added as a condition to the inner query of select id from (select t.*, rownum as r from test t) where r between 2 and 3; Also a sequence expression must not be used. | |
| QUERY_COMPARABLE_VISITOR | back to summary |
|---|---|
| public static final ExpressionVisitor QUERY_COMPARABLE_VISITOR The visitor singleton for the type QUERY_COMPARABLE. | |
| queryLevel | back to summary |
|---|---|
| private final int queryLevel | |
| READONLY | back to summary |
|---|---|
| public static final int READONLY Does the expression have no side effects (change the data)? | |
| READONLY_VISITOR | back to summary |
|---|---|
| public static final ExpressionVisitor READONLY_VISITOR The visitor singleton for the type EVALUATABLE. | |
| resolver | back to summary |
|---|---|
| private final ColumnResolver resolver | |
| set | back to summary |
|---|---|
| private final HashSet<?> set | |
| SET_MAX_DATA_MODIFICATION_ID | back to summary |
|---|---|
| public static final int SET_MAX_DATA_MODIFICATION_ID Request to set the latest modification id (addDataModificationId). | |
| table | back to summary |
|---|---|
| private final Table table | |
| type | back to summary |
|---|---|
| private final int type | |
| ExpressionVisitor | back to summary |
|---|---|
| private ExpressionVisitor(int type, int queryLevel, HashSet<?> set, AllColumnsForPlan columns1, Table table, ColumnResolver resolver, long[] maxDataModificationId) | |
| ExpressionVisitor | back to summary |
|---|---|
| private ExpressionVisitor(int type) | |
| ExpressionVisitor | back to summary |
|---|---|
| private ExpressionVisitor(int type, int queryLevel) | |
| addColumn1 | back to summary |
|---|---|
| pack-priv void addColumn1(Column column) Add a new column to the set of columns. This is used for GET_COLUMNS visitors.
| |
| addColumn2 | back to summary |
|---|---|
| pack-priv void addColumn2(Column column) Add a new column to the set of columns. This is used for GET_COLUMNS2 visitors.
| |
| addDataModificationId | back to summary |
|---|---|
| public void addDataModificationId(long value) Update the field maxDataModificationId if this value is higher than the current value. This is used for SET_MAX_DATA_MODIFICATION_ID visitors.
| |
| addDependency | back to summary |
|---|---|
| public void addDependency(DbObject obj) Add a new dependency to the set of dependencies. This is used for GET_DEPENDENCIES visitors.
| |
| allColumnsForTableFilters | back to summary |
|---|---|
| public static void allColumnsForTableFilters(TableFilter[] filters, AllColumnsForPlan allColumnsSet) Get the set of columns of all tables.
| |
| getColumnResolvers | back to summary |
|---|---|
| public HashSet Get the set of column resolvers.
This is used for
| |
| getColumnsVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getColumnsVisitor(AllColumnsForPlan columns) Create a new visitor to get all referenced columns.
| |
| getColumnsVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getColumnsVisitor(HashSet<Column> columns, Table table) Create a new visitor to get all referenced columns.
| |
| getDecrementQueryLevelVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getDecrementQueryLevelVisitor(HashSet<ColumnResolver> columnResolvers, int queryDecrement) Create a new visitor to decrement query level in columns with the specified resolvers.
| |
| getDependencies | back to summary |
|---|---|
| public HashSet Get the dependency set. This is used for GET_DEPENDENCIES visitors.
| |
| getDependenciesVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getDependenciesVisitor(HashSet<DbObject> dependencies) Create a new visitor object to collect dependencies.
| |
| getMaxDataModificationId | back to summary |
|---|---|
| public long getMaxDataModificationId() Get the last data modification. This is used for SET_MAX_DATA_MODIFICATION_ID visitors.
| |
| getMaxModificationIdVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getMaxModificationIdVisitor() | |
| getNotFromResolverVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getNotFromResolverVisitor(ColumnResolver resolver) Create a new visitor to check if no expression depends on the given resolver.
| |
| getOptimizableVisitor | back to summary |
|---|---|
| public static ExpressionVisitor getOptimizableVisitor(Table table) Create a new visitor to check if all aggregates are for the given table.
| |
| getQueryLevel | back to summary |
|---|---|
| pack-priv int getQueryLevel() | |
| getResolver | back to summary |
|---|---|
| public ColumnResolver getResolver() Get the column resolver. This is used for NOT_FROM_RESOLVER visitors.
| |
| getTable | back to summary |
|---|---|
| public Table getTable() Get the table. This is used for OPTIMIZABLE_MIN_MAX_COUNT_ALL visitors.
| |
| getType | back to summary |
|---|---|
| public int getType() Get the visitor type.
| |
| incrementQueryLevel | back to summary |
|---|---|
| public ExpressionVisitor incrementQueryLevel(int offset) Increment or decrement the query level.
| |