code: public void executeQuery(boolean mustExecuteOnMaster, Results results,
        final ClientPrepareResult clientPrepareResult,
        ParameterHolder[] parameters) throws SQLException {
      cmdPrologue();
      try {
  
        if (clientPrepareResult.getParamCount() == 0 && !clientPrepareResult
            .isQueryMultiValuesRewritable()) {
          if (clientPrepareResult.getQueryParts().size() == 1) {
            ComQuery.sendDirect(writer, clientPrepareResult.getQueryParts().get(0));
          } else {
            ComQuery.sendMultiDirect(writer, clientPrepareResult.getQueryParts());
          }
        } else {
          writer.startPacket(0);
          ComQuery.sendSubCmd(writer, clientPrepareResult, parameters, -1);
          writer.flush();
        }
        getResult(results);
  
      } catch (SQLException queryException) {
        throw logQuery.exceptionWithQuery(parameters, queryException, clientPrepareResult);
      } catch (IOException e) {
        throw handleIoException(e);
      }
    }
docs: Execute a unique clientPrepareQuery.
  
  @param mustExecuteOnMaster was intended to be launched on master connection
  @param results             results
  @param clientPrepareResult clientPrepareResult
  @param parameters          parameters
  @throws SQLException exception