mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
string to date is not monotonic
This commit is contained in:
parent
cbe9878e9e
commit
d9de96716a
@ -1518,13 +1518,27 @@ struct ToDateMonotonicity
|
||||
else if (
|
||||
(which.isUInt() && ((left.isNull() || left.get<UInt64>() < 0xFFFF) && (right.isNull() || right.get<UInt64>() >= 0xFFFF)))
|
||||
|| (which.isInt() && ((left.isNull() || left.get<Int64>() < 0xFFFF) && (right.isNull() || right.get<Int64>() >= 0xFFFF)))
|
||||
|| (which.isFloat() && ((left.isNull() || left.get<Float64>() < 0xFFFF) && (right.isNull() || right.get<Float64>() >= 0xFFFF))))
|
||||
|| (which.isFloat() && ((left.isNull() || left.get<Float64>() < 0xFFFF) && (right.isNull() || right.get<Float64>() >= 0xFFFF)))
|
||||
|| !type.isValueRepresentedByNumber())
|
||||
return {};
|
||||
else
|
||||
return {true, true, true};
|
||||
}
|
||||
};
|
||||
|
||||
struct ToDateTimeMonotonicity
|
||||
{
|
||||
static bool has() { return true; }
|
||||
|
||||
static IFunction::Monotonicity get(const IDataType & type, const Field &, const Field &)
|
||||
{
|
||||
if (type.isValueRepresentedByNumber())
|
||||
return {true, true, true};
|
||||
else
|
||||
return {};
|
||||
}
|
||||
};
|
||||
|
||||
/** The monotonicity for the `toString` function is mainly determined for test purposes.
|
||||
* It is doubtful that anyone is looking to optimize queries with conditions `toString(CounterID) = 34`.
|
||||
*/
|
||||
@ -1592,7 +1606,7 @@ using FunctionToInt64 = FunctionConvert<DataTypeInt64, NameToInt64, ToNumberMono
|
||||
using FunctionToFloat32 = FunctionConvert<DataTypeFloat32, NameToFloat32, ToNumberMonotonicity<Float32>>;
|
||||
using FunctionToFloat64 = FunctionConvert<DataTypeFloat64, NameToFloat64, ToNumberMonotonicity<Float64>>;
|
||||
using FunctionToDate = FunctionConvert<DataTypeDate, NameToDate, ToDateMonotonicity>;
|
||||
using FunctionToDateTime = FunctionConvert<DataTypeDateTime, NameToDateTime, PositiveMonotonicity>;
|
||||
using FunctionToDateTime = FunctionConvert<DataTypeDateTime, NameToDateTime, ToDateTimeMonotonicity>;
|
||||
using FunctionToDateTime64 = FunctionConvert<DataTypeDateTime64, NameToDateTime64, UnknownMonotonicity>;
|
||||
using FunctionToUUID = FunctionConvert<DataTypeUUID, NameToUUID, ToNumberMonotonicity<UInt128>>;
|
||||
using FunctionToString = FunctionConvert<DataTypeString, NameToString, ToStringMonotonicity>;
|
||||
|
@ -1,2 +1,3 @@
|
||||
0
|
||||
1970-01-01 2106-02-07 1970-04-11 1970-01-01 2106-02-07
|
||||
1970-01-01 03:00:00 2106-02-07 09:28:15 1970-01-01 03:16:40
|
||||
|
Loading…
Reference in New Issue
Block a user