[
https://issues.apache.org/jira/browse/ASTERIXDB-3213?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Wail Y. Alkowaileet updated ASTERIXDB-3213:
-------------------------------------------
Description:
Previously, we used two separate primary key readers
* One for the cursor
*
-- Its position maintained by the cursor
* And one for assembler (if the primary key is requested – like in SELECT *)
*
-- Its position maintained by calling *IColumnValuesReader#skip(int)*
In the previous approach, maintaining the positions of two primary key(s)
readers were messy, as we needed to re-sync the assembler reader with the
cursor PK reader. The reason is that anti-matters are handled at the cursor
level. When anti-matters are processed, they are skipped – making the
assembler PK reader out of sync.
{_}Additionally, maintaining two readers that are decoding the same values
(twice) is unnecessary{_}.
was:
Previously, we used two separate primary key readers
# One for the cursor
- Its position maintained by the cursor
# And one for assembler (if the primary key is requested -- like in SELECT *)
- Its position maintained by calling this skip method
In the previous approach, maintaining the positions of two primary key(s)
readers were messy, as we needed to re-sync the assembler reader with the
cursor PK reader. The reason is that anti-matters are handled at the cursor
level. When anti-matters are processed, they are skipped – making the
assembler PK reader out of sync.
{_}Additionally, maintaining two readers that are decoding the same values
(twice) is unnecessary{_}.
> Use only a single PK reader for both the cursor and the assembler
> -----------------------------------------------------------------
>
> Key: ASTERIXDB-3213
> URL: https://issues.apache.org/jira/browse/ASTERIXDB-3213
> Project: Apache AsterixDB
> Issue Type: Bug
> Components: RT - Runtime
> Affects Versions: 0.9.9
> Reporter: Wail Y. Alkowaileet
> Assignee: Wail Y. Alkowaileet
> Priority: Major
> Fix For: 0.9.9
>
>
> Previously, we used two separate primary key readers
> * One for the cursor
> *
> -- Its position maintained by the cursor
> * And one for assembler (if the primary key is requested – like in SELECT *)
> *
> -- Its position maintained by calling *IColumnValuesReader#skip(int)*
> In the previous approach, maintaining the positions of two primary key(s)
> readers were messy, as we needed to re-sync the assembler reader with the
> cursor PK reader. The reason is that anti-matters are handled at the cursor
> level. When anti-matters are processed, they are skipped – making the
> assembler PK reader out of sync.
> {_}Additionally, maintaining two readers that are decoding the same values
> (twice) is unnecessary{_}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)