docs: @Override
      public CompletableFuture<ExecutionInfo> executeAsyncWithStats() {
  
          final StatementWrapper statementWrapper = new NativeStatementWrapper(getOperationType(boundStatement), meta, boundStatement, encodedBoundValues);
          final String queryString = statementWrapper.getBoundStatement().preparedStatement().getQueryString();
  
          if (LOGGER.isTraceEnabled()) {
              LOGGER.trace(format("Execute native query async with execution info : %s", queryString));
          }
  
          CompletableFuture<ResultSet> cfutureRS = rte.execute(statementWrapper);
  
          return cfutureRS
                  .thenApply(options::resultSetAsyncListener)
                  .thenApply(x -> statementWrapper.logReturnResults(x, options.computeMaxDisplayedResults(rte.configContext)))
                  .thenApply(statementWrapper::logTrace)
                  .thenApply(x -> LWTHelper.triggerLWTListeners(lwtResultListeners, x, queryString))
                  .thenApply(x -> x.getExecutionInfo());
      }