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)

Reply via email to