Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-30620

Analytics : Internal Error when both positional parameters ? and $ used in a query

    XMLWordPrintable

Details

    • Untriaged
    • Unknown
    • CX Sprint 113

    Description

      When a statement has both type of positional parameters ? and $ in a query 

      SELECT * FROM `travel_ds` where country = ? limit $1
       
       
      [
      {
      "code": 25000,
      "msg": "Internal error",
      "query_from_user": "SELECT * FROM `travel_ds` where country = ? limit $1"
      }
      ]

      Analytics log

      2018-07-25T06:28:12.173Z INFO CBAS.server.QueryServiceServlet [HttpExecutor(port:8095)-10] handleRequest: {"host":"10.142.180.102:8091","path":"/query/service","statement":"SELECT * FROM `travel_ds` where country = ? limit $1","pretty":false,"mode":null,"clientContextID":"f45bbe96-fdb3-4737-8224-7d7e34d9f3b3","format":null,"timeout":null,"maxResultReads":null,"planFormat":"json","expressionTree":false,"rewrittenExpressionTree":false,"logicalPlan":false,"optimizedLogicalPlan":true,"job":false,"signature":true,"multiStatement":true,"$1":"landmark","$country":"United States","$2":"bananas","$iata":"FL","$ty":"route","$limit":10,"$sa":"SFO"}
      2018-07-25T06:28:12.178Z INFO CBAS.work.WorkQueue [Worker:ClusterController] Executing: ApplicationMessage: nodeID: 67bfe9aaeabde5d27887331902811ce1
      2018-07-25T06:28:12.178Z INFO CBAS.messaging.CCMessageBroker [Executor-3:ClusterController] Received message: ExecuteStatementRequestMessage(id=26, from=67bfe9aaeabde5d27887331902811ce1): SELECT * FROM `travel_ds` where country = ? limit $1;
      2018-07-25T06:28:12.185Z INFO CBAS.work.WorkQueue [Worker:ClusterController] Executing: GetNodeControllersInfo
      2018-07-25T06:28:12.198Z INFO CBAS.translator.QueryTranslator [QueryTranslator] ASX1091: Type mismatch: expected value of type integer, but got the value of type string (in line 1, at column 52)
      org.apache.asterix.om.exceptions.TypeMismatchException: ASX1091: Type mismatch: expected value of type integer, but got the value of type string (in line 1, at column 52)
      at org.apache.asterix.om.typecomputer.impl.TreatAsTypeComputer.getResultType(TreatAsTypeComputer.java:45) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.om.typecomputer.impl.TypeComputeUtils.resolveResultType(TypeComputeUtils.java:123) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.om.typecomputer.base.AbstractResultTypeComputer.computeType(AbstractResultTypeComputer.java:43) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.dataflow.data.common.ExpressionTypeComputer.getTypeForFunction(ExpressionTypeComputer.java:84) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.dataflow.data.common.ExpressionTypeComputer.getType(ExpressionTypeComputer.java:55) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.hasClosedType(SetClosedRecordConstructorsRule.java:178) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.visitFunctionCallExpression(SetClosedRecordConstructorsRule.java:163) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.visitFunctionCallExpression(SetClosedRecordConstructorsRule.java:79) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.algebra.visitors.AbstractConstVarFunVisitor.visitScalarFunctionCallExpression(AbstractConstVarFunVisitor.java:39) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression.accept(ScalarFunctionCallExpression.java:56) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.transform(SetClosedRecordConstructorsRule.java:93) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.LimitOperator.acceptExpressionTransform(LimitOperator.java:86) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule.rewritePost(SetClosedRecordConstructorsRule.java:72) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:126) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController.rewriteWithRuleCollection(SequentialFixpointRuleController.java:53) ~[algebricks-compiler.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:102) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:82) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:90) ~[algebricks-compiler.jar:6.0.0-1355]
      at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:246) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:1976) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:2483) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:2608) [asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:2527) [asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:2496) [asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:393) [asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.message.ExecuteStatementRequestMessage.handle(ExecuteStatementRequestMessage.java:136) [asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.messaging.CCMessageBroker.receivedMessage(CCMessageBroker.java:66) [asterix-app.jar:6.0.0-1355]
      at org.apache.hyracks.control.cc.work.ApplicationMessageWork$1.run(ApplicationMessageWork.java:59) [hyracks-control-cc.jar:6.0.0-1355]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_162]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_162]
      at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]
      2018-07-25T06:28:12.213Z WARN CBAS.apache.asterix [Executor-3:ClusterController] ASX1091: Type mismatch: expected value of type integer, but got the value of type string (in line 1, at column 52)
      org.apache.asterix.om.exceptions.TypeMismatchException: ASX1091: Type mismatch: expected value of type integer, but got the value of type string (in line 1, at column 52)
      at org.apache.asterix.om.typecomputer.impl.TreatAsTypeComputer.getResultType(TreatAsTypeComputer.java:45) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.om.typecomputer.impl.TypeComputeUtils.resolveResultType(TypeComputeUtils.java:123) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.om.typecomputer.base.AbstractResultTypeComputer.computeType(AbstractResultTypeComputer.java:43) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.dataflow.data.common.ExpressionTypeComputer.getTypeForFunction(ExpressionTypeComputer.java:84) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.dataflow.data.common.ExpressionTypeComputer.getType(ExpressionTypeComputer.java:55) ~[asterix-om.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.hasClosedType(SetClosedRecordConstructorsRule.java:178) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.visitFunctionCallExpression(SetClosedRecordConstructorsRule.java:163) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.visitFunctionCallExpression(SetClosedRecordConstructorsRule.java:79) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.algebra.visitors.AbstractConstVarFunVisitor.visitScalarFunctionCallExpression(AbstractConstVarFunVisitor.java:39) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.algebra.expressions.ScalarFunctionCallExpression.accept(ScalarFunctionCallExpression.java:56) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule$SettingClosedRecordVisitor.transform(SetClosedRecordConstructorsRule.java:93) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.LimitOperator.acceptExpressionTransform(LimitOperator.java:86) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.asterix.optimizer.rules.SetClosedRecordConstructorsRule.rewritePost(SetClosedRecordConstructorsRule.java:72) ~[asterix-algebra.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:126) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:100) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController.rewriteWithRuleCollection(SequentialFixpointRuleController.java:53) ~[algebricks-compiler.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:102) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:82) ~[algebricks-core.jar:6.0.0-1355]
      at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:90) ~[algebricks-compiler.jar:6.0.0-1355]
      at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:246) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:1976) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:2483) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:2608) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:2527) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:2496) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:393) ~[asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.app.message.ExecuteStatementRequestMessage.handle(ExecuteStatementRequestMessage.java:136) [asterix-app.jar:6.0.0-1355]
      at org.apache.asterix.messaging.CCMessageBroker.receivedMessage(CCMessageBroker.java:66) [asterix-app.jar:6.0.0-1355]
      at org.apache.hyracks.control.cc.work.ApplicationMessageWork$1.run(ApplicationMessageWork.java:59) [hyracks-control-cc.jar:6.0.0-1355]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_162]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_162]
      at java.lang.Thread.run(Thread.java:748) [?:1.8.0_162]
      2018-07-25T06:28:12.216Z INFO CBAS.work.WorkQueue [Worker:67bfe9aaeabde5d27887331902811ce1] Executing: ApplicationMessage: nodeId: 67bfe9aaeabde5d27887331902811ce1
      2018-07-25T06:28:12.216Z INFO CBAS.messaging.NCMessageBroker [Worker:67bfe9aaeabde5d27887331902811ce1] Received message: ExecuteStatementResponseMessage(id=26): 0 characters
      2018-07-25T06:28:12.216Z INFO CBAS.server.QueryServiceServlet [HttpExecutor(port:8095)-10] handleException: ASX1091: Type mismatch: expected value of type integer, but got the value of type string (in line 1, at column 52): {"host":"10.142.180.102:8091","path":"/query/service","statement":"SELECT * FROM `travel_ds` where country = ? limit $1","pretty":false,"mode":null,"clientContextID":"f45bbe96-fdb3-4737-8224-7d7e34d9f3b3","format":null,"timeout":null,"maxResultReads":null,"planFormat":"json","expressionTree":false,"rewrittenExpressionTree":false,"logicalPlan":false,"optimizedLogicalPlan":true,"job":false,"signature":true,"multiStatement":false,"$1":"landmark","$country":"United States","$2":"bananas","$iata":"FL","$ty":"route","$limit":10,"$sa":"SFO"}

      Expected: Error message should be more clear

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            dmitry.lychagin Dmitry Lychagin (Inactive)
            vikas.chaudhary Vikas Chaudhary
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty