[ https://issues.apache.org/jira/browse/ASTERIXDB-1463?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15418277#comment-15418277 ]
ASF subversion and git services commented on ASTERIXDB-1463: ------------------------------------------------------------ Commit bd3a535b171a5cc7486175f159048cf64b16c840 in asterixdb's branch refs/heads/master from [~buyingyi] [ https://git-wip-us.apache.org/repos/asf?p=asterixdb.git;h=bd3a535 ] ASTERIXDB-1463: add a regression test. Change-Id: Iaf3a5a616799af2ee58ba559e1dc1db8b6e010ad Reviewed-on: https://asterix-gerrit.ics.uci.edu/1067 Sonar-Qube: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Tested-by: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Reviewed-by: Jianfeng Jia <jianfeng....@gmail.com> Integration-Tests: Jenkins <jenk...@fulliautomatix.ics.uci.edu> > Could not resolve type for function-call: field-access-by-name > -------------------------------------------------------------- > > Key: ASTERIXDB-1463 > URL: https://issues.apache.org/jira/browse/ASTERIXDB-1463 > Project: Apache AsterixDB > Issue Type: Bug > Components: Optimizer > Reporter: Jianfeng Jia > Assignee: Yingyi Bu > > The query is a bit long: > {code} > use dataverse twitter > let $common := ( > for $t in dataset twitter.ds_tweet_help > where similarity-jaccard(word-tokens($t."text"), word-tokens("help")) > 0.0 > where > ($t."create_at">= datetime("2012-02-01T00:00:00.000Z") > and $t."create_at" < datetime("2016-05-23T14:00:57.000Z")) > let $set := [ > 37,51,24,11,10,34,42,9,44,48,35,4,40,6,20,32,8,49,12,22,28,1,13,45,5,47,21,29,54,17,18,39,19,55,26,27,31,56,41,46,16,30,53,38,25,36,50,33,23,2 > ] > for $sid in $set > where $t.geo_tag.stateID = $sid > return $t > ) > let $hashtag := ( > for $t in $common > where not(is-null($t.hashtags)) > for $h in $t.hashtags > group by $tag := $h with $h > let $c := count($h) > order by $c desc > limit 50 > return { "key": $tag, "count" : $c} > ) > return $hashtag > {code} > It throws the following error: > {code} > SEVERE: Could not resolve type for function-call: asterix:scan-collection, > Args:[function-call: asterix:field-access-by-name, Args:[%0->$$0, AString: > {hashtags}]],please check whether the used variables has been defined! > org.apache.hyracks.algebricks.common.exceptions.AlgebricksException: Could > not resolve type for function-call: asterix:scan-collection, > Args:[function-call: asterix:field-access-by-name, Args:[%0->$$0, AString: > {hashtags}]],please check whether the used variables has been defined! > at > org.apache.hyracks.algebricks.core.algebra.typing.AbstractTypeEnvironment.getType(AbstractTypeEnvironment.java:48) > at > org.apache.hyracks.algebricks.core.algebra.operators.logical.UnnestOperator.computeOutputTypeEnvironment(UnnestOperator.java:51) > at > org.apache.hyracks.algebricks.core.rewriter.base.AlgebricksOptimizationContext.computeAndSetTypeEnvironmentForOperator(AlgebricksOptimizationContext.java:295) > at > org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil.typeOpRec(OperatorPropertiesUtil.java:256) > at > org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil.typeOpRec(OperatorPropertiesUtil.java:249) > at > org.apache.hyracks.algebricks.core.algebra.util.OperatorPropertiesUtil.typeOpRec(OperatorPropertiesUtil.java:249) > ..... > Caused by: java.lang.NullPointerException > at > org.apache.asterix.om.util.NonTaggedFormatUtil.isOptional(NonTaggedFormatUtil.java:105) > > > at > org.apache.asterix.om.typecomputer.impl.NonTaggedCollectionMemberResultType.computeType(NonTaggedCollectionMemberResultType.java:46) > at > org.apache.asterix.dataflow.data.common.AqlExpressionTypeComputer.getTypeForFunction(AqlExpressionTypeComputer.java:86) > at > org.apache.asterix.dataflow.data.common.AqlExpressionTypeComputer.getType(AqlExpressionTypeComputer.java:57) > at > org.apache.hyracks.algebricks.core.algebra.typing.AbstractTypeEnvironment.getType(AbstractTypeEnvironment.java:46) > {code} > The ddl is following > {code} > create dataverse twitter if not exists; > use dataverse twitter > create type typeUser if not exists as open { > id: int64, > name: string, > screen_name : string, > lang : string, > location: string, > create_at: date, > description: string, > followers_count: int32, > friends_count: int32, > statues_count: int64 > } > create type typePlace if not exists as open{ > country : string, > country_code : string, > full_name : string, > id : string, > name : string, > place_type : string, > bounding_box : rectangle > } > create type typeGeoTag if not exists as open { > stateID: int32, > stateName: string, > countyID: int32, > countyName: string, > cityID: int32?, > cityName: string? > } > create type typeTweet if not exists as open{ > create_at : datetime, > id: int64, > "text": string, > in_reply_to_status : int64, > in_reply_to_user : int64, > favorite_count : int64, > coordinate: point?, > retweet_count : int64, > lang : string, > is_retweet: boolean, > hashtags : {{ string }} ?, > user_mentions : {{ int64 }} ? , > user : typeUser, > place : typePlace?, > geo_tag: typeGeoTag > } > create dataset ds_tweet(typeTweet) if not exists primary key id; > //with filter on create_at; > //"using" "compaction" "policy" CompactionPolicy ( Configuration )? )? > create index text_idx if not exists on ds_tweet("text") type keyword; > create index location_idx if not exists on ds_tweet(coordinate) type rtree; > create index time_idx if not exists on ds_tweet(create_at) type btree; > create index state_idx if not exists on ds_tweet(geo_tag.stateID) type btree; > create index county_idx if not exists on ds_tweet(geo_tag.countyID) type > btree; > create index city_idx if not exists on ds_tweet(geo_tag.cityID) type btree; > {code} > The interesting finding is that if I change the order of these where clauses > in the {{$common}} part it will work well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)