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

Denys Kuzmenko updated HIVE-30123:
----------------------------------
    Description: 
 - 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.  

> 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
>            Reporter: Denys Kuzmenko
>            Priority: Major
>
>  - 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