public class TCTE extends TTable
Multiple common table expressions can be specified following the single WITH keyword.
Each common table expression specified can also be referenced by name in the FROM clause of subsequent common table expressions.
Syntax:
table-name [column-name [,...n]] AS (fullselect)
PIVOT_CLAUSE_ALIAS, TABLE_COLLECTION_ALIAS, tablerefs, UNPIVOT_CLAUSE_ALIASdbvendor, doubleLinkedTokenListToString, nodeActionAppend, nodeActionInsert, nodeActionRemove, nodeActionUnknown, nodeActionUpdate, nodeActionUpdateText, nodeChangeEndToken, nodeChangeStartToken| Constructor and Description |
|---|
TCTE() |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(TParseTreeVisitor v)
Accept a visitor
|
void |
acceptChildren(TParseTreeVisitor v)
Accept a visitor to iterate this class and sub-nodes of this class
|
void |
doParse(TCustomSqlStatement psql,
ESqlClause plocation)
Analyze the sub-nodes inside this node.
|
TObjectNameList |
getColumnList() |
TDeleteSqlStatement |
getDeleteStmt() |
TDescribeStmt |
getDescribeStmt()
DESCRIBE statement used as the body of this CTE (Databricks
DESCRIBE HISTORY inside WITH), or null.
|
TExpression |
getExpression()
ClickHouse, the body of an expression-CTE (
WITH <expr> AS <ident>) —
a literal, lambda, function call or parenthesised expression that the
identifier names. |
TInsertSqlStatement |
getInsertStmt() |
TSourceToken |
getMaterializedToken()
ClickHouse, set when the CTE is declared
AS MATERIALIZED (subquery). |
TCustomSqlStatement |
getPreparableStmt()
preparable statement can be:
|
String |
getRelationName() |
TSelectSqlStatement |
getSubquery()
fullselect of this common table expression.
|
TObjectName |
getTableName() |
TUpdateSqlStatement |
getUpdateStmt() |
void |
incParenthesisCount() |
void |
init(Object arg1,
Object arg2) |
void |
initAttributesFromColumnList() |
void |
initAttributesFromSubQuery() |
boolean |
isRecursive() |
boolean |
searchColumnInResultSet(TCustomSqlStatement pSql,
TTable pTable,
TObjectName pColumn,
boolean pMustIn) |
void |
setColumnList(TObjectNameList columnList) |
void |
setColumnListFromExpressions(TExpressionList exprs)
ClickHouse: the columned-CTE grammar (
WITH t(c1, c2) AS (subquery))
parses the parenthesised column list as general expressions so the same
name '(' prefix can also serve function-call expression-CTEs
(WITH plus(1,2) AS x) without a reduce/reduce conflict. |
void |
setDeleteStmt(TDeleteSqlStatement deleteStmt) |
void |
setInsertStmt(TInsertSqlStatement insertStmt) |
void |
setMaterializedToken(TSourceToken materializedToken) |
void |
setPreparableStmt(TCustomSqlStatement preparableStmt) |
void |
setRecursive(boolean recursive) |
void |
setSubquery(TSelectSqlStatement subquery) |
void |
setTableName(TObjectName tableName) |
void |
setUpdateStmt(TUpdateSqlStatement updateStmt) |
addAttribute, checkTableByName, equalByName, getAliasName, getArrayIndexAlias, getAttributes, getAttributesReferenceToThisRelation, getCaseJoin, getColumnDefinitions, getColumnListInTempTable, getColumnsFromSQLEnv, getContainsTable, getCTE, getCteColomnReferences, getDatachangeTable, getDisplayName, getDisplayName, getEffectType, getExpandedStarColumns, getFlashback, getForXMLClause, getFromTableList, getFullName, getFullNameWithAliasString, getFuncCall, getHashByClause, getHiveFromQuery, getJoinExpr, getJsonTable, getLateralViewList, getLinkedColumns, getLinkTable, getLocalOrderBy, getName, getObjectNameReferences, getOpenDatasource, getOpenquery, getOpenRowSet, getOpenXML, getOuterClause, getOutputMerge, getParenthesisAfterAliasCount, getParenthesisCount, getPartitionExtensionClause, getPivotClause, getPivotedTable, getPrefixDatabase, getPrefixSchema, getPrefixServer, getPxGranule, getResolvedTable, getRowList, getSourceTableOfPivot, getSqlEnv, getStageName, getStageReference, getTableExpr, getTableHintList, getTableProperties, getTableSample, getTableType, getTdUnpivot, getTimeTravelClause, getUnnestClause, getValueClause, getXmlTable, initAttributeForRowList, initAttributeForTableFunction, initAttributeForXMLTable, initAttributesForJoin, initAttributesForPivotTable, initAttributesForUnnest, initAttributesFromCTE, initAttributesFromSubquery, initStarAttribute, isBaseTable, isCTEName, isIncludeColumnAlias, isLinkTable, isNPathOnClauseTable, isOnlyKeyword, isResolved, isSuperUnpivot, isTableKeyword, isTableRefBelongToThisTable, searchColumn, searchColumnInAlias, setArrayIndexAlias, setCaseJoin, setColumnDefinitions, setColumnListInTempTable, setContainsTable, setCTE, setCteColomnReferences, setCTEName, setDatachangeTable, setEffectType, setFlashback, setForXMLClause, setFromTableList, setFuncCall, setHashByClause, setHiveFromQuery, setJoinExpr, setJsonTable, setLateralViewList, setLinkedColumns, setLinkTable, setLinkTable, setLocalOrderBy, setNPathOnClauseTable, setObjectNameReferences, setOnlyKeyword, setOpenDatasource, setOpenquery, setOpenRowSet, setOpenXML, setOuterClause, setOutputMerge, setParenthesisAfterAliasCount, setParenthesisCount, setPartitionExtensionClause, setPivotClause, setPivotedTable, setPropertyFromObjectName, setPxGranule, setResolved, setResolvedTable, setRowList, setSourceTableOfPivot, setSqlEnv, setStageReference, setSuperUnpivot, setTableExpr, setTableHintList, setTableKeyword, setTableProperties, setTablerefs, setTableSample, setTableType, setTdUnpivot, setTimeTravelClause, setUnnestClause, setValueClause, setXmlTable, size, toStringgetAliasClause, setAliasClauseaddAllMyTokensToTokenList, addToTokenChain, appendNewNode, calculateTokenCount, doAppendNewNode, fastSetString, getAnchorNode, getColumnNo, getCommentAfterNode, getCommentBeforeNode, getCompactString, getDummyTag, getEndToken, getEvaluateDatatype, getEvalValue, getGsqlparser, getLineNo, getLocation, getMd5, getNodeStatus, getNodeType, getParentObjectName, getPlainText, getStartToken, getTokenCount, hasNext, init, init, init, init, init, init, init, init, init, insertAfterAToken, insertNewNodeBeforeMe, isChanged, isTokensInChain, next, refreshAllNodesTokenCount, remove, removeAllMyTokensFromTokenList, removeTokens, removeTokensBetweenNodes, removeTokensBetweenToken, replaceWithNewNode, resetIterator, setAnchorNode, setChanged, setDummyTag, setEndToken, setEndToken, setEndToken, setEndToken, setEndToken, setEndTokenDirectly, setEvaluateDatatype, setEvalValue, setGsqlparser, setIncludingComment, setLocation, setNewSubNode, setNodeStatus, setNodeType, setParent, setPlainText, setStartToken, setStartToken, setStartToken, setStartToken, setStartTokenDirectly, setString, setString2, subNodeInNode, toScript, toString2clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEachRemainingpublic TCTE()
public void setRecursive(boolean recursive)
public boolean isRecursive()
public void initAttributesFromColumnList()
public void initAttributesFromSubQuery()
public String getRelationName()
getRelationName in interface IRelationgetRelationName in class TTablepublic boolean searchColumnInResultSet(TCustomSqlStatement pSql, TTable pTable, TObjectName pColumn, boolean pMustIn)
public TCustomSqlStatement getPreparableStmt()
public TUpdateSqlStatement getUpdateStmt()
public TInsertSqlStatement getInsertStmt()
public TDeleteSqlStatement getDeleteStmt()
public TDescribeStmt getDescribeStmt()
public TObjectName getTableName()
getTableName in class TTablepublic void setColumnList(TObjectNameList columnList)
public TSelectSqlStatement getSubquery()
getSubquery in class TTablepublic TObjectNameList getColumnList()
public void setColumnListFromExpressions(TExpressionList exprs)
WITH t(c1, c2) AS (subquery))
parses the parenthesised column list as general expressions so the same
name '(' prefix can also serve function-call expression-CTEs
(WITH plus(1,2) AS x) without a reduce/reduce conflict. Convert
the expressions back to a column-name list. All-or-nothing: if any
element is not a plain column reference (native ClickHouse rejects such
a list), NO column list is set — compacting the valid entries would
silently shift every later column onto the wrong subquery position.public void init(Object arg1, Object arg2)
init in class TParseTreeNodepublic TExpression getExpression()
WITH <expr> AS <ident>) —
a literal, lambda, function call or parenthesised expression that the
identifier names. Null for subquery CTEs.public TSourceToken getMaterializedToken()
AS MATERIALIZED (subquery).public void setMaterializedToken(TSourceToken materializedToken)
public void incParenthesisCount()
public void doParse(TCustomSqlStatement psql, ESqlClause plocation)
TParseTreeNodedoParse in class TParseTreeNodepsql - SQL statement this node belongs toplocation - SQL clause this node belongs topublic void accept(TParseTreeVisitor v)
TParseTreeNodeaccept in interface Visitableaccept in class TTablev - visitor is a descendant class of TParseTreeVisitorpublic void acceptChildren(TParseTreeVisitor v)
TParseTreeNodeacceptChildren in interface VisitableacceptChildren in class TTablev - visitor is a descendant class of TParseTreeVisitorpublic void setSubquery(TSelectSqlStatement subquery)
setSubquery in class TTablepublic void setInsertStmt(TInsertSqlStatement insertStmt)
public void setUpdateStmt(TUpdateSqlStatement updateStmt)
public void setDeleteStmt(TDeleteSqlStatement deleteStmt)
public void setPreparableStmt(TCustomSqlStatement preparableStmt)
public void setTableName(TObjectName tableName)
setTableName in class TTable