[ 
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)

Reply via email to