Describe the unexpected behaviour
Not sure if it is a bug but we encounter a very strange issue when using the same field 2 times in a where clause.
Basically : field = <> and toYear(field)= <>
How to reproduce
Create table statement :
DROP TABLE IF EXISTS datasources.cal_pace_strange2;
CREATE TABLE datasources.cal_pace_strange2
(
`htl_id` UInt32,
`stay_date` Date,
`snpdate` Date,
`leadtime` String,
`los` String,
`mkt_id` String,
`sob_id` String,
`res_status_id` String,
`rt_id` String,
`cur` String,
`rns` Decimal(9, 4),
`arrivals` Decimal(9, 4),
`departures` Decimal(9, 4),
`adults` Decimal(9, 4),
`children` Decimal(9, 4),
`rm_rev` Decimal(18, 10),
`fd_rev` Decimal(18, 10),
`oth_rev` Decimal(18, 10),
`tot_rev` Decimal(18, 10)
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(snpdate)
ORDER BY (htl_id, stay_date, snpdate)
SETTINGS index_granularity = 8192;
Load the data using the attached SQL inserts.
This query returns 0 results :
select * from cal_pace_strange2 where snpdate='2020-06-09' and htl_id=66 and stay_date='2020-10-02' and toYear(stay_date) = 2020;
This one return the correct results :
select * from cal_pace_strange2 where snpdate='2020-06-09' and htl_id=66 and stay_date='2020-10-02'
Same behavior occurs in 20.4.3 and 20.4.4
Expected behavior :
Both queries should return the same results.
The issue reproduces.
@filimonov
@CurtizJ checked that version 20.3 is not affected.
I was checking that, but it's possible i've messed up smth.
Most helpful comment
The issue reproduces.