This is an automated email from the ASF dual-hosted git repository. mblow pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit d337bb7ec6109e401cbeb0b6536212968ac0b10b Author: Ali Alsuliman <[email protected]> AuthorDate: Thu Feb 11 17:15:37 2021 -0800 [NO ISSUE][OTH] Make ExecuteStatementRequestMessage extensible - user model changes: no - storage format changes: no - interface changes: no Details: Make ExecuteStatementRequestMessage extensible. Change-Id: I481a3bf16bbaf1b11e1073898f48b2d89a26c897 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/9986 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> Reviewed-by: Murtadha Hubail <[email protected]> --- .../asterix/api/http/server/NCQueryServiceServlet.java | 16 ++++++++-------- .../asterix/api/http/server/QueryServiceServlet.java | 8 ++++---- .../app/message/ExecuteStatementRequestMessage.java | 11 ++++++++--- 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java index 99b6be1..0b0f262 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/NCQueryServiceServlet.java @@ -68,7 +68,7 @@ public class NCQueryServiceServlet extends QueryServiceServlet { } @Override - protected void executeStatement(IRequestReference requestReference, String statementsText, + protected void executeStatement(IServletRequest request, IRequestReference requestReference, String statementsText, SessionOutput sessionOutput, ResultProperties resultProperties, IStatementExecutor.StatementProperties statementProperties, IStatementExecutor.Stats stats, QueryServiceRequestParameters param, RequestExecutionState executionState, @@ -85,7 +85,7 @@ public class NCQueryServiceServlet extends QueryServiceServlet { long timeout = param.getTimeout(); int stmtCategoryRestrictionMask = org.apache.asterix.app.translator.RequestParameters .getStatementCategoryRestrictionMask(param.isReadOnly()); - ExecuteStatementRequestMessage requestMsg = createRequestMessage(requestReference, statementsText, + ExecuteStatementRequestMessage requestMsg = createRequestMessage(request, requestReference, statementsText, sessionOutput, resultProperties, param, optionalParameters, statementParameters, ncCtx, responseFuture, queryLanguage, handleUrl, stmtCategoryRestrictionMask, false); executionState.start(); @@ -129,12 +129,12 @@ public class NCQueryServiceServlet extends QueryServiceServlet { buildResponseResults(responsePrinter, sessionOutput, responseMsg.getExecutionPlans(), warnings); } - protected ExecuteStatementRequestMessage createRequestMessage(IRequestReference requestReference, - String statementsText, SessionOutput sessionOutput, ResultProperties resultProperties, - QueryServiceRequestParameters param, Map<String, String> optionalParameters, - Map<String, byte[]> statementParameters, INCServiceContext ncCtx, MessageFuture responseFuture, - ILangExtension.Language queryLanguage, String handleUrl, int stmtCategoryRestrictionMask, - boolean forceDropDataset) { + protected ExecuteStatementRequestMessage createRequestMessage(IServletRequest request, + IRequestReference requestReference, String statementsText, SessionOutput sessionOutput, + ResultProperties resultProperties, QueryServiceRequestParameters param, + Map<String, String> optionalParameters, Map<String, byte[]> statementParameters, INCServiceContext ncCtx, + MessageFuture responseFuture, ILangExtension.Language queryLanguage, String handleUrl, + int stmtCategoryRestrictionMask, boolean forceDropDataset) { return new ExecuteStatementRequestMessage(ncCtx.getNodeId(), responseFuture.getFutureId(), queryLanguage, statementsText, sessionOutput.config(), resultProperties.getNcToCcResultProperties(), param.getClientContextID(), handleUrl, optionalParameters, statementParameters, 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 dea46f2..f394794 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 @@ -301,9 +301,9 @@ public class QueryServiceServlet extends AbstractQueryApiServlet { IStatementExecutor.StatementProperties statementProperties = new IStatementExecutor.StatementProperties(); response.setStatus(HttpResponseStatus.OK); - executeStatement(requestRef, statementsText, sessionOutput, resultProperties, statementProperties, - stats, param, executionState, param.getOptionalParams(), statementParams, responsePrinter, - warnings); + executeStatement(request, requestRef, statementsText, sessionOutput, resultProperties, + statementProperties, stats, param, executionState, param.getOptionalParams(), statementParams, + responsePrinter, warnings); executionState.setStatus(ResultStatus.SUCCESS, HttpResponseStatus.OK); } errorCount = 0; @@ -386,7 +386,7 @@ public class QueryServiceServlet extends AbstractQueryApiServlet { return new ResultUtil.ParseOnlyResult(extVars); } - protected void executeStatement(IRequestReference requestReference, String statementsText, + protected void executeStatement(IServletRequest request, IRequestReference requestReference, String statementsText, SessionOutput sessionOutput, ResultProperties resultProperties, IStatementExecutor.StatementProperties statementProperties, Stats stats, QueryServiceRequestParameters param, RequestExecutionState executionState, diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java index 66a6dde..d3345fb 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java @@ -72,8 +72,8 @@ public class ExecuteStatementRequestMessage implements ICcAddressedMessage { public static final long DEFAULT_NC_TIMEOUT_MILLIS = TimeUnit.MILLISECONDS.toMillis(Long.MAX_VALUE); //TODO: Make configurable: https://issues.apache.org/jira/browse/ASTERIXDB-2063 public static final long DEFAULT_QUERY_CANCELLATION_WAIT_MILLIS = TimeUnit.MINUTES.toMillis(1); - private final String requestNodeId; - private final long requestMessageId; + protected final String requestNodeId; + protected final long requestMessageId; private final ILangExtension.Language lang; private final String statementsText; private final SessionConfig sessionConfig; @@ -178,6 +178,11 @@ public class ExecuteStatementRequestMessage implements ICcAddressedMessage { } } + protected CCMessageBroker getMessageBroker(ICcApplicationContext ccAppCtx) { + ICCServiceContext ccSrvContext = ccAppCtx.getServiceContext(); + return (CCMessageBroker) ccSrvContext.getMessageBroker(); + } + static RuntimeDataException getRejectionReason(ClusterControllerService ccSrv, String requestNodeId) { if (ccSrv.getNodeManager().getNodeControllerState(requestNodeId) == null) { return new RuntimeDataException(ErrorCode.REJECT_NODE_UNREGISTERED); @@ -191,7 +196,7 @@ public class ExecuteStatementRequestMessage implements ICcAddressedMessage { return null; } - static void sendRejection(RuntimeDataException reason, CCMessageBroker messageBroker, long requestMessageId, + protected static void sendRejection(Exception reason, CCMessageBroker messageBroker, long requestMessageId, String requestNodeId) { ExecuteStatementResponseMessage responseMsg = new ExecuteStatementResponseMessage(requestMessageId); responseMsg.setError(reason);
