Jackie-Jiang commented on code in PR #9072:
URL: https://github.com/apache/pinot/pull/9072#discussion_r926113601
##########
pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotClientRequest.java:
##########
@@ -100,7 +100,7 @@ public void processSqlQueryGet(@ApiParam(value = "Query",
required = true) @Quer
try {
ObjectNode requestJson = JsonUtils.newObjectNode();
requestJson.put(Request.SQL, query);
- String queryOptions = constructSqlQueryOptions();
+ String queryOptions = constructSqlQueryOptions(requestJson);
Review Comment:
This line is redundant. We can skip putting the query options here
##########
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/BaseBrokerRequestHandler.java:
##########
@@ -1449,6 +1449,9 @@ private boolean forceLog(BrokerResponse brokerResponse,
long totalTimeMs) {
@VisibleForTesting
static void setOptions(PinotQuery pinotQuery, long requestId, String query,
JsonNode jsonRequest) {
Map<String, String> queryOptions = new HashMap<>();
+ // TODO: Remove the SQL query options after releasing 0.11.0
Review Comment:
Let's put it in the end (just before setting the query options) to ensure
they don't get overridden. The query engine will break if these 2 options are
missing during version upgrade
##########
pinot-broker/src/main/java/org/apache/pinot/broker/api/resources/PinotClientRequest.java:
##########
@@ -133,7 +133,7 @@ public void processSqlQueryPost(String query, @Suspended
AsyncResponse asyncResp
if (!requestJson.has(Request.SQL)) {
throw new IllegalStateException("Payload is missing the query string
field 'sql'");
}
- String queryOptions = constructSqlQueryOptions();
+ String queryOptions = constructSqlQueryOptions(requestJson);
Review Comment:
Similarly, we can remove this and the next line
##########
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/BrokerRequestHandlerDelegate.java:
##########
@@ -74,9 +74,11 @@ public BrokerResponse handleRequest(JsonNode request,
@Nullable RequesterIdentit
RequestContext requestContext)
throws Exception {
if (_isMultiStageQueryEngineEnabled && _multiStageWorkerRequestHandler !=
null) {
- JsonNode node =
request.get(CommonConstants.Broker.Request.QueryOptionKey.USE_MULTISTAGE_ENGINE);
- if (node != null && node.asBoolean()) {
- return _multiStageWorkerRequestHandler.handleRequest(request,
requesterIdentity, requestContext);
+ if (request.has("queryOptions")) {
+ String queryOptions = request.get("queryOptions").asText();
+ if
(queryOptions.contains(CommonConstants.Broker.Request.QueryOptionKey.USE_MULTISTAGE_ENGINE))
{
Review Comment:
We should probably check `USE_MULTISTAGE_ENGINE + "=true"` in case someone
set it to false
--
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]