docs: @Override
      protected void updateStatsRow(Object rowKey, Object rowValues[]) {
          super.updateStatsRow(rowKey, rowValues);
          rowValues[columnNameToIndex.get("PARTITION_ID")] = m_partitionId;
          rowValues[columnNameToIndex.get("PROCEDURE")] = m_procName;
          StatementStats currRow = (StatementStats)rowKey;
          assert(currRow != null);
          rowValues[columnNameToIndex.get("STATEMENT")] = currRow.m_stmtName;
  
          long invocations = currRow.getInvocations();
          long timedInvocations = currRow.getTimedInvocations();
          long totalTimedExecutionTime = currRow.getTotalTimedExecutionTime();
          long minExecutionTime = currRow.getMinExecutionTime();
          long maxExecutionTime = currRow.getMaxExecutionTime();
          long abortCount = currRow.getAbortCount();
          long failureCount = currRow.getFailureCount();
          int minResultSize = currRow.getMinResultSize();
          int maxResultSize = currRow.getMaxResultSize();
          long totalResultSize = currRow.getTotalResultSize();
          int minParameterSetSize = currRow.getMinParameterSetSize();
          int maxParameterSetSize = currRow.getMaxParameterSetSize();
          long totalParameterSetSize = currRow.getTotalParameterSetSize();
  
          if (m_incremental) {
              abortCount -= currRow.getLastAbortCountAndReset();
              failureCount -= currRow.getLastFailureCountAndReset();
              totalTimedExecutionTime -= currRow.getLastTotalTimedExecutionTimeAndReset();
              totalResultSize -= currRow.getLastTotalResultSizeAndReset();
              totalParameterSetSize -= currRow.getLastTotalParameterSetSizeAndReset();
              minExecutionTime = currRow.getIncrementalMinExecutionTimeAndReset();
              maxExecutionTime = currRow.getIncrementalMaxExecutionTimeAndReset();
              minResultSize = currRow.getIncrementalMinResultSizeAndReset();
              maxResultSize = currRow.getIncrementalMaxResultSizeAndReset();
              minParameterSetSize = currRow.getIncrementalMinParameterSetSizeAndReset();
              maxParameterSetSize = currRow.getIncrementalMaxParameterSetSizeAndReset();
              // Notice that invocation numbers must be updated in the end.
              // Other numbers depend on them for correct behavior.
              invocations -= currRow.getLastInvocationsAndReset();
              timedInvocations -= currRow.getLastTimedInvocationsAndReset();
          }
  
          rowValues[columnNameToIndex.get("INVOCATIONS")] = invocations;
          rowValues[columnNameToIndex.get("TIMED_INVOCATIONS")] = timedInvocations;
          rowValues[columnNameToIndex.get("MIN_EXECUTION_TIME")] = minExecutionTime;
          rowValues[columnNameToIndex.get("MAX_EXECUTION_TIME")] = maxExecutionTime;
          if (timedInvocations != 0) {
              rowValues[columnNameToIndex.get("AVG_EXECUTION_TIME")] =
                   (totalTimedExecutionTime / timedInvocations);
              rowValues[columnNameToIndex.get("AVG_RESULT_SIZE")] =
                      (totalResultSize / timedInvocations);
              rowValues[columnNameToIndex.get("AVG_PARAMETER_SET_SIZE")] =
                      (totalParameterSetSize / timedInvocations);
          } else {
              rowValues[columnNameToIndex.get("AVG_EXECUTION_TIME")] = 0L;
              rowValues[columnNameToIndex.get("AVG_RESULT_SIZE")] = 0;
              rowValues[columnNameToIndex.get("AVG_PARAMETER_SET_SIZE")] = 0;
          }
          rowValues[columnNameToIndex.get("ABORTS")] = abortCount;
          rowValues[columnNameToIndex.get("FAILURES")] = failureCount;
          rowValues[columnNameToIndex.get("MIN_RESULT_SIZE")] = minResultSize;
          rowValues[columnNameToIndex.get("MAX_RESULT_SIZE")] = maxResultSize;
          rowValues[columnNameToIndex.get("MIN_PARAMETER_SET_SIZE")] = minParameterSetSize;
          rowValues[columnNameToIndex.get("MAX_PARAMETER_SET_SIZE")] = maxParameterSetSize;
          rowValues[columnNameToIndex.get("TRANSACTIONAL")] = (byte) (m_isTransactional ? 1 : 0);
      }