/** * Constructs SQL fields query. * * @param sql SQL query. */ public SqlFieldsQuery(String sql) { setSql(sql); }
/** {@inheritDoc} */ @Override public SqlFieldsQueryEx setSql(String sql) { super.setSql(sql); return this; }
try (FieldsQueryCursor<List<?>> cur = cache0.query(qry.setSql("UPDATE Integer SET _val = (_key * 10)"))) { assertEquals(3L, cur.iterator().next().get(0)); for (List<?> row : cache0.query(qry.setSql("SELECT _key, _val FROM Integer")).getAll()) { assertEquals((Integer)row.get(0) * 10, row.get(1)); try (FieldsQueryCursor<List<?>> cur = cache0.query(qry.setSql("UPDATE Integer SET _val = 15 where _key = 2"))) { assertEquals(1L, cur.iterator().next().get(0)); for (List<?> row : cache0.query(qry.setSql("SELECT _key, _val FROM Integer")).getAll()) { if ((Integer)row.get(0) == 2) assertEquals(15, row.get(1)); cache0.query(qry.setSql("DELETE FROM Integer")).getAll(); assertTrue(cache0.query(qry.setSql("SELECT _key, _val FROM Integer")).getAll().isEmpty()); assertEquals(3L, cache0.query(qry.setSql("INSERT INTO Integer (_key, _val) values (1,1),(2,2),(3,3)")).getAll().iterator().next().get(0));
/** * Execute query from node. * * @param qry query. * @param node node to use to perform query. * @return Result of query. */ protected final Result executeFrom(SqlFieldsQuery qry, Ignite node) { if (explain) { try { SqlFieldsQuery explainQry = new SqlFieldsQuery(qry).setSql("EXPLAIN " + qry.getSql()); List<List<?>> res = ((IgniteEx)node).context().query().querySqlFields(explainQry, false).getAll(); String explanation = (String)res.get(0).get(0); log.debug("Node: " + node.name() + ": Execution plan for query " + qry + ":\n" + explanation); } catch (Exception exc) { log.error("Ignoring exception gotten explaining query : " + qry, exc); } } FieldsQueryCursor<List<?>> cursor = ((IgniteEx)node).context().query().querySqlFields(qry, false); return Result.fromCursor(cursor); }
remainingSql != qry.getSql() ? cloneFieldsQuery(qry).setSql(remainingSql) : qry, firstArg);
/** {@inheritDoc} */ @SuppressWarnings("deprecation") @Override public SqlFieldsQuery generateFieldsQuery(String cacheName, SqlQuery qry) { String schemaName = schema(cacheName); String type = qry.getType(); H2TableDescriptor tblDesc = schemaMgr.tableForType(schemaName, cacheName, type); if (tblDesc == null) throw new IgniteSQLException("Failed to find SQL table for type: " + type, IgniteQueryErrorCode.TABLE_NOT_FOUND); String sql; try { sql = H2Utils.generateFieldsQueryString(qry.getSql(), qry.getAlias(), tblDesc); } catch (IgniteCheckedException e) { throw new IgniteException(e); } SqlFieldsQuery res = new SqlFieldsQuery(sql); res.setArgs(qry.getArgs()); res.setDistributedJoins(qry.isDistributedJoins()); res.setLocal(qry.isLocal()); res.setPageSize(qry.getPageSize()); res.setPartitions(qry.getPartitions()); res.setReplicatedOnly(qry.isReplicatedOnly()); res.setSchema(schemaName); res.setSql(sql); res.setDataPageScanEnabled(qry.isDataPageScanEnabled()); if (qry.getTimeout() > 0) res.setTimeout(qry.getTimeout(), TimeUnit.MILLISECONDS); return res; }
SqlFieldsQuery newQry = cloneFieldsQuery(qry).setSql(prepared.getSQL()).setArgs(args);
/** {@inheritDoc} */ @Override public SqlFieldsQueryEx setSql(String sql) { super.setSql(sql); return this; }
/** * Constructs SQL fields query. * * @param sql SQL query. */ public SqlFieldsQuery(String sql) { setSql(sql); }
remainingSql != qry.getSql() ? cloneFieldsQuery(qry).setSql(remainingSql) : qry, firstArg);
SqlFieldsQuery newQry = cloneFieldsQuery(qry).setSql(prepared.getSQL()).setArgs(args);