From a930ace8156d60ff72b92ae4d543f87b1c23b71e Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Mon, 26 Jun 2017 19:11:23 +0200 Subject: [PATCH] bugfix --- src/main/java/eu/hbp/mip/utils/DataUtil.java | 22 +++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/main/java/eu/hbp/mip/utils/DataUtil.java b/src/main/java/eu/hbp/mip/utils/DataUtil.java index 2e93bbed2..3c37d97df 100644 --- a/src/main/java/eu/hbp/mip/utils/DataUtil.java +++ b/src/main/java/eu/hbp/mip/utils/DataUtil.java @@ -14,7 +14,6 @@ import java.util.List; public class DataUtil { private static final int MAX_NB_SAMPLES = 200; - private static final int TABLESAMPLE_SEED = 42; private JdbcTemplate jdbcTemplate; private String featuresMainTable; @@ -30,22 +29,25 @@ public class DataUtil { { JsonObject data = new JsonObject(); + if (filters.length() > 0) + { + filters = String.format("AND %s", filters); + } + for (String var : vars) { JsonArray currentVarData = new JsonArray(); long nbRows = countDatasetRows(); if (nbRows >= 1) { - - long nb_samples = Math.min(nbRows, MAX_NB_SAMPLES); - int samplingPercentage = (int) (100 * nb_samples / nbRows); - if (filters.length() > 0) { - filters = "WHERE " + filters; + List<Object> queryResult; + synchronized(this){ + jdbcTemplate.execute("SELECT SETSEED(0.42)"); + queryResult = jdbcTemplate.queryForList( + String.format("SELECT %s FROM %s WHERE %s IS NOT NULL %s ORDER BY Random() LIMIT %d", + var, featuresMainTable, var, filters, MAX_NB_SAMPLES), + Object.class); } - List<Object> queryResult = jdbcTemplate.queryForList( - String.format("SELECT %s FROM %s TABLESAMPLE SYSTEM (%d) REPEATABLE (%d) %s", - var, featuresMainTable, samplingPercentage, TABLESAMPLE_SEED, filters), - Object.class); for (Object value : queryResult) { if (value == null) { currentVarData.add((String) null); -- GitLab