## Uses of Class
com.mckoi.database.Variable

Packages that use Variable
com.mckoi.database: The core database classes for Mckoi.
com.mckoi.database.interpret: These classes interpret specific SQL statements, such as Insert and Delete.
com.mckoi.database.sql: These classes parse SQL statements in Mckoi.

### Uses of Variable in com.mckoi.database

Methods in com.mckoi.database that return Variable
`Variable[]` QueryPlan.SubsetNode.`getNewColumnNames()` Returns the list of new column names that represent the new columns in this subset.
`Variable[]` QueryPlan.SubsetNode.`getOriginalColumns()` Returns the list of original columns that represent the mappings from the columns in this subset.
`Variable` CompositeTable.`getResolvedVariable​(int column)`
`Variable` DataTable.`getResolvedVariable​(int column)`
`Variable` DataTableFilter.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`Variable` DefaultDataTable.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`Variable` FilterTable.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`Variable` JoinedTable.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`Variable` ReferenceTable.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`Variable` SubsetColumnTable.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`abstract Variable` Table.`getResolvedVariable​(int column)` Returns a fully qualified Variable object that represents the name of the column at the given index.
`Variable` TableAccessState.`getResolvedVariable​(int column)` Returns the TableName of the given column of this table.
`Variable` Assignment.`getVariable()` Returns the variable for this assignment.
`Variable` CorrelatedVariable.`getVariable()` Returns the wrapped Variable.
`Variable` Expression.`getVariable()` Returns the Variable if this expression evaluates to a single variable, otherwise returns null.
`static Variable` Variable.`resolve​(TableName tname, java.lang.String name)` Attempts to resolve a string '[table_name].[column]' to a Variable instance.
`static Variable` Variable.`resolve​(java.lang.String name)` Attempts to resolve a string '[table_name].[column]' to a Variable instance.
`Variable` Variable.`resolveTableName​(TableName tablen)` Returns a ColumnName that is resolved against a table name context only if the ColumnName is unknown in this object.
`Variable` Variable.`set​(Variable from)` Sets this Variable object with information from the given Variable.

Methods in com.mckoi.database with parameters of type Variable
`boolean` Database.`canUserInsertIntoTableObject​(DatabaseQueryContext context, User user, TableName table, Variable[] columns)` Returns true if the user can insert into a table or view with the given name and given columns, otherwise returns false.
`boolean` Database.`canUserSelectFromTableObject​(DatabaseQueryContext context, User user, TableName table, Variable[] columns)` Returns true if the user can select from a table or view with the given name and given columns, otherwise returns false.
`boolean` Database.`canUserUpdateTableObject​(DatabaseQueryContext context, User user, TableName table, Variable[] columns)` Returns true if the user can update a table or view with the given name and given columns, otherwise returns false.
`void` FunctionTable.`createGroupMatrix​(Variable[] col_list)` Creates a grouping matrix for the given tables.
`int` Table.`fastFindFieldName​(Variable col)` A faster way to find a column index given a string column name.
`int` CompositeTable.`findFieldName​(Variable v)`
`int` DataTable.`findFieldName​(Variable v)`
`int` DataTableFilter.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`int` DefaultDataTable.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`int` FilterTable.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`int` JoinedTable.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`int` ReferenceTable.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`int` SubsetColumnTable.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`abstract int` Table.`findFieldName​(Variable v)` Given a fully qualified variable field name, ie.
`TType` Table.`getTTypeForColumn​(Variable v)` Returns a TType object that would represent values in the given column.
`Table` FunctionTable.`mergeWithReference​(Variable max_column)` Returns a Table that is this function table merged with the cross reference table.
`VirtualTable` Table.`orderByColumn​(Variable column)`
`VirtualTable` Table.`orderByColumn​(Variable column, boolean ascending)`
`Table` Table.`rangeSelect​(Variable col_var, SelectableRange[] ranges)` A single column range select on this table.
`TObject` GroupResolver.`resolve​(Variable variable, int set_index)` Returns the value of a variable of a group.
`TObject` VariableResolver.`resolve​(Variable variable)` Returns the value of a given variable.
`TType` VariableResolver.`returnTType​(Variable variable)` Returns the TType of object the given variable is.
`Variable` Variable.`set​(Variable from)` Sets this Variable object with information from the given Variable.
`void` SubsetColumnTable.`setColumnMap​(int[] mapping, Variable[] aliases)` Adds a column map into this table.
`Table` Table.`simpleJoin​(QueryContext context, Table table, Variable lhs_var, Operator op, Expression rhs)` A simple join operation.
`Table` Table.`simpleSelect​(QueryContext context, Variable lhs_var, Operator op, Expression rhs)` A simple select on this table.

