From d9264043bbdc8f744ed6474f276f0f957d1eac97 Mon Sep 17 00:00:00 2001 From: Luciano Fiandesio Date: Sun, 26 Jan 2025 19:53:06 +0100 Subject: [PATCH] fix: PI functions and program to handle Doris/CH double type (#19769) --- .../src/main/java/org/hisp/dhis/program/function/D2Zpvc.java | 3 ++- .../main/java/org/hisp/dhis/program/variable/vValueCount.java | 3 ++- .../org/hisp/dhis/program/variable/vZeroPosValueCount.java | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/function/D2Zpvc.java b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/function/D2Zpvc.java index fb5efbdc0de7..524d8e39d491 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/function/D2Zpvc.java +++ b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/function/D2Zpvc.java @@ -56,6 +56,7 @@ public Object getSql(ExprContext ctx, CommonExpressionVisitor visitor) { sql += "case when " + visitor.visitAllowingNulls(c) + " >= 0 then 1 else 0 end + "; } - return TextUtils.removeLast(sql, "+").trim() + ") as double precision),0)"; + return TextUtils.removeLast(sql, "+").trim() + + ") as %s),0)".formatted(visitor.getSqlBuilder().dataTypeDouble()); } } diff --git a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vValueCount.java b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vValueCount.java index 3bdc5f4e76cc..4d892f5d6b8e 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vValueCount.java +++ b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vValueCount.java @@ -52,6 +52,7 @@ public Object getSql(CommonExpressionVisitor visitor) { sql += "case when " + SqlUtils.quote(uid) + " is not null then 1 else 0 end + "; } - return TextUtils.removeLast(sql, "+").trim() + ") as double precision),0)"; + return TextUtils.removeLast(sql, "+").trim() + + ") as %s),0)".formatted(visitor.getSqlBuilder().dataTypeDouble()); } } diff --git a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vZeroPosValueCount.java b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vZeroPosValueCount.java index b03a09e11158..9911382aaf45 100644 --- a/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vZeroPosValueCount.java +++ b/dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/program/variable/vZeroPosValueCount.java @@ -52,6 +52,7 @@ public Object getSql(CommonExpressionVisitor visitor) { sql += "case when " + SqlUtils.quote(uid) + " >= 0 then 1 else 0 end + "; } - return TextUtils.removeLast(sql, "+").trim() + ") as double precision),0)"; + return TextUtils.removeLast(sql, "+").trim() + + ") as %s),0)".formatted(visitor.getSqlBuilder().dataTypeDouble()); } }