[
https://issues.apache.org/jira/browse/FLINK-17409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17093251#comment-17093251
]
zhanghang-dev edited comment on FLINK-17409 at 4/27/20, 9:31 AM:
-----------------------------------------------------------------
I modified the SqlCreateView code (the red part) in parserImpls.ftl now returns
correctly
{code:java}
SqlCreate SqlCreateView(Span s, boolean replace) : {
final SqlParserPos startPos = s.pos();
SqlIdentifier viewName;
SqlCharStringLiteral comment = null;
SqlNode query;
SqlNodeList fieldList = SqlNodeList.EMPTY;
}
{
<VIEW>
viewName = CompoundIdentifier()
[
fieldList = ParenthesizedSimpleIdentifierList()
]
[ <COMMENT> <QUOTED_STRING> {
String p = SqlParserUtil.parseString(token.image);
comment = SqlLiteral.createCharString(p, getPos());
}
]
<AS>
query = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY)
{
return new SqlCreateView(startPos.plus(getPos()), viewName, fieldList,
query, replace, comment);
}
}
{code}
was (Author: zhanghang-dev):
I modified the SqlCreateView code (the red part) in parserImpls.ftl now returns
correctly
{code:java}
SqlCreate SqlCreateView(Span s, boolean replace) : {
final SqlParserPos startPos = s.pos();
SqlIdentifier viewName;
SqlCharStringLiteral comment = null;
SqlNode query;
SqlNodeList fieldList = SqlNodeList.EMPTY;
}
{
<VIEW>
viewName = CompoundIdentifier()
[
fieldList = ParenthesizedSimpleIdentifierList()
]
[ <COMMENT> <QUOTED_STRING> {
String p = SqlParserUtil.parseString(token.image);
comment = SqlLiteral.createCharString(p, getPos());
}
]
<AS>
query = OrderedQueryOrExpr(ExprContext.ACCEPT_QUERY)
{
return new SqlCreateView(startPos.plus(getPos()), viewName, fieldList,
query, replace, comment);
}
}
{code}
> SqlCreateView's SqlParserPos return wrong value
> -----------------------------------------------
>
> Key: FLINK-17409
> URL: https://issues.apache.org/jira/browse/FLINK-17409
> Project: Flink
> Issue Type: Bug
> Components: Table SQL / Runtime
> Affects Versions: 1.10.0
> Reporter: zhanghang-dev
> Priority: Minor
>
> i add a test method in
> FlinkSqlParserImplTest,sqlNode.getParserPosition().getEndColumnNum() should
> return length of sql.
> {code:java}
> @Test
> public void testCreateViewSqlNodePosition() throws SqlParseException{
> String sql = "CREATE VIEW v1 AS SELECT 1";
> SqlNode sqlNode = getSqlParser(sql).parseQuery();
> System.out.println(sqlNode.getParserPosition().getLineNum()); // 1
> System.out.println(sqlNode.getParserPosition().getEndLineNum()); // 1
> System.out.println(sqlNode.getParserPosition().getColumnNum()); // 1
> System.out.println(sqlNode.getParserPosition().getEndColumnNum()); // 6 wrong
> }
> {code}
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)