From 9ad14c530608e2e17a9557face2736555119929f Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Sat, 1 Feb 2020 14:05:12 +1300 Subject: [PATCH] #1926 - Postgres (Multi value bind) fix related to empty idIn() expression --- .../io/ebeaninternal/server/expression/IdInExpression.java | 2 +- .../java/io/ebeaninternal/server/expression/InExpression.java | 4 +--- .../io/ebeaninternal/server/expression/InPairsExpression.java | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java b/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java index 596346460..51b055820 100644 --- a/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java +++ b/src/main/java/io/ebeaninternal/server/expression/IdInExpression.java @@ -123,7 +123,7 @@ public class IdInExpression extends NonPrepareExpression { @Override public void queryPlanHash(StringBuilder builder) { builder.append("IdIn[?"); - if (!multiValueIdSupported) { + if (!multiValueIdSupported || idCollection.isEmpty()) { // query plan specific to the number of parameters in the IN clause builder.append(idCollection.size()); } diff --git a/src/main/java/io/ebeaninternal/server/expression/InExpression.java b/src/main/java/io/ebeaninternal/server/expression/InExpression.java index dd65489f0..7009a8b44 100644 --- a/src/main/java/io/ebeaninternal/server/expression/InExpression.java +++ b/src/main/java/io/ebeaninternal/server/expression/InExpression.java @@ -17,8 +17,6 @@ import java.util.List; class InExpression extends AbstractExpression { - - private final boolean not; /** @@ -169,7 +167,7 @@ class InExpression extends AbstractExpression { builder.append("empty"); } else { builder.append(" ?"); - if (!multiValueSupported) { + if (!multiValueSupported || bindValues.isEmpty()) { // query plan specific to the number of parameters in the IN clause builder.append(bindValues.size()); } diff --git a/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java b/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java index c4905b58b..96cc7c182 100644 --- a/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java +++ b/src/main/java/io/ebeaninternal/server/expression/InPairsExpression.java @@ -116,7 +116,7 @@ class InPairsExpression extends AbstractExpression { builder.append(property1).append("-"); builder.append(separator).append("-"); builder.append(suffix).append(" ?"); - if (!multiValueSupported) { + if (!multiValueSupported || entries.isEmpty()) { // query plan specific to the number of parameters in the IN clause builder.append(entries.size()); }