Package com.mckoi.database.interpret
Class ViewManager
- java.lang.Object
-
- com.mckoi.database.interpret.Statement
-
- com.mckoi.database.interpret.ViewManager
-
public class ViewManager extends Statement
Handler for creating and dropping views in the database.
-
-
Field Summary
Fields Modifier and Type Field Description private QueryPlanNode
plan
If this is a create command, the QueryPlanNode that represents the view plan.private TableSelectExpression
select_expression
If this is a create command, the TableSelectExpression that forms the view.private java.lang.String
type
The type of command we are running through this ViewManager.private java.lang.String
view_name
The view name to create/drop.private TableName
vname
The view name as a TableName object.
-
Constructor Summary
Constructors Constructor Description ViewManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Table
evaluate()
Evaluates the statement and returns a table that represents the result set.void
prepare()
Prepares the statement with the given Database object.-
Methods inherited from class com.mckoi.database.interpret.Statement
addTable, Debug, existsTableWithColumn, findTableInQuery, findTableWithColumn, init, reset, resolveAgainstAliases, resolveColumn, resolveExpression, resolveTableName, resolveTree, resolveVariableName
-
-
-
-
Field Detail
-
type
private java.lang.String type
The type of command we are running through this ViewManager.
-
view_name
private java.lang.String view_name
The view name to create/drop.
-
vname
private TableName vname
The view name as a TableName object.
-
select_expression
private TableSelectExpression select_expression
If this is a create command, the TableSelectExpression that forms the view.
-
plan
private QueryPlanNode plan
If this is a create command, the QueryPlanNode that represents the view plan.
-
-
Method Detail
-
prepare
public void prepare() throws DatabaseException
Description copied from class:Statement
Prepares the statement with the given Database object. This is called before the statement is evaluated. The prepare statement queries the database and resolves information about the statement (for example, it resolves column names and aliases and determines the tables that are touched by this statement so we can lock the appropriate tables before we evaluate).NOTE: Care must be taken to ensure that all methods called here are safe in as far as modifications to the data occuring. The rules for safety should be as follows. If the database is in EXCLUSIVE mode, then we need to wait until it's switched back to SHARED mode before this method is called. All collection of information done here should not involve any table state info. except for column count, column names, column types, etc. Queries such as obtaining the row count, selectable scheme information, and certainly 'getCellContents' must never be called during prepare. When prepare finishes, the affected tables are locked and the query is safe to 'evaluate' at which time table state is safe to inspect.
- Specified by:
prepare
in classStatement
- Throws:
DatabaseException
-
evaluate
public Table evaluate() throws DatabaseException
Description copied from class:Statement
Evaluates the statement and returns a table that represents the result set. This is called after 'prepare'.- Specified by:
evaluate
in classStatement
- Throws:
DatabaseException
-
-