siddharthteotia commented on code in PR #8880:
URL: https://github.com/apache/pinot/pull/8880#discussion_r894856714
##########
pinot-common/src/main/java/org/apache/pinot/sql/parsers/CalciteSqlParser.java:
##########
@@ -116,30 +101,51 @@ public static SqlNodeAndOptions
compileToSqlNodeAndOptions(String sql)
// Remove the terminating semicolon from the query
sql = removeTerminatingSemicolon(sql);
- // Extract OPTION statements from sql as Calcite Parser doesn't parse it.
- List<String> options = extractOptionsFromSql(sql);
- if (!options.isEmpty()) {
- sql = removeOptionsFromSql(sql);
- }
-
try (StringReader inStream = new StringReader(sql)) {
Review Comment:
Not related to this PR --
Looks like this function was added when INSERT grammar extension was done
and is being called from broker query endpoint in `PinotClientRequest.java`.
It seems like for DQL, the caller will parse the SQL statement twice. Once
at line 153 when it calls this method in the parser to retrieve
`SqlNodeAndOptions` and then if the type is not DML, it sends the query to
`requestHandler.handleRequest(sql)` which will call the parser again
(`compileToPinotQuery(sql)`) and the statement will be parsed again.
Not sure if this is expected. I just noticed it
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]