Jackie-Jiang commented on code in PR #13040:
URL: https://github.com/apache/pinot/pull/13040#discussion_r1585793958


##########
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/BrokerRequestHandlerDelegate.java:
##########
@@ -85,24 +84,22 @@ public BrokerResponse handleRequest(JsonNode request, 
@Nullable SqlNodeAndOption
       @Nullable RequesterIdentity requesterIdentity, RequestContext 
requestContext, @Nullable HttpHeaders httpHeaders)
       throws Exception {
     requestContext.setBrokerId(_brokerId);
+
+    // Parse the query if needed
     if (sqlNodeAndOptions == null) {
       try {
-        sqlNodeAndOptions = 
RequestUtils.parseQuery(request.get(CommonConstants.Broker.Request.SQL).asText(),
 request);
+        sqlNodeAndOptions = 
RequestUtils.parseQuery(request.get(Request.SQL).asText(), request);
       } catch (Exception e) {
-        LOGGER.info("Caught exception while compiling SQL: {}, {}", request, 
e.getMessage());
-        
_brokerMetrics.addMeteredGlobalValue(BrokerMeter.REQUEST_COMPILATION_EXCEPTIONS,
 1);
+        // Do not log or emit metric here because it is pure user error
         requestContext.setErrorCode(QueryException.SQL_PARSING_ERROR_CODE);
         return new 
BrokerResponseNative(QueryException.getException(QueryException.SQL_PARSING_ERROR,
 e));
       }
     }
-    if (request.has(CommonConstants.Broker.Request.QUERY_OPTIONS)) {
-      sqlNodeAndOptions.setExtraOptions(
-          RequestUtils.getOptionsFromJson(request, 
CommonConstants.Broker.Request.QUERY_OPTIONS));
-    }
 
     if (_multiStageBrokerRequestHandler != null && Boolean.parseBoolean(
-        
sqlNodeAndOptions.getOptions().get(CommonConstants.Broker.Request.QueryOptionKey.USE_MULTISTAGE_ENGINE)))
 {
-      return _multiStageBrokerRequestHandler.handleRequest(request, 
requesterIdentity, requestContext, httpHeaders);
+        
sqlNodeAndOptions.getOptions().get(Request.QueryOptionKey.USE_MULTISTAGE_ENGINE)))
 {
+      return _multiStageBrokerRequestHandler.handleRequest(request, 
sqlNodeAndOptions, requesterIdentity,

Review Comment:
   This is an important fix. Currently we are not passing the parsed SQL into 
the multi-stage engine, which results in parsing the query twice



-- 
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: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to