br1ghtyang / asterixdb

Automatically exported from code.google.com/p/asterixdb
0 stars 0 forks source link

NPE during optimization when assigning a sub-sub-aggregation #627

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
The following query cause a NPE failure during the optimization:

drop dataverse test if exists;
create dataverse test;
use dataverse test;

create type Type1 as closed {
  id: int32,
  items: [{
    subid: string,
    value: int32
  }]
}

create type Type2 as closed {
  id: string,
  val: int32
}

create dataset Dataset1(Type1) primary key id;
create dataset Dataset2(Type2) primary key id;

insert into dataset Dataset1 (
  { "id": 1, "items": [ { "subid": "2", "value": 1 }, { "subid": "4", "value": 1111 } ] }
)

insert into dataset Dataset1 (
  { "id": 2, "items": [ { "subid": "0", "value": 1 }, { "subid": "1", "value": 2222 } ] }
)

insert into dataset Dataset2 (
  { "id": "0", "val": 0 }
)

insert into dataset Dataset2 (
  { "id": "1", "val": 1 }
)

insert into dataset Dataset2 (
  { "id": "2", "val": 2 }
)

insert into dataset Dataset2 (
  { "id": "3", "val": 3 }
)

insert into dataset Dataset2 (
  { "id": "4", "val": 4 }
)

let $cs := for $k in dataset Dataset2 return $k
for $i in dataset Dataset1
return {
  "id": $i.id,
  "items": 
    for $k in $cs
    return {
      "subid": $k.id,
      "sum": 
        let $s := sum(
          for $j in $i.items 
          where $j.subid = $k.id 
          return $j.value)
        return $s
    }
}

However if the assignment in the inner-most sub plan is removed as follows, the 
query works:

let $cs := for $k in dataset Dataset2 return $k
for $i in dataset Dataset1
return {
  "id": $i.id,
  "items": 
    for $k in $cs
    return {
      "subid": $k.id,
      "sum": 
        sum(
          for $j in $i.items 
          where $j.subid = $k.id 
          return $j.value)
    }
}

From the exception, it seems that the NPE comes from LoadRecordFieldsRule when 
a scan-collection is inserted, but the type inference is failed.

Original issue reported on code.google.com by jarod...@gmail.com on 4 Sep 2013 at 8:49

GoogleCodeExporter commented 8 years ago

Original comment by jarod...@gmail.com on 18 Nov 2013 at 11:10