[
https://issues.apache.org/jira/browse/ASTERIXDB-3149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wail Y. Alkowaileet resolved ASTERIXDB-3149.
--------------------------------------------
Resolution: Fixed
> Columnar datasets with secondary indexes fail on upsert
> -------------------------------------------------------
>
> Key: ASTERIXDB-3149
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-3149
> Project: Apache AsterixDB
> Issue Type: Bug
> Components: COMP - Compiler
> Affects Versions: 0.9.9
> Reporter: Wail Y. Alkowaileet
> Assignee: Wail Y. Alkowaileet
> Priority: Major
> Fix For: 0.9.9
>
>
> Columnar datasets with secondary indexes currently fail on upsert:
> {code:java}Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 1 out
> of bounds for length 1 at
> org.apache.asterix.column.tuple.AbstractAsterixColumnTupleReference.getFieldData(AbstractAsterixColumnTupleReference.java:103)
> ~[asterix-column-8.0.0-1271.jar:8.0.0-1271] at
> org.apache.asterix.runtime.operators.LSMPrimaryUpsertOperatorNodePushable.appendPrevRecord(LSMPrimaryUpsertOperatorNodePushable.java:375)
> ~[asterix-runtime-8.0.0-1271.jar:8.0.0-1271] at
> org.apache.asterix.runtime.operators.LSMPrimaryUpsertOperatorNodePushable$1.process(LSMPrimaryUpsertOperatorNodePushable.java:180)
> ~[asterix-runtime-8.0.0-1271.jar:8.0.0-1271]{code}
>
> Two bugs were found:
> # lowKey predicate can be greater than a BTree frame (or page zero) highest
> key. However, the columnar cursor still produces tuples from the same frame
> (i.e., hasNext() returns true)
> # The returned tuple from the search is a merge tuple (in other words, the
> tuple is not assembled). Hence, the exception above is thrown.
>
> For (2), the returned tuple should only contain the required fields (or
> columns) to maintain the index. For instance, if there is an index on
> "salary", the returned tuple should only contain the primary key(s) + a
> record with salary information.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)