[ 
https://issues.apache.org/jira/browse/ASTERIXDB-2436?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Till reassigned ASTERIXDB-2436:
-------------------------------

    Assignee: Dmitry Lychagin

> AsterixIntroduceGroupByCombinerRule causes infinite loop in optimization
> ------------------------------------------------------------------------
>
>                 Key: ASTERIXDB-2436
>                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-2436
>             Project: Apache AsterixDB
>          Issue Type: Bug
>            Reporter: Xikui Wang
>            Assignee: Dmitry Lychagin
>            Priority: Major
>
> It's because the rule tries to modify the plan. If the rule failed, the rule 
> restores the backed up copy. This will change the Operators in the plan which 
> doesn't match the DoNotApply list which will further cause the rule to be 
> applied multiple times.
> {code}
> drop  dataverse test if exists;
> create  dataverse test;
> use test;
> create type TweetType as open {
>   id : int64,
>   created_at : datetime
> };
> create type StoredTweetType as open {
>   tid : uuid
> };
> drop dataset ReligiousBuildingDataset if exists;
> drop type ReligiousBuildingType if exists;
> create type ReligiousBuildingType as open {
>     religiousBuildingId : string,
>     religionName : string,
>     buildingLocation : point,
>     registeredBeliever: int
> };
> create dataset ReligiousBuildingDataset(ReligiousBuildingType) primary key 
> religiousBuildingId;
> drop dataset AttackEventsDataset if exists;
> drop type AttackEventsType if exists;
> create type AttackEventsType as open {
>     attackRecordId: string,
>     attackDatetime: datetime,
>     attackLocation: point,
>     relatedReligion: string
> };
> create dataset AttackEventsDataset(AttackEventsType) primary key 
> attackRecordId;
> create function annotateTweet(x) {
>     LET nearby_religious_building = (select r.religionName as Religion from 
> ReligiousBuildingDataset r
>     where spatial_intersect(create_point(x.latitude, x.longitude), 
> create_circle(r.buildingLocation, 3.0))),
>     nearby_religious_attack = (select Religion, count(a.attackRecordId) as 
> AttackNum
>        from AttackEventsDataset a, nearby_religious_building r2
>        where x.created_at  < a.attackDatetime + duration("P2M")
>        and x.created_at  > a.attackDatetime
>        and r2.religionName = a.relatedReligion
>        group by r2.religionName as Religion)
>     select x.*, nearby_religious_attack
> };
> create dataset targetDataset(StoredTweetType) primary key tid autogenerated;
> create dataset tweetDataset(TweetType) primary key id;
> use test;
> insert into targetDataset (select annotateTweet(x) from tweetDataset x);
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to