/** {@inheritDoc} */ @Override public SqlFieldsQueryEx setArgs(Object... args) { super.setArgs(args); return this; }
/** * Default query. * * @param arg Argument. * @return Query. */ private static SqlFieldsQuery query(long arg) { return new SqlFieldsQuery("SELECT id, name FROM Person WHERE id >= ?").setArgs(arg); }
/** * Execute native sql. * * @param sql query. * @param args arguments of SqlFieldsQuery. * @return {@link QueryCursor#getAll()} - result of the query. */ private List<List<?>> execute(String sql, Object... args) { return cache.query(new SqlFieldsQuery(sql).setArgs(args)).getAll(); }
/** * @throws Exception if failed. */ private void checkCache(IgniteCache<Integer, IndexedType> cache) throws Exception { for (int i = 0; i < 1000; i++) cache.put(i, new IndexedType(i)); List<List<?>> res = cache.query(new SqlFieldsQuery("select avg(iVal) from IndexedType where iVal > ?") .setArgs(499)).getAll(); assertEquals(1, res.size()); assertEquals(1, res.get(0).size()); }
private void checkDml(IgniteCache<Long,TestData> cache, Boolean dataPageScanEnabled) { DirectPageScanIndexing.expectedDataPageScanEnabled = dataPageScanEnabled; assertEquals(0L, cache.query(new SqlFieldsQuery( "update TestData set z = z + 1 where check_scan_flag(?,false)") .setDataPageScanEnabled(DirectPageScanIndexing.expectedDataPageScanEnabled) .setArgs(DirectPageScanIndexing.expectedDataPageScanEnabled) ).getAll().get(0).get(0)); checkSqlLastFindDataPageScan(dataPageScanEnabled); }
/** * @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(); }
/** * Execute DDL statement on given node. * * @param node Node. * @param sql Statement. */ private List<List<?>> execute(Ignite node, String sql, Object... args) { SqlFieldsQuery qry = new SqlFieldsQuery(sql) .setArgs(args) .setSchema("PUBLIC"); return queryProcessor(node).querySqlFields(qry, true).getAll(); }
/** * Run SQL statement on specified node. * * @param node node to execute query. * @param stmt Statement to run. * @param args arguments of statements * @return Run result. */ private List<List<?>> executeSql(IgniteEx node, String stmt, Object... args) { return node.context().query().querySqlFields(new SqlFieldsQuery(stmt).setArgs(args), true).getAll(); }
/** * Run SQL statement on specified node. * @param stmt Statement to run. * @return Run result. */ private List<List<?>> executeSql(IgniteEx node, String stmt, Object... args) { return node.context().query().querySqlFields(new SqlFieldsQuery(stmt).setArgs(args), true).getAll(); }
/** */ @Test public void testUnicastQuerySelectAffinityKeyEqualsParameter() throws Exception { IgniteCache<CallKey, Call> cache = grid(NODE_CLIENT).cache(CACHE_CALL); List<List<?>> result = runQueryEnsureUnicast(cache, new SqlFieldsQuery("select id, name, duration from Call where personId=? order by id") .setArgs(100), 1); assertEquals(2, result.size()); checkResultsRow(result, 0, 1, "caller1", 100); checkResultsRow(result, 1, 2, "caller2", 200); }
/** */ @Test public void testUnicastQueryAffinityKeyTypeConversionParameter() throws Exception { IgniteCache<CallKey, Call> cache = grid(NODE_CLIENT).cache(CACHE_CALL); // Pass string argument to expression with integer List<List<?>> result = runQueryEnsureUnicast(cache, new SqlFieldsQuery("select id, name, duration from Call where personId=? order by id") .setArgs("100"), 1); assertEquals(2, result.size()); checkResultsRow(result, 0, 1, "caller1", 100); checkResultsRow(result, 1, 2, "caller2", 200); }
/** * @param sql SQL query * @param args Query parameters. * @return Results set. */ private List<List<?>> sql(String sql, Object ... args) { return grid(NODE_CLIENT).context().query().querySqlFields( new SqlFieldsQuery(sql).setArgs(args), false).getAll(); } }
/** */ private List<List<?>> executeSql(IgniteEx grid, String qry, Object...args) { return grid.context().query().querySqlFields( new SqlFieldsQuery(qry).setSchema("PUBLIC").setArgs(args), true).getAll(); }
/** */ @Test public void testUnicastQuerySelectKeyEqualsParameter() throws Exception { IgniteCache<CallKey, Call> cache = grid(NODE_CLIENT).cache(CACHE_CALL); CallKey callKey = new CallKey(5, 1); List<List<?>> result = runQueryEnsureUnicast(cache, new SqlFieldsQuery("select name, duration from Call where _key=?") .setArgs(callKey), 1); assertEquals(1, result.size()); Call call = cache.get(callKey); checkResultsRow(result, 0, call.name, call.duration); }
/** */ @Test public void testUnicastQuerySelectKeyEqualAndFieldParameter() throws Exception { IgniteCache<CallKey, Call> cache = grid(NODE_CLIENT).cache(CACHE_CALL); CallKey callKey = new CallKey(5, 1); List<List<?>> result = runQueryEnsureUnicast(cache, new SqlFieldsQuery("select name, duration from Call where _key=? and duration=?") .setArgs(callKey, 100), 1); assertEquals(1, result.size()); Call call = cache.get(callKey); checkResultsRow(result, 0, call.name, call.duration); }
/** * */ @Test public void testPrimitives() { IgniteCache<Integer, Integer> p = ignite(0).cache("I2I").withKeepBinary(); p.query(new SqlFieldsQuery("merge into Integer(_key, _val) values (1, ?), " + "(?, 4)").setArgs(2, 3)); assertEquals(2, (int)p.get(1)); assertEquals(4, (int)p.get(3)); } }
/** * */ @Test public void testInsertWithExplicitKey() { IgniteCache<String, Person> p = ignite(0).cache("S2P").withKeepBinary(); p.query(new SqlFieldsQuery("insert into Person (_key, id, firstName) values ('s', ?, ?), " + "('a', 2, 'Alex')").setArgs(1, "Sergi")); assertEquals(createPerson(1, "Sergi"), p.get("s")); assertEquals(createPerson(2, "Alex"), p.get("a")); }
/** * */ @Test public void testInsertWithExplicitPrimitiveKey() { IgniteCache<Integer, Person> p = ignite(0).cache("I2P").withKeepBinary(); p.query(new SqlFieldsQuery( "insert into Person (_key, id, firstName) values (cast('1' as int), ?, ?), (2, (5 - 3), 'Alex')") .setArgs(1, "Sergi")); assertEquals(createPerson(1, "Sergi"), p.get(1)); assertEquals(createPerson(2, "Alex"), p.get(2)); }
/** * */ @Test public void testFieldsCaseSensitivity() { IgniteCache<Key2, Person> p = ignite(0).cache("K22P").withKeepBinary(); p.query(new SqlFieldsQuery("insert into \"Person2\" (\"Id\", \"id\", \"firstName\", \"IntVal\") " + "values (1, ?, ?, 5), (2, 3, 'Alex', 6)").setArgs(4, "Sergi")); assertEquals(createPerson2(4, "Sergi", 5), p.get(new Key2(1))); assertEquals(createPerson2(3, "Alex", 6), p.get(new Key2(2))); }
/** * */ @Test public void testInsertWithDynamicKeyInstantiation() { IgniteCache<Key, Person> p = ignite(0).cache("K2P").withKeepBinary(); p.query(new SqlFieldsQuery( "insert into Person (key, id, firstName) values (1, ?, ?), (2, 2, 'Alex')").setArgs(1, "Sergi")); assertEquals(createPerson(1, "Sergi"), p.get(new Key(1))); assertEquals(createPerson(2, "Alex"), p.get(new Key(2))); }