diff --git a/common/models/src/predicate/domain.rs b/common/models/src/predicate/domain.rs index 7e4902322..581c01f76 100644 --- a/common/models/src/predicate/domain.rs +++ b/common/models/src/predicate/domain.rs @@ -1718,9 +1718,11 @@ mod tests { &DataType::Float64, &ScalarValue::Float64(Some(3333333333333333.3)), ); + let f4 = Range::ne(&DataType::Float64, &ScalarValue::Float64(Some(4.4))); let domain_1 = Domain::of_ranges(&[f1]).unwrap(); let domain_2 = Domain::of_ranges(&[f2, f3]).unwrap(); + let domain_3 = Domain::of_ranges(&f4).unwrap(); assert!(matches!(domain_1, Domain::Range(_))); @@ -1731,6 +1733,13 @@ mod tests { } _ => false, }); + + assert!(match domain_3 { + Domain::Range(val_set) => { + val_set.low_indexed_ranges.len() == 2 + } + _ => false, + }) } #[test] diff --git a/query_server/test/cases/data_type/type_conversion/timestamp.result b/query_server/test/cases/data_type/type_conversion/timestamp.result index fc16cd54d..ee8b51a9c 100644 --- a/query_server/test/cases/data_type/type_conversion/timestamp.result +++ b/query_server/test/cases/data_type/type_conversion/timestamp.result @@ -46,7 +46,7 @@ physical_plan,"ProjectionExec: expr=[fa@1 as fa] CoalesceBatchesExec: target_batch_size=8192 FilterExec: time@0 != 12345678865 RepartitionExec: partitioning=RoundRobinBatch(8), input_partitions=2 - TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: All}) }, split_num=2, projection=[time,fa] + TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: Range(RangeValueSet { low_indexed_ranges: {Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(12345678865, None)), bound: Below } }, Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(12345678865, None)), bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(12345678865, None)), bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Below } }} })}) }, split_num=2, projection=[time,fa] " -- EXECUTE SQL: explain select fa from test_timestamp_conv where time != 12345678865; -- @@ -59,7 +59,7 @@ physical_plan,"ProjectionExec: expr=[fa@1 as fa] CoalesceBatchesExec: target_batch_size=8192 FilterExec: time@0 != 12345678865 RepartitionExec: partitioning=RoundRobinBatch(8), input_partitions=2 - TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: All}) }, split_num=2, projection=[time,fa] + TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: Range(RangeValueSet { low_indexed_ranges: {Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(12345678865, None)), bound: Below } }, Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(12345678865, None)), bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(12345678865, None)), bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Below } }} })}) }, split_num=2, projection=[time,fa] " -- EXECUTE SQL: explain select fa from test_timestamp_conv where time < 12345678865; -- @@ -153,7 +153,7 @@ physical_plan,"ProjectionExec: expr=[fa@1 as fa] CoalesceBatchesExec: target_batch_size=8192 FilterExec: time@0 != 854702816123000000 RepartitionExec: partitioning=RoundRobinBatch(8), input_partitions=2 - TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: All}) }, split_num=2, projection=[time,fa] + TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: Range(RangeValueSet { low_indexed_ranges: {Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(854702816123000000, None)), bound: Below } }, Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(854702816123000000, None)), bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(854702816123000000, None)), bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Below } }} })}) }, split_num=2, projection=[time,fa] " -- EXECUTE SQL: explain select fa from test_timestamp_conv where time != '1997-01-31T09:26:56.123'; -- @@ -166,7 +166,7 @@ physical_plan,"ProjectionExec: expr=[fa@1 as fa] CoalesceBatchesExec: target_batch_size=8192 FilterExec: time@0 != 854702816123000000 RepartitionExec: partitioning=RoundRobinBatch(8), input_partitions=2 - TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: All}) }, split_num=2, projection=[time,fa] + TskvExec: limit=None, predicate=ColumnDomains { column_to_domain: Some({Column { relation: None, name: ""time"" }: Range(RangeValueSet { low_indexed_ranges: {Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(854702816123000000, None)), bound: Below } }, Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(854702816123000000, None)), bound: Above }: Range { low: Marker { data_type: Timestamp(Nanosecond, None), value: Some(TimestampNanosecond(854702816123000000, None)), bound: Above }, high: Marker { data_type: Timestamp(Nanosecond, None), value: None, bound: Below } }} })}) }, split_num=2, projection=[time,fa] " -- EXECUTE SQL: explain select fa from test_timestamp_conv where time < '1997-01-31 09:26:56.123-05:00'; --