public IdentifiedDataSerializable createNew(Integer arg) { return new SqlPredicate(); } };
public SqlPredicate(String sql) { this.sql = sql; predicate = createPredicate(sql); }
private Predicate createPredicate(String sql) { String paramSql = sql; Map<String, String> mapPhrases = new HashMap<String, String>(); int apoIndex = getApostropheIndex(paramSql, 0); if (apoIndex != -1) { int phraseId = 0; phraseId++; int start = apoIndex + 1; int end = getApostropheIndexIgnoringDoubles(paramSql, apoIndex + 1); if (end == -1) { throw new RuntimeException("Missing ' in sql"); String phrase = removeEscapes(paramSql.substring(start, end)); newSql.append(before); newSql.append(key); apoIndex = getApostropheIndex(paramSql, 0); return eval(tokens.get(0)); String token = (String) tokenObj; if ("=".equals(token) || "==".equals(token)) { createComparison(mapPhrases, tokens, i, EQUAL_FACTORY); } else if ("!=".equals(token) || "<>".equals(token)) { createComparison(mapPhrases, tokens, i, NOT_EQUAL_FACTORY); } else if (">".equals(token)) { createComparison(mapPhrases, tokens, i, GREATER_THAN_FACTORY); } else if (">=".equals(token)) { createComparison(mapPhrases, tokens, i, GREATER_EQUAL_FACTORY);
private Predicate createPredicate(String sql) { String paramSql = sql; Map<String, String> mapPhrases = new HashMap<String, String>(); int apoIndex = getApostropheIndex(paramSql, 0); if (apoIndex != -1) { int phraseId = 0; phraseId++; int start = apoIndex + 1; int end = getApostropheIndexIgnoringDoubles(paramSql, apoIndex + 1); if (end == -1) { throw new RuntimeException("Missing ' in sql"); String phrase = removeEscapes(paramSql.substring(start, end)); newSql.append(before); newSql.append(key); apoIndex = getApostropheIndex(paramSql, 0); return eval(tokens.get(0)); String token = (String) tokenObj; if ("=".equals(token) || "==".equals(token)) { createComparison(mapPhrases, tokens, i, EQUAL_FACTORY); } else if ("!=".equals(token) || "<>".equals(token)) { createComparison(mapPhrases, tokens, i, NOT_EQUAL_FACTORY); } else if (">".equals(token)) { createComparison(mapPhrases, tokens, i, GREATER_THAN_FACTORY); } else if (">=".equals(token)) { createComparison(mapPhrases, tokens, i, GREATER_EQUAL_FACTORY);
public IdentifiedDataSerializable createNew(Integer arg) { return new SqlPredicate(); } };
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { predicate = createPredicate(sql); }
@Override protected Collection<?> doListKeys(String keyPattern) { Assert.hasText(keyPattern, "'keyPattern' must not be empty"); keyPattern = keyPattern.replaceAll("\\*", "%"); SqlPredicate sqlPredicate = new SqlPredicate("__key like " + keyPattern); return this.map.values(sqlPredicate); }
public SqlPredicate(String sql) { this.sql = sql; predicate = createPredicate(sql); }
public void run() { IMap map = hazelcast.getMap("myMap"); Iterator it = map.localKeySet(new SqlPredicate("name=" + random.nextInt(10000))).iterator(); while (it.hasNext()) { it.next(); } } }, 10);
private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { predicate = createPredicate(sql); }
public void run() { IMap map = hazelcast.getMap("myMap"); Iterator it = map.keySet(new SqlPredicate("name=" + random.nextInt(10000))).iterator(); while (it.hasNext()) { it.next(); } } }, 10);
@Override public void readData(ObjectDataInput in) throws IOException { sql = in.readUTF(); predicate = createPredicate(sql); }
public void run() { IMap map = hazelcast.getMap("myMap"); Iterator it = map.entrySet(new SqlPredicate("year=" + random.nextInt(100))).iterator(); while (it.hasNext()) { it.next(); } } }, 1);
@Override public void readData(ObjectDataInput in) throws IOException { sql = in.readUTF(); predicate = createPredicate(sql); }
public void run() { IMap map = hazelcast.getMap("myMap"); Iterator it = map.entrySet(new SqlPredicate("name=" + random.nextInt(10000))).iterator(); while (it.hasNext()) { it.next(); } } }, 10);
@Override public Collection<Value> sql(String query) throws NullPointerException { requireNonNull(query, "sql is required"); return sql(new SqlPredicate(query)); }
@Setup public void setUp() { map = targetInstance.getMap(name); innerPredicate = new SqlPredicate(innerPredicateQuery); }
@Override public Collection<Value> sql(String query, Map<String, Object> params) throws NullPointerException { requireNonNull(query, "sql is required"); requireNonNull(params, "params is required"); final StringBuilder finalQuery = new StringBuilder(query); final Consumer<Map.Entry<String, Object>> consumer = e -> { String key = ":" + e.getKey(); int indexOf = query.indexOf(key); finalQuery.replace(indexOf, indexOf + key.length(), e.getValue().toString()); }; params.entrySet().forEach(consumer); return sql(new SqlPredicate(finalQuery.toString())); }
/** * QUERY map with a sql like syntax (see http://www.hazelcast.com/) */ private void query(String query, Exchange exchange) { Collection<Object> result; if (ObjectHelper.isNotEmpty(query)) { result = this.cache.values(new SqlPredicate(query)); } else { result = this.cache.values(); } exchange.getOut().setBody(result); }
public Collection<HazeltaskTask<GROUP>> getLocalPendingTasks(String predicate) { Set<UUID> keys = pendingTask.localKeySet(new SqlPredicate(predicate)); return pendingTask.getAll(keys).values(); }