docs: public boolean executeBatchClient(boolean mustExecuteOnMaster, Results results,
        final ClientPrepareResult prepareResult,
        final List<ParameterHolder[]> parametersList, boolean hasLongData)
        throws SQLException {
  
      //***********************************************************************************************************
      // Multiple solution for batching :
      // - rewrite as multi-values (only if generated keys are not needed and query can be rewritten)
      // - multiple INSERT separate by semi-columns
      // - use pipeline
      // - use bulk
      // - one after the other
      //***********************************************************************************************************
  
      if (options.rewriteBatchedStatements) {
        if (prepareResult.isQueryMultiValuesRewritable()
            && results.getAutoGeneratedKeys() == Statement.NO_GENERATED_KEYS) {
  
          //values rewritten in one query :
          // INSERT INTO X(a,b) VALUES (1,2), (3,4), ...
          executeBatchRewrite(results, prepareResult, parametersList, true);
          return true;
  
        } else if (prepareResult.isQueryMultipleRewritable()) {
  
          if (options.useBulkStmts
              && !hasLongData
              && prepareResult.isQueryMultipleRewritable() //INSERT FROM SELECT not allowed
              && results.getAutoGeneratedKeys() == Statement.NO_GENERATED_KEYS
              && versionGreaterOrEqual(10, 2, 7)
              && executeBulkBatch(results, prepareResult.getSql(), null, parametersList)) {
            return true;
          }
  
          //multi rewritten in one query :
          // INSERT INTO X(a,b) VALUES (1,2);INSERT INTO X(a,b) VALUES (3,4); ...
          executeBatchRewrite(results, prepareResult, parametersList, false);
          return true;
        }
      }
  
      if (options.useBulkStmts
          && !hasLongData
          && results.getAutoGeneratedKeys() == Statement.NO_GENERATED_KEYS
          && versionGreaterOrEqual(10, 2, 7)
          && executeBulkBatch(results, prepareResult.getSql(), null, parametersList)) {
        return true;
      }
  
      if (options.useBatchMultiSend) {
        //send by bulk : send data by bulk before reading corresponding results
        executeBatchMulti(results, prepareResult, parametersList);
        return true;
      }
  
      return false;
    }