From 5ed42705d45bd5e7626be22129fc09a5c4a7a143 Mon Sep 17 00:00:00 2001 From: zy-kkk Date: Tue, 11 Jul 2023 14:04:49 +0800 Subject: [PATCH] [fix](jdbc scan) `1=1` does not translate to `TRUE` (#21688) For most database systems, they recognize where 1=1 but not where true, so we should send the original 1=1 to the database --- .../clickhouse/clickhouse.yaml.tpl | 2 +- .../clickhouse/init/04-insert.sql | 5 +- .../apache/doris/planner/JdbcScanNode.java | 3 + .../test_clickhouse_jdbc_catalog.out | Bin 2583 -> 2710 bytes .../test_mysql_jdbc_catalog.out | 69 +++++++++--------- .../test_oracle_jdbc_catalog.out | 11 +++ .../jdbc_catalog_p0/test_pg_jdbc_catalog.out | 11 +++ .../test_sqlserver_jdbc_catalog.out | 9 +++ .../test_clickhouse_jdbc_catalog.groovy | 3 + .../test_mysql_jdbc_catalog.groovy | 3 + .../test_oracle_jdbc_catalog.groovy | 3 + .../test_pg_jdbc_catalog.groovy | 3 + .../test_sqlserver_jdbc_catalog.groovy | 3 + 13 files changed, 88 insertions(+), 37 deletions(-) diff --git a/docker/thirdparties/docker-compose/clickhouse/clickhouse.yaml.tpl b/docker/thirdparties/docker-compose/clickhouse/clickhouse.yaml.tpl index b9e26d1c21..3832680dea 100644 --- a/docker/thirdparties/docker-compose/clickhouse/clickhouse.yaml.tpl +++ b/docker/thirdparties/docker-compose/clickhouse/clickhouse.yaml.tpl @@ -19,7 +19,7 @@ version: "2.1" services: doris--clickhouse: - image: "clickhouse/clickhouse-server:22.8.15.23-alpine" + image: "clickhouse/clickhouse-server:latest" restart: always environment: CLICKHOUSE_PASSWORD: 123456 diff --git a/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql b/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql index 2e48d12975..9c6785587a 100644 --- a/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql +++ b/docker/thirdparties/docker-compose/clickhouse/init/04-insert.sql @@ -23,7 +23,10 @@ INSERT INTO doris_test.type VALUES INSERT INTO doris_test.number (`k6`, `k7`, `k8`, `k9`, `k10`, `k11`, `k12`, `k13`, `k14`, `k15`, `k16`, `k17`, `k18`, `k19`) VALUES - (-3.4028235e38, -1.7976931348623157e308, -128, -32768, -2147483648, -9223372036854775808, -170141183460469231731687303715884105728, -57896044618658097711785492504343953926634992332820282019728792003956564819968, 0, 0, 0, 0, 0, 0), + (-3.4028235e38, -1.7976931348623157e308, -128, -32768, -2147483648, -9223372036854775808, -170141183460469231731687303715884105728, -57896044618658097711785492504343953926634992332820282019728792003956564819968, 0, 0, 0, 0, 0, 0); +INSERT INTO doris_test.number +(`k6`, `k7`, `k8`, `k9`, `k10`, `k11`, `k12`, `k13`, `k14`, `k15`, `k16`, `k17`, `k18`, `k19`) +VALUES (3.4028235e38, 1.7976931348623157e308, 127, 32767, 2147483647, 9223372036854775807, 170141183460469231731687303715884105727, 57896044618658097711785492504343953926634992332820282019728792003956564819967, 255, 65535, 4294967295, 18446744073709551615, 340282366920938463463374607431768211455, 115792089237316195423570985008687907853269984665640564039457584007913129639935); INSERT INTO doris_test.student values (1, 'doris', 18), (2, 'alice', 19), (3, 'bob', 20); diff --git a/fe/fe-core/src/main/java/org/apache/doris/planner/JdbcScanNode.java b/fe/fe-core/src/main/java/org/apache/doris/planner/JdbcScanNode.java index 77ff2239e1..86cadc847d 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/planner/JdbcScanNode.java +++ b/fe/fe-core/src/main/java/org/apache/doris/planner/JdbcScanNode.java @@ -134,6 +134,9 @@ public class JdbcScanNode extends ExternalScanNode { for (Expr p : conjunctsList) { if (shouldPushDownConjunct(jdbcType, p)) { String filter = conjunctExprToString(jdbcType, p); + if (filter.equals("TRUE")) { + filter = "1 = 1"; + } filters.add(filter); conjuncts.remove(p); } diff --git a/regression-test/data/jdbc_catalog_p0/test_clickhouse_jdbc_catalog.out b/regression-test/data/jdbc_catalog_p0/test_clickhouse_jdbc_catalog.out index aa5dfc654013d4c6554d2c7a41db75cdeab8877a..a677bba662451f86970762031facf7056269b89d 100644 GIT binary patch delta 133 zcmbO(GEH>DA5M<=f};H7)Z*gFUpbWubafRJ(=u~PQi~LHb-B_KbBa?rjSP&8bPWu3 a4UD)-ib|3AhFn|-^+q5Kc;t<-$^!s1<|8Kn delta 11 ScmbOxI$dPLAI{0#T+#p