/** {@inheritDoc} */ @Override public SqlFieldsQueryEx setCollocated(boolean collocated) { super.setCollocated(collocated); return this; }
qry.setCollocated(collocatedQry); qry.setDistributedJoins(distributedJoins); qry.setEnforceJoinOrder(enforceJoinOrder);
qry.setCollocated(collocatedQry); qry.setDistributedJoins(distributedJoins); qry.setEnforceJoinOrder(enforceJoinOrder());
qry.setCollocated(collocatedQry); qry.setDistributedJoins(distributedJoins); qry.setSchema(schemaName);
/** * */ @Test public void testGroupConcatWithDistinct() { IgniteCache c = ignite(CLIENT).cache(CACHE_NAME); HashMap<Integer, String> exp = new HashMap<>(); exp.put(1, "A"); exp.put(2, "B,C"); exp.put(3, "D,E,F"); exp.put(4, "G,H,I,J"); exp.put(5, "K,L,M,N,O"); exp.put(6, "P,Q,R,S,T,U"); List<List<Object>> res = c.query( new SqlFieldsQuery("select grp, GROUP_CONCAT(DISTINCT str0 ORDER BY str0) from Value group by grp") .setCollocated(true)).getAll(); HashMap<Integer, String> resMap = resultMap(res); assertEquals(exp, resMap); }
/** * */ @Test public void testGroupConcatOrderBy() { IgniteCache c = ignite(CLIENT).cache(CACHE_NAME); HashMap<Integer, String> exp = new HashMap<>(); exp.put(1, "id#0=A"); exp.put(2, "id#1=B; id#2=C"); exp.put(3, "id#3=D; id#4=E; id#5=F"); exp.put(4, "id#6=G; id#7=H; id#8=I; id#9=J"); exp.put(5, "id#10=K; id#11=L; id#12=M; id#13=N; id#14=O"); exp.put(6, "id#15=P; id#16=Q; id#17=R; id#18=S; id#19=T; id#20=U"); List<List<Object>> res = c.query( new SqlFieldsQuery("select grp, GROUP_CONCAT(strId || '=' || str0 ORDER BY id SEPARATOR '; ')" + " from Value WHERE id < ? group by grp") .setCollocated(true).setArgs(KEY_BASE_FOR_DUPLICATES)).getAll(); HashMap<Integer, String> resMap = resultMap(res); assertEquals(exp, resMap); }
/** * @param c Cache. * @param collocated Colocated. * @return Result. */ private static List<List<?>> query(IgniteCache<AffinityUuid,Purchase> c, boolean collocated) { return c.query(new SqlFieldsQuery(QRY).setArgs(30, 5).setCollocated(collocated)).getAll(); }
/** * */ @Test public void testGroupConcatSimple() { IgniteCache c = ignite(CLIENT).cache(CACHE_NAME); List<List<Object>> res = c.query( new SqlFieldsQuery("select grp, GROUP_CONCAT(str0) from Value WHERE id < ? group by grp ") .setCollocated(true).setArgs(KEY_BASE_FOR_DUPLICATES)).getAll(); for (List<Object> row : res) { int grp = (int)row.get(0); String str = (String)row.get(1); for (int i = 0; i < grp; ++i) { String s = "" + (char)('A' + i + (grp - 1) * grp / 2); assertTrue("Invalid group_concat result: string doesn't contain value: " + "[str=" + str + ", val=" + s , str.contains(s)); } } }
/** * @param cache Cache. * @param qry Query. * @return Query plan. */ protected final String queryPlan(IgniteCache<?, ?> cache, SqlFieldsQuery qry) { return (String)cache.query(new SqlFieldsQuery("explain " + qry.getSql()) .setArgs(qry.getArgs()) .setLocal(qry.isLocal()) .setCollocated(qry.isCollocated()) .setPageSize(qry.getPageSize()) .setDistributedJoins(qry.isDistributedJoins()) .setEnforceJoinOrder(qry.isEnforceJoinOrder())) .getAll().get(0).get(0); }
qry.setLocal(arg.isLocal()); qry.setDistributedJoins(arg.isDistributedJoins()); qry.setCollocated(arg.isCollocated()); qry.setEnforceJoinOrder(arg.isEnforceJoinOrder()); qry.setReplicatedOnly(arg.isReplicatedOnly());
/** * Reads fields query. * * @param reader Binary reader. * @return Query. */ private Query readFieldsQuery(BinaryRawReaderEx reader) { boolean loc = reader.readBoolean(); String sql = reader.readString(); final int pageSize = reader.readInt(); Object[] args = readQueryArgs(reader); boolean distrJoins = reader.readBoolean(); boolean enforceJoinOrder = reader.readBoolean(); boolean lazy = reader.readBoolean(); int timeout = reader.readInt(); boolean replicated = reader.readBoolean(); boolean collocated = reader.readBoolean(); String schema = reader.readString(); return new SqlFieldsQuery(sql) .setPageSize(pageSize) .setArgs(args) .setLocal(loc) .setDistributedJoins(distrJoins) .setEnforceJoinOrder(enforceJoinOrder) .setLazy(lazy) .setTimeout(timeout, TimeUnit.MILLISECONDS) .setReplicatedOnly(replicated) .setCollocated(collocated) .setSchema(schema); }
.setReplicatedOnly(replicatedOnly) .setEnforceJoinOrder(enforceJoinOrder) .setCollocated(collocated) .setLazy(lazy) .setTimeout(timeout, TimeUnit.MILLISECONDS);
/** {@inheritDoc} */ @Override public SqlFieldsQueryEx setCollocated(boolean collocated) { super.setCollocated(collocated); return this; }
qry.setCollocated(collocatedQry); qry.setDistributedJoins(distributedJoins); qry.setEnforceJoinOrder(enforceJoinOrder);
qry.setCollocated(collocatedQry); qry.setDistributedJoins(distributedJoins); qry.setEnforceJoinOrder(enforceJoinOrder());
qry.setCollocated(collocatedQry); qry.setDistributedJoins(distributedJoins); qry.setSchema(schemaName);
qry.setLocal(arg.isLocal()); qry.setDistributedJoins(arg.isDistributedJoins()); qry.setCollocated(arg.isCollocated()); qry.setEnforceJoinOrder(arg.isEnforceJoinOrder()); qry.setReplicatedOnly(arg.isReplicatedOnly());
/** * Reads fields query. * * @param reader Binary reader. * @return Query. */ private Query readFieldsQuery(BinaryRawReaderEx reader) { boolean loc = reader.readBoolean(); String sql = reader.readString(); final int pageSize = reader.readInt(); Object[] args = readQueryArgs(reader); boolean distrJoins = reader.readBoolean(); boolean enforceJoinOrder = reader.readBoolean(); boolean lazy = reader.readBoolean(); int timeout = reader.readInt(); boolean replicated = reader.readBoolean(); boolean collocated = reader.readBoolean(); String schema = reader.readString(); return new SqlFieldsQuery(sql) .setPageSize(pageSize) .setArgs(args) .setLocal(loc) .setDistributedJoins(distrJoins) .setEnforceJoinOrder(enforceJoinOrder) .setLazy(lazy) .setTimeout(timeout, TimeUnit.MILLISECONDS) .setReplicatedOnly(replicated) .setCollocated(collocated) .setSchema(schema); }
.setReplicatedOnly(replicatedOnly) .setEnforceJoinOrder(enforceJoinOrder) .setCollocated(collocated) .setLazy(lazy) .setTimeout(timeout, TimeUnit.MILLISECONDS);