/** * Execute list of queries. This method is used when using text batch statement and using * rewriting (allowMultiQueries || rewriteBatchedStatements). queries will be send to server * according to max_allowed_packet size. * * @param queries list of queryes * @param streaming is streaming flag * @param isRewritable is rewritable flag * @param rewriteOffset rewrite offset * @return queryresult * @throws QueryException exception */ public AbstractQueryResult executeQuery( List<Query> queries, boolean streaming, boolean isRewritable, int rewriteOffset) throws QueryException { for (Query query : queries) { query.validate(); } this.moreResults = false; AbstractQueryResult result = null; do { final SendTextQueryPacket packet = new SendTextQueryPacket(queries, isRewritable, rewriteOffset); int queriesSend = sendQuery(packet); if (result == null) { result = result(queries, streaming); } else { result.addResult(result(queries, streaming)); } if (queries.size() == queriesSend) { return result; } else { queries = queries.subList(queriesSend, queries.size()); } } while (queries.size() > 0); return result; }
@Override public AbstractQueryResult executePreparedQueryAfterFailover( String sql, ParameterHolder[] parameters, PrepareResult oldPrepareResult, MariaDbType[] parameterTypeHeader, boolean isStreaming) throws QueryException { PrepareResult prepareResult = prepare(sql); AbstractQueryResult queryResult = executePreparedQuery(sql, parameters, prepareResult, parameterTypeHeader, isStreaming); queryResult.setFailureObject(prepareResult); return queryResult; }