public class TResultColumn extends TNodeWithAliasClause implements Comparable
Syntax:
query_name|[schema.]{table|view|materialized_view}|expr [ [AS] alias]
or, set column values in update_set_clause.
Syntax:
column = expr|(subquery)
or, values clause in insert statement was represented by TResultColumnList
.
Syntax:
(expr,expr)
dbvendor, doubleLinkedTokenListToString, nodeActionAppend, nodeActionInsert, nodeActionRemove, nodeActionUnknown, nodeActionUpdate, nodeActionUpdateText, nodeChangeEndToken, nodeChangeStartToken
Constructor and Description |
---|
TResultColumn() |
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
|
int |
compareTo(Object o) |
void |
doParse(TCustomSqlStatement psql,
ESqlClause plocation)
Analyze the sub-nodes inside this node.
|
String |
getAliasName() |
ArrayList<TObjectName> |
getAliasNameList() |
ArrayList<TObjectName> |
getAttributesFromUpLevelReferenceToStarColumn()
这个属性只对 star column 有效。用来存放在 up level 中找到的关联到本 star column 的 column,
主要用来把来自 up level 的这些 column 继续和 本层 from clause 中的 table 关联起来,
以解决 up level column 来自低层哪个 table 的问题
实现代码见:TStarColumnPushDownResolver.preVisit(TSelectSqlStatement stmt),
TAttributeNode.addAttributeRefToThisNode(TObjectName objectName)
|
String |
getColumnAlias() |
TObjectName |
getColumnFullname() |
String |
getColumnNameOnly() |
String |
getDisplayName()
This is the display name shown in the output of select list
|
TObjectNameList |
getExceptColumnList()
Bigquery except columns
SELECT COMMON.* EXCEPT (column1, column2) FROM dataset1.table1 COMMON;
|
TExpression |
getExpr()
column expression.
|
ArrayList<TReplaceExprAsIdentifier> |
getExprAsIdentifiers()
BigQuery replace columns
SELECT * REPLACE (quantity/2 AS quantity) |
TObjectName |
getFieldAttr() |
String |
getPrefixDatabase() |
String |
getPrefixSchema() |
String |
getPrefixServer() |
String |
getPrefixTable() |
TQualifyClause |
getQualifyClause() |
ArrayList<TReplaceExprAsIdentifier> |
getReplaceExprAsIdentifiers()
BigQuery select * except(expr as identifier)
|
TObjectNameList |
getTargetColumns() |
TUpdateFor |
getUpdateFor() |
void |
init(Object arg1)
Initialize a query tree node.
|
void |
init(Object arg1,
Object arg2) |
boolean |
isMatchedUsingAlias(TObjectName pColumn) |
boolean |
isMatchedWithResultColumn(EDbVendor dbVendor,
TObjectName pColumn) |
boolean |
isPlaceHolder()
this is true when there is no column names specified for fields in teradata insert statement
|
void |
setAliasName(String aliasName) |
void |
setDataTypeConversionList(TPTNodeList<TExplicitDataTypeConversion> dataTypeConversionList) |
void |
setExpr(TExpression expr) |
void |
setPlaceHolder(boolean placeHolder) |
void |
setQualifyClause(TQualifyClause qualifyClause) |
void |
setTargetColumns(TObjectNameList targetColumns) |
void |
setUpdateFor(TUpdateFor updateFor) |
void |
TResultColumn() |
getAliasClause, setAliasClause, toString
addAllMyTokensToTokenList, 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, 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, toString2
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEachRemaining
public TResultColumn()
public ArrayList<TObjectName> getAliasNameList()
public ArrayList<TObjectName> getAttributesFromUpLevelReferenceToStarColumn()
public void setAliasName(String aliasName)
public String getAliasName()
public ArrayList<TReplaceExprAsIdentifier> getExprAsIdentifiers()
public TObjectNameList getExceptColumnList()
public ArrayList<TReplaceExprAsIdentifier> getReplaceExprAsIdentifiers()
public void setQualifyClause(TQualifyClause qualifyClause)
public TQualifyClause getQualifyClause()
public void setDataTypeConversionList(TPTNodeList<TExplicitDataTypeConversion> dataTypeConversionList)
public TObjectNameList getTargetColumns()
public boolean isMatchedUsingAlias(TObjectName pColumn)
public boolean isMatchedWithResultColumn(EDbVendor dbVendor, TObjectName pColumn)
public void TResultColumn()
public String getDisplayName()
public String getColumnAlias()
public TObjectName getColumnFullname()
public String getColumnNameOnly()
public void setExpr(TExpression expr)
public void setPlaceHolder(boolean placeHolder)
public boolean isPlaceHolder()
INSERT INTO employee (10005, 'Orebo B',300,,,, 'Nov 17 1957','M',,,18,);
public TExpression getExpr()
TExpression.simpleObjectname
,
Otherwise, it maybe a complex expr, you should check TExpression.getExpressionType()
.
for column values in update_set_clause, this expr is type of TExpression.ASSIGNMENT
public void init(Object arg1)
TParseTreeNode
init
in class TParseTreeNode
arg1
- first argumentpublic void init(Object arg1, Object arg2)
init
in class TParseTreeNode
public void doParse(TCustomSqlStatement psql, ESqlClause plocation)
TParseTreeNode
doParse
in class TParseTreeNode
psql
- SQL statement this node belongs toplocation
- SQL clause this node belongs topublic TObjectName getFieldAttr()
public String getPrefixTable()
public String getPrefixSchema()
public String getPrefixDatabase()
public String getPrefixServer()
public void accept(TParseTreeVisitor v)
TParseTreeNode
accept
in interface Visitable
accept
in class TParseTreeNode
v
- visitor is a descendant class of TParseTreeVisitor
public void acceptChildren(TParseTreeVisitor v)
TParseTreeNode
acceptChildren
in interface Visitable
acceptChildren
in class TParseTreeNode
v
- visitor is a descendant class of TParseTreeVisitor
public void setTargetColumns(TObjectNameList targetColumns)
public void setUpdateFor(TUpdateFor updateFor)
public TUpdateFor getUpdateFor()
public int compareTo(Object o)
compareTo
in interface Comparable