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

Andrew Sherman resolved IMPALA-12197.
-------------------------------------
    Fix Version/s: Impala 4.3.0
       Resolution: Fixed

> Time Travel Queries on Iceberg tables fail with "ERROR: 
> IllegalArgumentException: null"
> ---------------------------------------------------------------------------------------
>
>                 Key: IMPALA-12197
>                 URL: https://issues.apache.org/jira/browse/IMPALA-12197
>             Project: IMPALA
>          Issue Type: Bug
>    Affects Versions: Impala 2.13.0
>            Reporter: Andrew Sherman
>            Assignee: Andrew Sherman
>            Priority: Critical
>             Fix For: Impala 4.3.0
>
>
> When using local catalog mode, if a runtime filter is being generated for a 
> time travel iceberg table, then a query may fail with "ERROR: 
> IllegalArgumentException: null"
> In the planner an Iceberg table that is being accessed with Time Travel is 
> represented by an IcebergTimeTravelTable object. This object represents a 
> time-based variation on a base table. The Ā IcebergTimeTravelTable may 
> represent a different schema from the base table, it does this by tracking 
> its own set of Columns. As part of generating a runtime filter the 
> isClusteringColumn() method is called on the table. IcebergTimeTravelTable 
> was delegating this call to the base object. In local catalog mode this 
> method is implemented by LocalTable which has a Preconditions check (an 
> assertion) that the column parameter matches the stored column. In this case 
> the check fails as the base table and time travel table have their own 
> distinct set of column objects.
> A possible fix is to have IcebergTimeTravelTable provide its own 
> isClusteringColumn() method. For iceberg there are no clustering columns so 
> this method simply returns false.
> {code}
> I0608 18:19:04.009989 26712 jni-util.cc:288] 
> 30478706c6b2ab5b:ac06893500000000] java.lang.IllegalArgumentException
>     at 
> com.google.common.base.Preconditions.checkArgument(Preconditions.java:131)
>     at 
> org.apache.impala.catalog.local.LocalTable$ColumnMap.isClusteringColumn(LocalTable.java:427)
>     at 
> org.apache.impala.catalog.local.LocalTable.isClusteringColumn(LocalTable.java:286)
>     at 
> org.apache.impala.catalog.local.LocalIcebergTable.isClusteringColumn(LocalIcebergTable.java:59)
>     at 
> org.apache.impala.catalog.ForwardingFeIcebergTable.isClusteringColumn(IcebergTimeTravelTable.java:546)
>     at 
> org.apache.impala.catalog.IcebergTimeTravelTable.isClusteringColumn(IcebergTimeTravelTable.java:70)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.isBoundByPartitionColumns(RuntimeFilterGenerator.java:1088)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.assignRuntimeFilters(RuntimeFilterGenerator.java:964)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateFilters(RuntimeFilterGenerator.java:863)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateFilters(RuntimeFilterGenerator.java:866)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateFilters(RuntimeFilterGenerator.java:866)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateFilters(RuntimeFilterGenerator.java:866)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateFilters(RuntimeFilterGenerator.java:856)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateFilters(RuntimeFilterGenerator.java:866)
>     at 
> org.apache.impala.planner.RuntimeFilterGenerator.generateRuntimeFilters(RuntimeFilterGenerator.java:735)
>     at org.apache.impala.planner.Planner.createPlanFragments(Planner.java:147)
>     at org.apache.impala.planner.Planner.createPlans(Planner.java:251)
>     at 
> org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1772)
>     at 
> org.apache.impala.service.Frontend.getPlannedExecRequest(Frontend.java:2603)
>     at 
> org.apache.impala.service.Frontend.doCreateExecRequest(Frontend.java:2432)
>     at org.apache.impala.service.Frontend.getTExecRequest(Frontend.java:2056)
>     at 
> org.apache.impala.service.Frontend.createExecRequest(Frontend.java:1831)
>     at 
> org.apache.impala.service.JniFrontend.createExecRequest(JniFrontend.java:164)
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org
For additional commands, e-mail: issues-all-h...@impala.apache.org

Reply via email to