Doris版本: 1.2.5
环境: 生产环境
问题描述: multi catalog方式配置连接clickhouse, sql语句的where条件中, 如果不存在Date类型, 则能查询. 如果包含Date类型则报错类似: Cannot convert string 2023-07-03 00:00:00 to type Date
SQL语句:
select * from catalog_clickhouse.test.test_member where d = '2023-07-03' limit 100;
select * from catalog_clickhouse.test.test_member where d=date_sub(current_date(), 1) limit 100;
报错截图:
能否提供下CK的建表语句,ck版本,jdbc版本,然后explain一下查询的SQL截个图看一下
clickhouse建表语句
分布式表:
CREATE TABLE test.test_member
(
`d` Date COMMENT '日期',
`id` UInt32 COMMENT 'id',
`gender` String COMMENT '性别(男,女,不明)',
......
`params` String COMMENT '自定义拓展字段'
)
ENGINE = Distributed('ch_cluster1', 'test_shard', 'test_member', sipHash64(id));
shard表:
CREATE TABLE test_shard.test_member
(
`d` Date COMMENT '日期',
`id` UInt32 COMMENT 'id',
`gender` String COMMENT '性别(男,女,不明)',
......
`params` String COMMENT '自定义拓展字段'
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/test_shard/test_member/{layer}', '{replica}')
PARTITION BY d
ORDER BY id
SETTINGS index_granularity = 8192
clickhouse版本: version 21.3.6.55
jdbc版本: clickhouse-jdbc-0.3.2-patch11-all.jar
查询的sql: select d,id from catalog_clickhouse.test.test_member where d = ‘2023-07-03’ limit 100;
explain 查询SQL:
PLAN FRAGMENT 0
OUTPUT EXPRS:
`d`
`id`
PARTITION: UNPARTITIONED
""
VRESULT SINK
""
0:VJdbcScanNode
" TABLE: ""test"".""test_member"""
" QUERY: SELECT ""d"", ""id"" FROM ""test"".""test_member"" WHERE (""d"" = '2023-07-03 00:00:00') LIMIT 100"
limit: 100