Yingyi Bu created ASTERIXDB-1211:
------------------------------------

             Summary: Malformed metadata record for enforced open index
                 Key: ASTERIXDB-1211
                 URL: https://issues.apache.org/jira/browse/ASTERIXDB-1211
             Project: Apache AsterixDB
          Issue Type: Bug
            Reporter: Yingyi Bu
            Assignee: Ildar Absalyamov
            Priority: Blocker


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

create type Emp as closed {
id:int64,
fname:string,
lname:string,
age:int64,
dept:string
}

create type EmpOpen as open {
id:int64,
age:int64,
dept:string
}

create dataset employee(Emp) primary key id;

create dataset employeeOpen(EmpOpen) primary key id;

create index idx_employee_f_l_name on employeeOpen(fname:string,lname:string) 
enforced;

for $m in dataset Metadata.Index
return $m.SearchKeyType;

Exception:
No getLength implemented for a value of this type UINT16 . 
[NotImplementedException]

I verified that regular open datasets works when there is a list of string on 
the open part.

It seems to me the serialization format of the metadata entry for the enforced 
open index is not right.

This should be a *release blocker* because it seems to affect the metadata 
record format.

The root cause is that "SearchKeyType" is in the open part of the record but 
serialized as if it is in the closed part:
https://github.com/apache/incubator-asterixdb/blob/master/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java#L259



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

Reply via email to