Zoltán Borók-Nagy created IMPALA-15633:
------------------------------------------

             Summary: Iceberg predicate push down unescapes constant folded 
string literals again
                 Key: IMPALA-15633
                 URL: https://issues.apache.org/jira/browse/IMPALA-15633
             Project: IMPALA
          Issue Type: Bug
          Components: Frontend
            Reporter: Zoltán Borók-Nagy
            Assignee: Arnab Karmakar


IcebergPredicateConverter gets the value of string literals with 
{{StringLiteral.getUnescapedValue()}}. Literals created by constant folding are 
already unescaped, so their backslashes are treated as escape characters again, 
and Iceberg filters on a different value. String literals that are not valid 
UTF-8 make the query fail.

{code:sql}
create table t (s string) partitioned by spec (s) stored as iceberg;
insert into t values (concat('a', chr(92), 'b'));
select count(*) from t where s = concat('a', chr(92), 'b');
-- returns 0, expected 1
select count(*) from t where s = unhex('FF');
-- fails: IllegalStateException: non-utf8 string: unhex("FF")
{code}

Non-partition columns are affected the same way when their predicates are 
pushed down.

Found while working on IMPALA-15629. Master only pushes down predicates to 
Iceberg if one of them is on a partition column, or on a column listed in the 
{{impala.iceberg.push_down_hint}} table property, so the repros use these. 
IMPALA-15629 would push down predicates on any column.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to