Indeed, it's a bug! Best, Yingyi
On Thu, Jul 13, 2017 at 9:52 PM, Mike Carey <dtab...@gmail.com> wrote: > Sounds like a bug to me. > > > > On 7/13/17 7:59 PM, Taewoo Kim wrote: > >> Currently, I am working on a field type propagation without using >> initializing the OptimizableSubTree in the current index access method. I >> am encountering an issue with an open-type enforced index. So, I just want >> to make sure that my understanding is correct. It looks like we can't have >> an enforced-index on a completely schemaless nested field. For example, >> the >> following doesn't generate any issue. >> >> // >> create type DBLPType as open {id: int32} >> create type CSXType as closed {id: int32} >> >> create dataset DBLP(DBLPType) primary key id; >> create dataset CSX(CSXType) primary key id; >> >> for $a in dataset('DBLP') >> for $b in dataset('CSX') >> where $a.nested.one.title /*+ indexnl */ = $b.nested.one.title >> return {"arec": $a, "brec": $b} >> // >> >> However, the following generates an exception. So, can we assume that to >> create an enforced-index, except the leaf level, there should be a defined >> record type. For example, for this example, there should be "nested" type >> and "one" type. >> >> // >> create type DBLPType as open {id: int32} >> create type CSXType as closed {id: int32} >> >> create dataset DBLP(DBLPType) primary key id; >> create dataset CSX(CSXType) primary key id; >> >> create index title_index_DBLP on DBLP(nested.one.title: string?) enforced; >> create index title_index_CSX on CSX(nested.one.title: string?) enforced; >> >> for $a in dataset('DBLP') >> for $b in dataset('CSX') >> where $a.nested.one.title /*+ indexnl */ = $b.nested.one.title >> return {"arec": $a, "brec": $b} >> // >> >> Best, >> Taewoo >> >> >