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

Backport: Unable to filter Dataset on document keys

    XMLWordPrintable

Details

    • Untriaged
    • Unknown
    • CX Sprint 167

    Description

      Currently, the only way to filter out a dataset from a dataverse is only via a field in the document body. The following example of CREATE DATASET statement works fine:

      CREATE DATASET `beer-dataset1` on `beer-sample` where `country` LIKE "Bel%";
      

      However, we always advise customers to model their buckets to have meaningful document keys. This would mean that one of the requirements for the customer is to filter datasets based on document keys and not just fields. The following Analytics query work but connect link after dataset creation results in a compilation error:

      CREATE DATASET `brew` on `beer-sample` where meta().id like "%512%";
      CONNECT LINK Local;

      Compilation error:

      [
        {
          "code": 22001,
          "msg": "Connect link failed {\"Default.Local.beer-sample\" : \"Compilation error: Cannot resolve to ambiguity on the meta function call -- there are more than one dataset choices! (in line 1, at column 1)\"}",
          "query_from_user": "CONNECT LINK Local;"
        }
      ]
      

      ==> analytics_debug.log <==
      2018-12-04T09:04:04.438Z DEBU CBAS.active.ActiveNotificationHandler [QueryTranslator] Listener found: {"class":"BucketEventsListener""entityId":"Default.Local.travel-sample(CouchbaseMetadataExtension)""state":"STOPPED"}
      2018-12-04T09:04:04.439Z DEBU CBAS.active.ActiveNotificationHandler [QueryTranslator] getActiveEntityListener(EntityId entityId) was called with entity Default.Local.travel-sample(CouchbaseMetadataExtension)
      2018-12-04T09:04:04.440Z DEBU CBAS.active.ActiveNotificationHandler [QueryTranslator] Listener found: {"class":"BucketEventsListener""entityId":"Default.Local.travel-sample(CouchbaseMetadataExtension)""state":"STOPPED"}
      2018-12-04T09:04:04.440Z DEBU CBAS.active.ActiveEntityEventsListener [QueryTranslator] State of Default.Local.travel-sample(CouchbaseMetadataExtension)is being set to STARTING from STOPPED
      2018-12-04T09:04:04.446Z DEBU CBAS.work.WorkQueue [Worker:ClusterController] Executing: GetNodeControllersInfo
      2018-12-04T09:04:04.458Z DEBU CBAS.active.ActiveEntityEventsListener [QueryTranslator] State of Default.Local.travel-sample(CouchbaseMetadataExtension)is being set to STOPPED from STARTING
      2018-12-04T09:04:04.473Z DEBU CBAS.work.WorkQueue [Worker:2e70a01ab4787329a41cb61a238c9014] Executing: ApplicationMessage: nodeId: 2e70a01ab4787329a41cb61a238c9014
      2018-12-04T09:04:07.587Z DEBU CBAS.work.WorkQueue [Worker:ClusterController] Executing: ApplicationMessage: nodeID: 2e70a01ab4787329a41cb61a238c9014
      2018-12-04T09:04:07.588Z DEBU CBAS.work.WorkQueue [Worker:2e70a01ab4787329a41cb61a238c9014] Executing: ApplicationMessage: nodeId: 2e70a01ab4787329a41cb61a238c9014
      2018-12-04T09:04:09.160Z DEBU CBAS.work.WorkQueue [Worker:ClusterController] Executing: RemoveDeadNodes
       
      ==> analytics_error.log <==
      	at org.apache.asterix.optimizer.rules.MetaFunctionToMetaVariableRule.rewritePre(MetaFunctionToMetaVariableRule.java:68) ~[asterix-algebra.jar:6.0.0-1693]
      	at org.apache.hyracks.algebricks.core.rewriter.base.AbstractRuleController.rewriteOperatorRef(AbstractRuleController.java:90) ~[algebricks-core.jar:6.0.0-1693]
      	at org.apache.hyracks.algebricks.compiler.rewriter.rulecontrollers.SequentialFixpointRuleController.rewriteWithRuleCollection(SequentialFixpointRuleController.java:53) ~[algebricks-compiler.jar:6.0.0-1693]
      	at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.runOptimizationSets(HeuristicOptimizer.java:102) ~[algebricks-core.jar:6.0.0-1693]
      	at org.apache.hyracks.algebricks.core.rewriter.base.HeuristicOptimizer.optimize(HeuristicOptimizer.java:82) ~[algebricks-core.jar:6.0.0-1693]
      	at org.apache.hyracks.algebricks.compiler.api.HeuristicCompilerFactoryBuilder$1$1.optimize(HeuristicCompilerFactoryBuilder.java:90) ~[algebricks-compiler.jar:6.0.0-1693]
      	at org.apache.asterix.api.common.APIFramework.compileQuery(APIFramework.java:252) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.asterix.app.translator.QueryTranslator.rewriteCompileQuery(QueryTranslator.java:1982) ~[asterix-app.jar:6.0.0-1693]
      	at com.couchbase.analytics.lang.ConnectLinkStatement.doConnect(ConnectLinkStatement.java:512) ~[cbas-connector.jar:6.0.0-1693]
      	... 15 more
       
      ==> analytics_info.log <==
      	at com.couchbase.analytics.lang.ConnectionStatement.handle(ConnectionStatement.java:56) ~[cbas-connector.jar:6.0.0-1693]
      	at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:411) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.asterix.app.message.ExecuteStatementRequestMessage.handle(ExecuteStatementRequestMessage.java:136) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.asterix.messaging.CCMessageBroker.receivedMessage(CCMessageBroker.java:66) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.hyracks.control.cc.work.ApplicationMessageWork$1.run(ApplicationMessageWork.java:55) ~[hyracks-control-cc.jar:6.0.0-1693]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
      	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
      2018-12-04T09:04:07.587Z INFO CBAS.messaging.CCMessageBroker [Executor-3:ClusterController] Received message: com.couchbase.analytics.messaging.ShadowingStatsRequest@23520c74
      2018-12-04T09:04:07.588Z INFO CBAS.messaging.NCMessageBroker [Worker:2e70a01ab4787329a41cb61a238c9014] Received message: com.couchbase.analytics.messaging.ShadowingStatsResponse@107bc78c
       
      ==> analytics_warn.log <==
      com.couchbase.analytics.common.exceptions.AnalyticsHyracksException: CBAS0029: Connect link failed {"Default.Local.travel-sample" : "Compilation error: Cannot resolve to ambiguity on the meta function call -- there are more than one dataset choices! (in line 1, at column 1)"}
      	at com.couchbase.analytics.lang.ConnectLinkStatement.doHandle(ConnectLinkStatement.java:360) ~[cbas-connector.jar:6.0.0-1693]
      	at com.couchbase.analytics.lang.ConnectionStatement.handle(ConnectionStatement.java:56) ~[cbas-connector.jar:6.0.0-1693]
      	at org.apache.asterix.app.translator.QueryTranslator.compileAndExecute(QueryTranslator.java:411) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.asterix.app.message.ExecuteStatementRequestMessage.handle(ExecuteStatementRequestMessage.java:136) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.asterix.messaging.CCMessageBroker.receivedMessage(CCMessageBroker.java:66) ~[asterix-app.jar:6.0.0-1693]
      	at org.apache.hyracks.control.cc.work.ApplicationMessageWork$1.run(ApplicationMessageWork.java:55) ~[hyracks-control-cc.jar:6.0.0-1693]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_181]
      	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
      

      Attachments

        Issue Links

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

          Activity

            People

              ali.alsuliman Ali Alsuliman
              abhishek.jindal Abhishek Jindal
              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