Package com.mckoi.database.interpret

## Class TableSelectExpression

- java.lang.Object
- - com.mckoi.database.interpret.TableSelectExpression

All Implemented Interfaces:
  `StatementTreeObject`, `java.io.Serializable`, `java.lang.Cloneable`

    public final class TableSelectExpression
    extends java.lang.Object
    implements java.io.Serializable, StatementTreeObject, java.lang.Cloneable

A container object for the a table select expression, eg.

                   SELECT [columns]
                     FROM [tables]
                    WHERE [search_clause]
                 GROUP BY [column]
                   HAVING [search_clause]
     [composite_function] [table_select_expression]

Note that a TableSelectExpression can be nested in the various clauses of this object.

Author:
  Tobias Downer
See Also:
  Serialized Form

### Field Summary

Fields
`java.util.ArrayList` `columns` The list of columns to select from.
`boolean` `distinct` True if we only search for distinct elements.
`FromClause` `from_clause` The from clause.
`java.util.ArrayList` `group_by` The list of columns to group by.
`Variable` `group_max` The group max variable or null if no group max.
`SearchExpression` `having_clause` The having clause.
`SearchExpression` `where_clause` The where clause.

### Constructor Summary

Constructors
`TableSelectExpression()` Constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `chainComposite​(TableSelectExpression expression, java.lang.String composite, boolean is_all)` Chains a new composite function to this expression.
`java.lang.Object` `clone()` Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members.
`void` `prepareExpressions​(ExpressionPreparer preparer)` Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### distinct

    public boolean distinct

True if we only search for distinct elements.

#### columns

    public java.util.ArrayList columns

The list of columns to select from. (SelectColumn)

#### from_clause

    public FromClause from_clause

The from clause.

#### where_clause

    public SearchExpression where_clause

The where clause.

#### group_by

    public java.util.ArrayList group_by

The list of columns to group by. (ByColumn)

#### group_max

    public Variable group_max

The group max variable or null if no group max.

#### having_clause

    public SearchExpression having_clause

The having clause.

### Constructor Detail

#### TableSelectExpression

    public TableSelectExpression()

Constructor.

### Method Detail

#### chainComposite

    public void chainComposite​(TableSelectExpression expression,
                               java.lang.String composite,
                               boolean is_all)

Chains a new composite function to this expression. For example, if this expression is a UNION ALL with another expression it would be set through this method.

#### prepareExpressions

    public void prepareExpressions​(ExpressionPreparer preparer)
                            throws DatabaseException

Description copied from interface: `StatementTreeObject`
Prepares all expressions in this statement tree object by passing the ExpressionPreparer object to the 'prepare' method of the expression.

Specified by:
  `prepareExpressions` in interface `StatementTreeObject`
Throws:
  `DatabaseException`

#### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

Description copied from interface: `StatementTreeObject`
Performs a DEEP clone of this object if it is mutable, or a deep clone of its mutable members. If the object is immutable then it may return 'this'.

Specified by:
  `clone` in interface `StatementTreeObject`
Overrides:
  `clone` in class `java.lang.Object`
Throws:
  `java.lang.CloneNotSupportedException`