From 89ef1518ac0168d1ecfa6e69633db3695db02093 Mon Sep 17 00:00:00 2001 From: juanf <juanf> Date: Thu, 6 Oct 2016 16:22:07 +0000 Subject: [PATCH] SSDM-4192 : Bugfix, Batch InQuery class to avoid postgres driver limit. SVN: 37149 --- .../cisd/openbis/generic/server/dataaccess/db/InQuery.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java index 7c747ced38b..8585869bba1 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/InQuery.java @@ -15,19 +15,21 @@ public class InQuery<I, O> { List<O> result = new ArrayList<O>(inArguments.size()); + int fixParamsSize = (fixParams == null) ? 0 : fixParams.size(); int fromIndex = 0; + while (fromIndex < inArguments.size()) { - int toIndex = fromIndex + POSTGRES_DRIVER_MAX_ARGS; + int toIndex = fromIndex + POSTGRES_DRIVER_MAX_ARGS - fixParamsSize; if (toIndex > inArguments.size()) { toIndex = inArguments.size(); } List<I> partialInArguments = inArguments.subList(fromIndex, toIndex); - SQLQuery query = session.createSQLQuery(inQuery); query.setParameterList(inParameter, partialInArguments); + if (fixParams != null) { for (String paramName : fixParams.keySet()) -- GitLab