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

Analytics queries are failing when using selection predicates

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Morpheus
    • Morpheus
    • analytics
    • 7.5.0-4355

    Description

      Steps to reproduce -

      1. Create a 4 node cluster with 3 cbas nodes and 1 node with kv,n1ql and index services.
      2. Create 2 buckets with 2 scopes and 10 collection in each scope.
      3. Load 2.5k docs in each collection.
      4. Now set the default dataset storage format as column using analytics/config/service endpoint.
      5. Create datasets on all collections in both buckets.
      6. Create index on each of the dataset.
      7. Execute following query for each dataset - 

        EXPLAIN SELECT VALUE v FROM <dataset_name> v WHERE age > 2  

      1. Following error is seen -

        [
          {
            "code": 24112,
            "msg": "Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'",
            "query_from_user": "EXPLAIN SELECT VALUE v FROM ikwPV7uCY.O1yLR57cAOLj2v9.OZlt2foRe6azxeW4N v WHERE age > 2"
          }
        ] 

       
      I ran below queries for one of the dataset that was created -

      select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N` where age > 2;
      [
        \{
          "code": 24112,
          "msg": "Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'",
          "query_from_user": "select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N` where age > 2;"
        }
      ]

      but if I run

      select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N`;
      

      The query returns correct result.

      The above behaviour is not observed for dataset with columnar storage.

      Following error is observed in analytics_info.log

      2023-05-17T13:10:56.872+00:00 WARN CBAS.server.QueryServiceServlet [HttpExecutor(port:8095)-4] handleException: unexpected exception: <ud>{"host":"10.123.230.101:8091","path":"/query/service","statement":"select * from `ikwPV7uCY`.`O1yLR57cAOLj2v9`.`OZlt2foRe6azxeW4N` where age > 2;","pretty":false,"mode":"immediate","clientContextID":"b736066f-6b33-4622-8f73-a685ae04aff0","clientType":"ASTERIX","dataverse":null,"format":"CLEAN_JSON","timeout":9223372036854775807,"maxResultReads":1,"planFormat":"JSON","expressionTree":false,"rewrittenExpressionTree":false,"logicalPlan":false,"optimizedLogicalPlan":true,"job":false,"profile":"counts","signature":true,"multiStatement":false,"parseOnly":false,"readOnly":false,"maxWarnings":10,"sqlCompat":false,"scanConsistency":"not_bounded","scanWait":null}</ud>
      java.lang.IllegalArgumentException: ASX1115: Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'
      at org.apache.asterix.common.metadata.DataverseName.createBuiltinDataverseName(DataverseName.java:246) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.getDataSourceFromUnnestMapOperator(OperatorValueAccessPushdownVisitor.java:298) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitUnnestMapOperator(OperatorValueAccessPushdownVisitor.java:218) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitUnnestMapOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestMapOperator.accept(UnnestMapOperator.java:67) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:193) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator.accept(ProjectOperator.java:70) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitSelectOperator(OperatorValueAccessPushdownVisitor.java:432) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitSelectOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.SelectOperator.accept(SelectOperator.java:107) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitAssignOperator(OperatorValueAccessPushdownVisitor.java:239) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitAssignOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator.accept(AssignOperator.java:61) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:193) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitProjectOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.ProjectOperator.accept(ProjectOperator.java:70) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:168) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitInputs(OperatorValueAccessPushdownVisitor.java:620) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitDistributeResultOperator(OperatorValueAccessPushdownVisitor.java:583) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.pushdown.OperatorValueAccessPushdownVisitor.visitDistributeResultOperator(OperatorValueAccessPushdownVisitor.java:97) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.algebra.operators.logical.DistributeResultOperator.accept(DistributeResultOperator.java:64) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.optimizer.rules.PushValueAccessToDataScanRule.rewritePre(PushValueAccessToDataScanRule.java:86) ~[asterix-algebra-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:79) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialOnceRuleController.rewriteWithRuleCollection(SequentialOnceRuleController.java:43) ~[algebricks-compiler-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:92) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runPhysicalOptimizationSets(HeuristicOptimizer.java:122) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:66) ~[algebricks-core-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$CompilerImpl.optimize(HeuristicCompilerFactoryBuilder.java:163) ~[algebricks-compiler-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:268) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:3630) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.translator.QueryTranslator.lambda$handleQuery$2(QueryTranslator.java:4534) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.translator.QueryTranslator.createAndRunJob(QueryTranslator.java:4673) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.translator.QueryTranslator.deliverResult(QueryTranslator.java:4580) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.translator.QueryTranslator.handleQuery(QueryTranslator.java:4550) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:497) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.app.message.ExecuteStatementRequestMessage.handle(ExecuteStatementRequestMessage.java:180) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.messaging.CCMessageBroker.receivedMessage(CCMessageBroker.java:64) ~[asterix-app-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.hyracks.control.cc.work.ApplicationMessageWork.lambda$notifyMessageBroker$0(ApplicationMessageWork.java:68) ~[hyracks-control-cc-7.5.0-4355.jar:7.5.0-4355]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[?:?]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[?:?]
      at java.lang.Thread.run(Thread.java:833) ~[?:?]
      Caused by: org.apache.asterix.common.exceptions.AsterixException: ASX1115: Invalid name for a database object: 'ikwPV7uCY/O1yLR57cAOLj2v9'
      at org.apache.asterix.common.metadata.DataverseName.validatePart(DataverseName.java:289) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.common.metadata.DataverseName.encodeSinglePartNamePartIntoCanonicalForm(DataverseName.java:278) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.common.metadata.DataverseName.createSinglePartName(DataverseName.java:234) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
      at org.apache.asterix.common.metadata.DataverseName.createBuiltinDataverseName(DataverseName.java:244) ~[asterix-common-7.5.0-4355.jar:7.5.0-4355]
      ... 48 more

      Attachments

        Issue Links

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

          Activity

            People

              wail.alkowaileet Wail Alkowaileet
              umang.agrawal Umang
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty