提交 312515aa 编写于 作者: A Anton Popov 提交者: Nikolai Kochetov

Merge pull request #10791 from oandrew/key-condition-source-type

Use src_type for conversion in KeyCondition

(cherry picked from commit a1333895)
上级 5a1cef88
......@@ -741,8 +741,7 @@ static void castValueToType(const DataTypePtr & desired_type, Field & src_value,
try
{
/// NOTE: We don't need accurate info about src_type at this moment
src_value = convertFieldToType(src_value, *desired_type);
src_value = convertFieldToType(src_value, *desired_type, src_type.get());
}
catch (...)
{
......
['2020-01-01 10:00:00']
['2020-01-02 00:00:00']
['2020-01-01 00:00:00','2020-01-01 10:00:00']
['2020-01-01 00:00:00','2020-01-01 10:00:00','2020-01-02 00:00:00']
['2020-01-01 00:00:00','2020-01-01 10:00:00','2020-01-02 00:00:00']
['2020-01-01 00:00:00','2020-01-01 10:00:00','2020-01-02 00:00:00']
['2020-01-01 00:00:00','2020-01-01 10:00:00','2020-01-02 00:00:00']
[]
[]
[]
DROP TABLE IF EXISTS test.date_datetime_key_condition;
CREATE TABLE test.date_datetime_key_condition (dt DateTime) ENGINE = MergeTree() ORDER BY dt;
INSERT INTO test.date_datetime_key_condition VALUES ('2020-01-01 00:00:00'), ('2020-01-01 10:00:00'), ('2020-01-02 00:00:00');
-- partial
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt > toDate('2020-01-01') AND dt < toDate('2020-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt >= toDate('2020-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt < toDate('2020-01-02');
-- inside
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt > toDate('2019-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt < toDate('2021-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt >= toDate('2019-01-02') AND dt < toDate('2021-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt > toDate('2019-01-02') OR dt <= toDate('2021-01-02');
-- outside
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt < toDate('2019-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt > toDate('2021-01-02');
SELECT groupArray(dt) from test.date_datetime_key_condition WHERE dt < toDate('2019-01-02') OR dt > toDate('2021-01-02');
DROP TABLE test.date_datetime_key_condition;
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册