-
Notifications
You must be signed in to change notification settings - Fork 8.6k
Description
Database Type
postgresql
Database Version
postgresql 15
Druid Version
1.2.21
JDK Version
OpenJDK 8
Error SQL
sql例子:
修改前: SELECT "md"."nodeName","md"."formId","md"."ownerType",CASE WHEN ((CASE WHEN (jsonb_path_exists("md"."dynamicData",?::jsonpath)) THEN 1 ELSE 0 END) = ? OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?) THEN ? ELSE "md"."dynamicData" #>> ?::text[] END AS "supportPositionCols","md"."addTime","md"."addUserId","md"."lastUpdateUserId","md"."ownerId",CASE WHEN ((CASE WHEN (jsonb_path_exists("md"."dynamicData",?::jsonpath)) THEN 1 ELSE 0 END) = ? OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?) THEN ? ELSE "md"."dynamicData" #>> ?::text[] END AS "title",CASE WHEN ((CASE WHEN (jsonb_path_exists("md"."dynamicData",?::jsonpath)) THEN 1 ELSE 0 END) = ? OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?) THEN ? ELSE "md"."dynamicData" #>> ?::text[] END AS "field1jcr8g98m","md"."dataId","md"."appId",CASE WHEN ((CASE WHEN (jsonb_path_exists("md"."dynamicData",?::jsonpath)) THEN 1 ELSE 0 END) = ? OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?) THEN ? ELSE "md"."dynamicData" #>> ?::text[] END AS "field1jcr8aulu",CASE WHEN ((CASE WHEN (jsonb_path_exists("md"."dynamicData",?::jsonpath)) THEN 1 ELSE 0 END) = ? OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?) THEN ? ELSE "md"."dynamicData" #>> ?::text[] END AS "field1jcr8avk4","md"."flowStatus","md"."nodeId","md"."lastUpdateTime" FROM form_data_rows AS md WHERE "md"."appId" = ? AND "md"."formId" = ? ORDER BY (CASE WHEN ((CASE WHEN (jsonb_path_exists("md"."dynamicData",?::jsonpath)) THEN 1 ELSE 0 END) = ? OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?) THEN ? ELSE "md"."dynamicData" #>> ?::text[] END)::text COLLATE "zh-Hans-x-icu" DESC LIMIT ?
修改后: SELECT "md"."nodeName", "md"."formId", "md"."ownerType"
, CASE
WHEN CASE
WHEN jsonb_path_exists("md"."dynamicData", ?::jsonpath) THEN 1
ELSE 0
END = ?
OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?
THEN ?
ELSE "md"."dynamicData" #>> ?::text[]
END AS "supportPositionCols", "md"."addTime", "md"."addUserId", "md"."lastUpdateUserId", "md"."ownerId"
, CASE
WHEN CASE
WHEN jsonb_path_exists("md"."dynamicData", ?::jsonpath) THEN 1
ELSE 0
END = ?
OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?
THEN ?
ELSE "md"."dynamicData" #>> ?::text[]
END AS "title"
, CASE
WHEN CASE
WHEN jsonb_path_exists("md"."dynamicData", ?::jsonpath) THEN 1
ELSE 0
END = ?
OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?
THEN ?
ELSE "md"."dynamicData" #>> ?::text[]
END AS "field1jcr8g98m", "md"."dataId", "md"."appId"
, CASE
WHEN CASE
WHEN jsonb_path_exists("md"."dynamicData", ?::jsonpath) THEN 1
ELSE 0
END = ?
OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?
THEN ?
ELSE "md"."dynamicData" #>> ?::text[]
END AS "field1jcr8aulu"
, CASE
WHEN CASE
WHEN jsonb_path_exists("md"."dynamicData", ?::jsonpath) THEN 1
ELSE 0
END = ?
OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?
THEN ?
ELSE "md"."dynamicData" #>> ?::text[]
END AS "field1jcr8avk4", "md"."flowStatus", "md"."nodeId", "md"."lastUpdateTime"
FROM form_data_rows md
WHERE "md"."appId" = ?
AND "md"."formId" = ?
AND ("md"."ownerType" = ?
AND "md"."ownerId" = ?
AND "md"."isDeleted" = 0)
ORDER BY CASE
WHEN CASE
WHEN jsonb_path_exists("md"."dynamicData", ?::jsonpath) THEN 1
ELSE 0
END = ?
OR upper(jsonb_typeof("md"."dynamicData" #> ?::text[])) = ?
THEN ?
ELSE "md"."dynamicData" #>> ?::text[]
END::text DESC
LIMIT ?
无执行错误,只是从SQLStatement 到sql发生语句丢失
debug了下从sql到 SQLStatement 后order by items 中的COLLATE 就丢失了
Testcase Code
No response
Stacktrace Info
No response
Error Info
No response