Hi devs, I submitted an issue 1201 which happens on the master (48706305724f6e2580b5a6716a709cebce2b40c0). But it’s not reproducible in the the latest master. Basically, it built an RTree index on an nullable field. It was complain about the NULL values in the older version. I’m wondering if anyone fix this problem intentionally. If so, what’s the meaning of NULL as to the RTree index?
> On Nov 30, 2015, at 2:11 PM, Ian Maxon (JIRA) <[email protected]> wrote: > > > [ > https://issues.apache.org/jira/browse/ASTERIXDB-1201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15032586#comment-15032586 > ] > > Ian Maxon commented on ASTERIXDB-1201: > -------------------------------------- > > I'm kind of concerned the bug was fixed by my changes though... Does the > RTree appear to work the same as the one built through insertion? I did not > try an index on a with nullable field in my verification. Why do we even > attempt to store a key with a NULL spatial attribute in the secondary RTree, > anyway? From a naive perspective I don't see how it would make sense. > >> RTree built on the optional field refuses to load the NULL value when >> executing the bulk load >> --------------------------------------------------------------------------------------------- >> >> Key: ASTERIXDB-1201 >> URL: https://issues.apache.org/jira/browse/ASTERIXDB-1201 >> Project: Apache AsterixDB >> Issue Type: Bug >> Components: Storage >> Reporter: Jianfeng Jia >> Assignee: Ian Maxon >> >> When I build a RTree index on an optional field, it will throw "Value >> provider for type NULL is not implemented" exception when operates the bulk >> load. >> Here is the reproducible script: >> {code} >> drop dataverse test if exists; >> create dataverse test; >> use dataverse test; >> create type t_record as closed { >> fa : int64, >> fb: int64?, >> fc : point? >> } >> create dataset ds_set (t_record) primary key fa; >> create index bidx on ds_set(fb) type btree; >> create index cidx on ds_set(fc) type rtree; >> insert into dataset ds_set ( [{"fa":1}, {"fa":2, "fb":3}, {"fa":3, >> "fc":point("4.0,5.0")}]); >> load dataset ds_set >> using localfs >> (("path"="172.17.0.2:///data/twitter/test.adm"),("format"="adm")); >> {code} >> The "insert" and "load" statements are run separately. >> The test.adm uses the same three records: >> {code} >> {"fa":1} >> {"fa":2, "fb":3} >> {"fa":3, "fc":point("4.0,5.0") >> {code} >> The insert statement works fine. The error happens in the "load" statement >> only: >> {code} >> Caused by: >> org.apache.hyracks.algebricks.common.exceptions.NotImplementedException: >> Value provider for type NULL is not implemented >> at >> org.apache.asterix.dataflow.data.nontagged.valueproviders.AqlPrimitiveValueProviderFactory$1.getValue(AqlPrimitiveValueProviderFactory.java:64) >> at >> org.apache.hyracks.storage.am.rtree.frames.RTreeNSMFrame.adjustMBRImpl(RTreeNSMFrame.java:132) >> at >> org.apache.hyracks.storage.am.rtree.frames.RTreeNSMFrame.adjustMBR(RTreeNSMFrame.java:153) >> at >> org.apache.hyracks.storage.am.rtree.impls.RTree$RTreeBulkLoader.propagateBulk(RTree.java:954) >> at >> org.apache.hyracks.storage.am.rtree.impls.RTree$RTreeBulkLoader.end(RTree.java:937) >> at >> org.apache.hyracks.storage.am.lsm.rtree.impls.LSMRTree$LSMRTreeBulkLoader.end(LSMRTree.java:584) >> at >> org.apache.hyracks.storage.am.common.dataflow.IndexBulkLoadOperatorNodePushable.close(IndexBulkLoadOperatorNodePushable.java:107) >> ... 7 more >> {code} >> The BTree index works fine if I remove the RTree index. > > > > -- > This message was sent by Atlassian JIRA > (v6.3.4#6332) Best, Jianfeng Jia PhD Candidate of Computer Science University of California, Irvine
