Michael Blow has submitted this change and it was merged. Change subject: Merge commit 'a6bd8d1ad87a85cf402d019de5f4e01855d99b34' from release-0.9.4-pre-rc ......................................................................
Merge commit 'a6bd8d1ad87a85cf402d019de5f4e01855d99b34' from release-0.9.4-pre-rc Change-Id: I03b642f9e0ad4bdc034cd8f33b712dbb87a66f5d --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractQueryApiServlet.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java 5 files changed, 0 insertions(+), 160 deletions(-) Approvals: Michael Blow: Looks good to me, approved; Verified diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java index 8c6a9ab..db9b743 100644 --- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java +++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java @@ -155,8 +155,4 @@ * @return the executions plans */ ExecutionPlans getExecutionPlans(); -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) -======= - ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractQueryApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractQueryApiServlet.java index e970adb..9844900 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractQueryApiServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/AbstractQueryApiServlet.java @@ -49,12 +49,8 @@ HANDLE("handle"), ERRORS("errors"), METRICS("metrics"), -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) PLANS("plans"), WARNINGS("warnings"); -======= - PLANS("plans"); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) private final String str; diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java index 7affdee..a32f8be 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java @@ -51,10 +51,7 @@ import org.apache.asterix.lang.common.base.IParser; import org.apache.asterix.lang.common.base.Statement; import org.apache.asterix.metadata.MetadataManager; -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) import org.apache.asterix.om.base.IAObject; -======= ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) import org.apache.asterix.translator.ExecutionPlans; import org.apache.asterix.translator.ExecutionPlansJsonPrintUtil; import org.apache.asterix.translator.IRequestParameters; @@ -80,11 +77,6 @@ import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.JsonNode; -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) -======= -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) import io.netty.handler.codec.http.HttpResponseStatus; @@ -160,13 +152,9 @@ REWRITTEN_EXPRESSION_TREE("rewritten-expression-tree"), LOGICAL_PLAN("logical-plan"), OPTIMIZED_LOGICAL_PLAN("optimized-logical-plan"), -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) JOB("job"), SIGNATURE("signature"), MULTI_STATEMENT("multi-statement"); -======= - JOB("job"); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) private final String str; @@ -214,56 +202,7 @@ } } -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) protected static final class RequestExecutionState { -======= - static class RequestParameters { - String host; - String path; - String statement; - String format; - String timeout; - boolean pretty; - String clientContextID; - String mode; - String maxResultReads; - String planFormat; - boolean expressionTree; - boolean rewrittenExpressionTree; - boolean logicalPlan; - boolean optimizedLogicalPlan; - boolean job; - - @Override - public String toString() { - try { - ObjectMapper om = new ObjectMapper(); - ObjectNode on = om.createObjectNode(); - on.put("host", host); - on.put("path", path); - on.put("statement", JSONUtil.escape(new StringBuilder(), statement).toString()); - on.put("pretty", pretty); - on.put("mode", mode); - on.put("clientContextID", clientContextID); - on.put("format", format); - on.put("timeout", timeout); - on.put("maxResultReads", maxResultReads); - on.put("planFormat", planFormat); - on.put("expressionTree", expressionTree); - on.put("rewrittenExpressionTree", rewrittenExpressionTree); - on.put("logicalPlan", logicalPlan); - on.put("optimizedLogicalPlan", optimizedLogicalPlan); - on.put("job", job); - return om.writer(new MinimalPrettyPrinter()).writeValueAsString(on); - } catch (JsonProcessingException e) { // NOSONAR - LOGGER.debug("unexpected exception marshalling {} instance to json", getClass(), e); - return e.toString(); - } - } - } - - static final class RequestExecutionState { ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) private long execStart = -1; private long execEnd = -1; private ResultStatus resultStatus = ResultStatus.SUCCESS; @@ -348,32 +287,17 @@ SessionOutput.ResultAppender appendHandle = ResultUtil.createResultHandleAppender(handleUrl); SessionOutput.ResultAppender appendStatus = ResultUtil.createResultStatusAppender(); -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) SessionConfig.OutputFormat format = getFormat(param.getFormat()); final SessionConfig.PlanFormat planFormat = SessionConfig.PlanFormat.get(param.getPlanFormat(), param.getPlanFormat(), SessionConfig.PlanFormat.JSON, LOGGER); -======= - SessionConfig.OutputFormat format = getFormat(param.format); - final SessionConfig.PlanFormat planFormat = - SessionConfig.PlanFormat.get(param.planFormat, param.planFormat, SessionConfig.PlanFormat.JSON, LOGGER); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) SessionConfig sessionConfig = new SessionConfig(format, planFormat); sessionConfig.set(SessionConfig.FORMAT_WRAPPER_ARRAY, true); -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) sessionConfig.set(SessionConfig.OOB_EXPR_TREE, param.isExpressionTree()); sessionConfig.set(SessionConfig.OOB_REWRITTEN_EXPR_TREE, param.isRewrittenExpressionTree()); sessionConfig.set(SessionConfig.OOB_LOGICAL_PLAN, param.isLogicalPlan()); sessionConfig.set(SessionConfig.OOB_OPTIMIZED_LOGICAL_PLAN, param.isOptimizedLogicalPlan()); sessionConfig.set(SessionConfig.OOB_HYRACKS_JOB, param.isJob()); sessionConfig.set(SessionConfig.FORMAT_INDENT_JSON, param.isPretty()); -======= - sessionConfig.set(SessionConfig.OOB_EXPR_TREE, param.expressionTree); - sessionConfig.set(SessionConfig.OOB_REWRITTEN_EXPR_TREE, param.rewrittenExpressionTree); - sessionConfig.set(SessionConfig.OOB_LOGICAL_PLAN, param.logicalPlan); - sessionConfig.set(SessionConfig.OOB_OPTIMIZED_LOGICAL_PLAN, param.optimizedLogicalPlan); - sessionConfig.set(SessionConfig.OOB_HYRACKS_JOB, param.job); - sessionConfig.set(SessionConfig.FORMAT_INDENT_JSON, param.pretty); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) sessionConfig.set(SessionConfig.FORMAT_QUOTE_RECORD, format != SessionConfig.OutputFormat.CLEAN_JSON && format != SessionConfig.OutputFormat.LOSSLESS_JSON); sessionConfig.set(SessionConfig.FORMAT_CSV_HEADER, format == SessionConfig.OutputFormat.CSV @@ -494,7 +418,6 @@ if (HttpUtil.ContentType.APPLICATION_JSON.equals(contentType)) { try { JsonNode jsonRequest = OBJECT_MAPPER.readTree(HttpUtil.getRequestBody(request)); -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) final String statementParam = Parameter.STATEMENT.str(); if (jsonRequest.has(statementParam)) { param.setStatement(jsonRequest.get(statementParam).asText()); @@ -517,22 +440,6 @@ param.setStatementParams( getOptStatementParameters(jsonRequest, jsonRequest.fieldNames(), JsonNode::get, v -> v)); param.setMultiStatement(getOptBoolean(jsonRequest, Parameter.MULTI_STATEMENT.str(), true)); -======= - param.statement = jsonRequest.get(Parameter.STATEMENT.str()).asText(); - param.format = toLower(getOptText(jsonRequest, Parameter.FORMAT.str())); - param.pretty = getOptBoolean(jsonRequest, Parameter.PRETTY.str(), false); - param.mode = toLower(getOptText(jsonRequest, Parameter.MODE.str())); - param.clientContextID = getOptText(jsonRequest, Parameter.CLIENT_ID.str()); - param.timeout = getOptText(jsonRequest, Parameter.TIMEOUT.str()); - param.maxResultReads = getOptText(jsonRequest, Parameter.MAX_RESULT_READS.str()); - param.planFormat = getOptText(jsonRequest, Parameter.PLAN_FORMAT.str()); - param.expressionTree = getOptBoolean(jsonRequest, Parameter.EXPRESSION_TREE.str(), false); - param.rewrittenExpressionTree = - getOptBoolean(jsonRequest, Parameter.REWRITTEN_EXPRESSION_TREE.str(), false); - param.logicalPlan = getOptBoolean(jsonRequest, Parameter.LOGICAL_PLAN.str(), false); - param.optimizedLogicalPlan = getOptBoolean(jsonRequest, Parameter.OPTIMIZED_LOGICAL_PLAN.str(), false); - param.job = getOptBoolean(jsonRequest, Parameter.JOB.str(), false); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) } catch (JsonParseException | JsonMappingException e) { // if the JSON parsing fails, the statement is empty and we get an empty statement error GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, e.getMessage(), e); @@ -542,7 +449,6 @@ if (param.getStatement() == null) { param.setStatement(HttpUtil.getRequestBody(request)); } -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) param.setFormat(toLower(request.getParameter(Parameter.FORMAT.str()))); param.setPretty(Boolean.parseBoolean(request.getParameter(Parameter.PRETTY.str()))); param.setMode(toLower(request.getParameter(Parameter.MODE.str()))); @@ -558,15 +464,6 @@ } catch (JsonParseException | JsonMappingException e) { GlobalConfig.ASTERIX_LOGGER.log(Level.ERROR, e.getMessage(), e); } -======= - param.format = toLower(request.getParameter(Parameter.FORMAT.str())); - param.pretty = Boolean.parseBoolean(request.getParameter(Parameter.PRETTY.str())); - param.mode = toLower(request.getParameter(Parameter.MODE.str())); - param.clientContextID = request.getParameter(Parameter.CLIENT_ID.str()); - param.timeout = request.getParameter(Parameter.TIMEOUT.str()); - param.maxResultReads = request.getParameter(Parameter.MAX_RESULT_READS.str()); - param.planFormat = request.getParameter(Parameter.PLAN_FORMAT.str()); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) } return param; } @@ -744,7 +641,6 @@ } } -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) protected void printError(PrintWriter sessionOut, Throwable throwable) { ResultUtil.printError(sessionOut, throwable); } @@ -795,22 +691,5 @@ } } return i > startIndex; -======= - protected void printExecutionPlans(SessionOutput output, ExecutionPlans executionPlans) { - final PrintWriter pw = output.out(); - pw.print("\t\""); - pw.print(ResultFields.PLANS.str()); - pw.print("\":"); - final SessionConfig.PlanFormat planFormat = output.config().getPlanFormat(); - switch (planFormat) { - case JSON: - case STRING: - pw.print(ExecutionPlansJsonPrintUtil.asJson(executionPlans, planFormat)); - break; - default: - throw new IllegalStateException("Unrecognized plan format: " + planFormat); - } - pw.print(",\n"); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) } } diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java index fa3e710..8e86b9c 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java @@ -1847,13 +1847,9 @@ CompiledLoadFromFileStatement cls = new CompiledLoadFromFileStatement(dataverseName, loadStmt.getDatasetName().getValue(), loadStmt.getAdapter(), loadStmt.getProperties(), loadStmt.dataIsAlreadySorted()); -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) cls.setSourceLocation(stmt.getSourceLocation()); JobSpecification spec = apiFramework.compileQuery(hcc, metadataProvider, null, 0, null, sessionOutput, cls, null); -======= - JobSpecification spec = apiFramework.compileQuery(hcc, metadataProvider, null, 0, null, sessionOutput, cls); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) afterCompile(); MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); bActiveTxn = false; @@ -1948,13 +1944,9 @@ CompiledDeleteStatement clfrqs = new CompiledDeleteStatement(stmtDelete.getVariableExpr(), dataverseName, stmtDelete.getDatasetName().getValue(), stmtDelete.getCondition(), stmtDelete.getVarCounter(), stmtDelete.getQuery()); -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) clfrqs.setSourceLocation(stmt.getSourceLocation()); JobSpecification jobSpec = rewriteCompileQuery(hcc, metadataProvider, clfrqs.getQuery(), clfrqs, stmtParams, stmtRewriter); -======= - JobSpecification jobSpec = rewriteCompileQuery(hcc, metadataProvider, clfrqs.getQuery(), clfrqs); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) afterCompile(); MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); @@ -2493,12 +2485,8 @@ boolean bActiveTxn = true; metadataProvider.setMetadataTxnContext(mdTxnCtx); try { -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) final JobSpecification jobSpec = rewriteCompileQuery(hcc, metadataProvider, query, null, stmtParams, stmtRewriter); -======= - final JobSpecification jobSpec = rewriteCompileQuery(hcc, metadataProvider, query, null); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) afterCompile(); MetadataManager.INSTANCE.commitTransaction(mdTxnCtx); bActiveTxn = false; @@ -2918,11 +2906,6 @@ return apiFramework.getExecutionPlans(); } - @Override - public ExecutionPlans getExecutionPlans() { - return apiFramework.getExecutionPlans(); - } - public String getActiveDataverse(Identifier dataverse) { return getActiveDataverseName(dataverse != null ? dataverse.getValue() : null); } @@ -2961,13 +2944,6 @@ if (index.isPrimaryIndex()) { throw new MetadataException(ErrorCode.CANNOT_DROP_INDEX, sourceLoc, index.getIndexName(), index.getDatasetName()); - } - - } - - protected void afterCompile() { - if (sessionOutput.config().is(SessionConfig.FORMAT_HTML)) { - ExecutionPlansHtmlPrintUtil.print(sessionOutput.out(), getExecutionPlans()); } } diff --git a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java index 40d17f9..412cf03 100644 --- a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java +++ b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/ResultExtractor.java @@ -54,12 +54,8 @@ STATUS("status"), TYPE("type"), ERRORS("errors"), -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) PLANS("plans"), WARNINGS("warnings"); -======= - PLANS("plans"); ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) private static final Map<String, ResultField> fields = new HashMap<>(); @@ -169,10 +165,7 @@ case STATUS: case TYPE: case PLANS: -<<<<<<< HEAD (b2a738 [NO ISSUE][RT] Follow IFrameWriter protocol in AbstractOneIn) case WARNINGS: -======= ->>>>>>> BRANCH (a6bd8d [NO ISSUE][API] Add Execution Plans to Query Services) resultBuilder.append(OBJECT_MAPPER.writeValueAsString(fieldValue)); break; default: -- To view, visit https://asterix-gerrit.ics.uci.edu/2899 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I03b642f9e0ad4bdc034cd8f33b712dbb87a66f5d Gerrit-PatchSet: 3 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Michael Blow <mb...@apache.org> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Michael Blow <mb...@apache.org> Gerrit-Reviewer: Murtadha Hubail <mhub...@apache.org>