[ 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