Constructors in com.mckoi.database with parameters of type Variable
`Assignment​(Variable variable, Expression expression)` Constructs the assignment.
`CorrelatedVariable​(Variable variable, int level_offset)` Constructs the CorrelatedVariable.
`DistinctNode​(QueryPlanNode child, Variable[] columns)`
`EquiJoinNode​(QueryPlanNode left, QueryPlanNode right, Variable[] left_cols, Variable[] right_cols)`
`GroupNode​(QueryPlanNode child, Variable[] columns, Variable group_max_column, Expression[] function_list, java.lang.String[] name_list)` Groups over the given columns from the child.
`GroupNode​(QueryPlanNode child, Variable group_max_column, Expression[] function_list, java.lang.String[] name_list)` Groups over the entire child (always ends in 1 result in set).
`JoinNode​(QueryPlanNode left, QueryPlanNode right, Variable left_var, Operator join_op, Expression right_expression)`
`MultiColumnEquiSelectNode​(QueryPlanNode child, Variable[] columns, Expression[] values)`
`NonCorrelatedAnyAllNode​(QueryPlanNode left, QueryPlanNode right, Variable[] left_vars, Operator subquery_op)`
`SimpleSelectNode​(QueryPlanNode child, Variable left_var, Operator op, Expression right_expression)`
`SortNode​(QueryPlanNode child, Variable[] columns, boolean[] ascending)`
`SubsetNode​(QueryPlanNode child, Variable[] original_columns, Variable[] new_column_names)`
`Variable​(Variable v)`

### Uses of Variable in com.mckoi.database.interpret

Fields in com.mckoi.database.interpret declared as Variable
`Variable` TableSelectExpression.`group_max` The group max variable or null if no group max.
`Variable` SelectColumn.`internal_name` The name of this column used internally to reference it.
`Variable` ByColumn.`name` The name of the column in the 'by'.
`Variable` SelectColumn.`resolved_name` The fully resolved name that this column is given in the resulting table.

Methods in com.mckoi.database.interpret that return Variable
`Variable[]` FromTableDirectSource.`allColumns()`
`Variable[]` FromTableInterface.`allColumns()` Returns an array of Variable objects that references each column available in this table set item in order from left column to right column.
`Variable[]` FromTableSubQuerySource.`allColumns()`
`Variable` FromTableDirectSource.`resolveColumn​(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)`
`Variable` FromTableInterface.`resolveColumn​(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)` Returns a Variable that is a fully resolved form of the given column in this table set.
`Variable` FromTableSubQuerySource.`resolveColumn​(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)`
`Variable` Statement.`resolveVariableName​(Variable v)` Given a Variable object, this will resolve the name into a column name the database understands (substitutes aliases, etc).

Methods in com.mckoi.database.interpret with parameters of type Variable
`Variable` Statement.`resolveVariableName​(Variable v)` Given a Variable object, this will resolve the name into a column name the database understands (substitutes aliases, etc).

### Uses of Variable in com.mckoi.database.sql

Methods in com.mckoi.database.sql that return Variable
`Variable` SQL.`ColumnNameVariable()`
`Variable` SQL.`GroupMaxColumn()` NOTE: This is an extension, allows for us to specify a column to return the max value for each row representing a group.