Andrey Gaskov created FLINK-35098:
-------------------------------------
Summary: Incorrect results for queries like "10 >= y" on tables
using Filesystem connector and Orc format
Key: FLINK-35098
URL: https://issues.apache.org/jira/browse/FLINK-35098
Project: Flink
Issue Type: Bug
Components: Connectors / ORC, Formats (JSON, Avro, Parquet, ORC,
SequenceFile)
Affects Versions: 1.18.1, 1.19.0, 1.17.2, 1.16.3, 1.15.4, 1.14.6, 1.13.6,
1.12.7
Reporter: Andrey Gaskov
When working with ORC files, there is an issue with evaluation of SQL queries
containing expressions with a literal as the first operand. Specifically, the
query *10 >= y* does not always return the correct result.
This test added to OrcFileSystemITCase.java fails on the second check:
{code:java}
@TestTemplate
void testOrcFilterPushDownLiteralFirst() throws ExecutionException,
InterruptedException {
super.tableEnv()
.executeSql("insert into orcLimitTable values('a', 10, 10)")
.await();
List<Row> expected = Collections.singletonList(Row.of(10));
check("select y from orcLimitTable where y <= 10", expected);
check("select y from orcLimitTable where 10 >= y", expected);
}
Results do not match for query:
select y from orcLimitTable where 10 >= y
Results
== Correct Result - 1 == == Actual Result - 0 ==
!+I[10] {code}
The checks are equivalent and should evaluate to the same result. But the
second query doesn't return the record with y=10.
The table is defined as:
{code:java}
create table orcLimitTable (
x string,
y int,
a int)
with (
'connector' = 'filesystem',
'path' = '/tmp/junit4374176500101507155/junit7109291529844202275/',
'format'='orc'){code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)