Package org.apache.calcite.sql.ddl
Class SqlCreateTable
- java.lang.Object
-
- org.apache.calcite.sql.SqlNode
-
- org.apache.calcite.sql.SqlCall
-
- org.apache.calcite.sql.SqlDdl
-
- org.apache.calcite.sql.SqlCreate
-
- org.apache.calcite.sql.ddl.SqlCreateTable
-
- All Implemented Interfaces:
java.lang.Cloneable
,SqlExecutableStatement
public class SqlCreateTable extends SqlCreate implements SqlExecutableStatement
Parse tree forCREATE TABLE
statement.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
SqlCreateTable.AbstractModifiableTable
Abstract base class for implementations ofModifiableTable
.private static class
SqlCreateTable.ColumnDef
Column definition.(package private) static class
SqlCreateTable.MutableArrayTable
Table backed by a Java list.
-
Field Summary
Fields Modifier and Type Field Description private SqlNodeList
columnList
private SqlIdentifier
name
private static SqlOperator
OPERATOR
private SqlNode
query
-
Fields inherited from class org.apache.calcite.sql.SqlCreate
ifNotExists
-
Fields inherited from class org.apache.calcite.sql.SqlDdl
DDL_OPERATOR
-
Fields inherited from class org.apache.calcite.sql.SqlNode
EMPTY_ARRAY, pos
-
-
Constructor Summary
Constructors Constructor Description SqlCreateTable(SqlParserPos pos, boolean replace, boolean ifNotExists, SqlIdentifier name, SqlNodeList columnList, SqlNode query)
Creates a SqlCreateTable.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
execute(CalcitePrepare.Context context)
java.util.List<SqlNode>
getOperandList()
void
unparse(SqlWriter writer, int leftPrec, int rightPrec)
Writes a SQL representation of this node to a writer.-
Methods inherited from class org.apache.calcite.sql.SqlCreate
getReplace, setReplace
-
Methods inherited from class org.apache.calcite.sql.SqlDdl
getOperator
-
Methods inherited from class org.apache.calcite.sql.SqlCall
accept, clone, equalsDeep, findValidOptions, getCallSignature, getFunctionQuantifier, getKind, getMonotonicity, isCountStar, isExpanded, operand, operandCount, setOperand, validate
-
Methods inherited from class org.apache.calcite.sql.SqlNode
clone, clone, cloneArray, equalDeep, equalDeep, equalsDeep, getParserPosition, isA, toSqlString, toSqlString, toString, validateExpr
-
-
-
-
Field Detail
-
name
private final SqlIdentifier name
-
columnList
private final SqlNodeList columnList
-
query
private final SqlNode query
-
OPERATOR
private static final SqlOperator OPERATOR
-
-
Constructor Detail
-
SqlCreateTable
SqlCreateTable(SqlParserPos pos, boolean replace, boolean ifNotExists, SqlIdentifier name, SqlNodeList columnList, SqlNode query)
Creates a SqlCreateTable.
-
-
Method Detail
-
getOperandList
public java.util.List<SqlNode> getOperandList()
- Specified by:
getOperandList
in classSqlCall
-
unparse
public void unparse(SqlWriter writer, int leftPrec, int rightPrec)
Description copied from class:SqlNode
Writes a SQL representation of this node to a writer.The
leftPrec
andrightPrec
parameters give us enough context to decide whether we need to enclose the expression in parentheses. For example, we need parentheses around "2 + 3" if preceded by "5 *". This is because the precedence of the "*" operator is greater than the precedence of the "+" operator.The algorithm handles left- and right-associative operators by giving them slightly different left- and right-precedence.
If
SqlWriter.isAlwaysUseParentheses()
is true, we use parentheses even when they are not required by the precedence rules.For the details of this algorithm, see
SqlCall.unparse(org.apache.calcite.sql.SqlWriter, int, int)
.
-
execute
public void execute(CalcitePrepare.Context context)
- Specified by:
execute
in interfaceSqlExecutableStatement
-
-