diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java index b9fe03dd330e66073edfcd8c238c5ce7b3306b8a..b4ad5da0fe2e00f420d0b2e90f9dbfed1892bcb3 100644 --- a/src/main/java/org/caosdb/server/query/Query.java +++ b/src/main/java/org/caosdb/server/query/Query.java @@ -800,24 +800,17 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac } cachable = false; try (final Statement stmt = this.getConnection().createStatement()) { - // final ResultSet rs = stmt.executeQuery("SELECT id from `" + resultSet + "`"); - String logstr = ""; final String query = ("SELECT t1.id, entity_acl.acl from (select entities.id, entities.acl from entities where id in (select id from `" + resultSet + "`) ) as t1 inner join entity_acl on t1.acl=entity_acl.id;"); - logstr += "SQL query: " + query + "\n"; - long begin_t = System.currentTimeMillis(); final ResultSet rs = stmt.executeQuery(query); final HashMap<String, Boolean> acl_cache = new HashMap<String, Boolean>(); final List<Integer> toBeDeleted = new LinkedList<Integer>(); final List<Integer> allrs = new ArrayList<Integer>(); - logstr += "Got rs: " + (System.currentTimeMillis() - begin_t) + " s\n"; - long count = 0; - long count2 = 0; // @todo here, we must operate on sql site. only retrieve different permissions while (rs.next()) { final long t1 = System.currentTimeMillis(); @@ -825,12 +818,10 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac if (id <= 99) { continue; } - count2 += 1; allrs.add(id); final String acl_str = bytes2UTF8(rs.getBytes("ACL")); if (!acl_cache.containsKey(acl_str)) { - count += 1; acl_cache.put( acl_str, EntityACL.deserialize(acl_str) @@ -844,17 +835,8 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac final long t2 = System.currentTimeMillis(); this.addBenchmark("filterEntitiesWithoutRetrievePermission", t2 - t1); } - logstr += "done with looking up acl: " + (System.currentTimeMillis() - begin_t) + " s\n"; - - allrs.sort(Comparator.naturalOrder()); - logstr += "iterations: " + count + "\n"; - logstr += "iterations: " + count2 + "\n"; - - logstr += "Full time: " + (System.currentTimeMillis() - begin_t) + "\n"; - - this.logger.warn(logstr); - rs.close(); + // TODO is there a better way than the following? for (final Integer id : toBeDeleted) { stmt.execute("DELETE FROM `" + resultSet + "` WHERE id = " + id); }