This is an automated email from the ASF dual-hosted git repository.

alsuliman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit d4f3aba32bb71a8a370bcaea332a1e5c576af4b3
Author: Michael Blow <[email protected]>
AuthorDate: Sun Apr 4 11:33:34 2021 -0400

    [NO ISSUE][*DB][MISC] Avoid appending trailing ; on statements ending with 
a ;
    
    Change-Id: Iae6db76195ad834f01c8e35fc8a30d3b7148764c
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/10883
    Integration-Tests: Jenkins <[email protected]>
    Tested-by: Jenkins <[email protected]>
    Reviewed-by: Michael Blow <[email protected]>
    Reviewed-by: Till Westmann <[email protected]>
    Contrib: Michael Blow <[email protected]>
---
 .../asterix/api/http/server/QueryServiceServlet.java       | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

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 5153ebb..a043050 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
@@ -280,10 +280,12 @@ public class QueryServiceServlet extends 
AbstractQueryApiServlet {
             final ResultProperties resultProperties = new 
ResultProperties(delivery, param.getMaxResultReads());
             buildResponseHeaders(requestRef, sessionOutput, param, 
responsePrinter, delivery);
             responsePrinter.printHeaders();
-            validateStatement(param.getStatement());
-            String statementsText = param.getStatement() + ";";
+            String statement = param.getStatement();
+            statement = statement == null || (!statement.isEmpty() && 
statement.charAt(statement.length() - 1) == ';')
+                    ? statement : (statement + ";");
+            validateStatement(statement);
             if (param.isParseOnly()) {
-                ResultUtil.ParseOnlyResult parseOnlyResult = 
parseStatement(statementsText);
+                ResultUtil.ParseOnlyResult parseOnlyResult = 
parseStatement(statement);
                 setAccessControlHeaders(request, response);
                 executionState.setStatus(ResultStatus.SUCCESS, 
HttpResponseStatus.OK);
                 response.setStatus(executionState.getHttpStatus());
@@ -296,9 +298,9 @@ public class QueryServiceServlet extends 
AbstractQueryApiServlet {
                 IStatementExecutor.StatementProperties statementProperties =
                         new IStatementExecutor.StatementProperties();
                 response.setStatus(HttpResponseStatus.OK);
-                executeStatement(request, requestRef, statementsText, 
sessionOutput, resultProperties,
-                        statementProperties, stats, param, executionState, 
param.getOptionalParams(), statementParams,
-                        responsePrinter, warnings);
+                executeStatement(request, requestRef, statement, 
sessionOutput, resultProperties, statementProperties,
+                        stats, param, executionState, 
param.getOptionalParams(), statementParams, responsePrinter,
+                        warnings);
                 executionState.setStatus(ResultStatus.SUCCESS, 
HttpResponseStatus.OK);
             }
             errorCount = 0;

Reply via email to