[ 
https://issues.apache.org/jira/browse/HIVE-30123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Denys Kuzmenko updated HIVE-30123:
----------------------------------
    Labels: correctness v3  (was: )

> Iceberg: vectorized read returns wrong row lineage values after the first 
> batch of a file
> -----------------------------------------------------------------------------------------
>
>                 Key: HIVE-30123
>                 URL: https://issues.apache.org/jira/browse/HIVE-30123
>             Project: Hive
>          Issue Type: Bug
>          Components: Iceberg integration
>            Reporter: Denys Kuzmenko
>            Priority: Major
>              Labels: correctness, v3
>
>  - HiveBatchIterator marks "the file has no _row_id column" by setting 
> vector[0] = -1L once, in its constructor 
> (RowLineageUtils.initializeRowLineageColumns).                                
>          
>   - The first batch overwrites vector[0] with a real ID. From the second 
> batch on, the iterator assumes the values came from the file and only fills 
> nulls, so the batch keeps the first batch's IDs.   
>     LAST__UPDATED__SEQUENCE__NUMBER has the same pattern.                     
>                                                                               
>                                             
>   - It affects every V3 file written without _row_id, which includes every 
> freshly inserted file.                                                        
>                                                
>  
> *Repro:* 
> insert 3,000 rows into a V3 table, then compare count(distinct 
> ROW__LINEAGE__ID) with vectorization on and off. Vectorized gives 1,024 
> (0–1023); non-vectorized gives 3,000.  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to