Jianfeng Jia created ASTERIXDB-1202:
---------------------------------------

             Summary: StackOverflow when using LSM-filter with two more index 
on the dataset
                 Key: ASTERIXDB-1202
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1202
             Project: Apache AsterixDB
          Issue Type: Bug
          Components: Optimizer, Storage
            Reporter: Jianfeng Jia


I plan to use the LSM filter on a field. It works fine if there is only one  
secondary index. However, if there are two secondary indexes on the dataset, 
the "with filter on" statement will throw a StackOverflow exception.

{code}
drop dataverse test if exists;
create dataverse test;

use dataverse test;

create type FacebookMessageType as closed {
        message-id: int64,
        author-id: int64,
        in-response-to: int64?,
        sender-location: point,
        message: string,
        send-time: datetime
}

create dataset FacebookMessages(FacebookMessageType)
primary key message-id with filter on send-time;
create index idxa on FacebookMessages(in-response-to) type btree;
create index idxb on FacebookMessages(sender-location) type rtree;


use dataverse test;
insert into dataset FacebookMessages 
({"message-id":1,"author-id":3,"in-response-to":2,"sender-location":point("47.16,77.75"),"message":"
 love sprint its shortcut-menu is 
awesome:)","send-time":datetime("2012-01-20T10:10:00")}
)
{code}

The exception is following:
{code}
java.lang.StackOverflowError
  at 
org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.UsedVariableVisitor.visitAssignOperator(UsedVariableVisitor.java:75)
  at 
org.apache.hyracks.algebricks.core.algebra.operators.logical.AssignOperator.accept(AssignOperator.java:64)
  at 
org.apache.hyracks.algebricks.core.algebra.operators.logical.visitors.VariableUtilities.getUsedVariables(VariableUtilities.java:40)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:95)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
  at 
org.apache.asterix.optimizer.rules.RemoveUnusedOneToOneEquiJoinRule.removeUnusedJoin(RemoveUnusedOneToOneEquiJoinRule.java:112)
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to