docs: @Override
      protected void updateStatsRow(Object rowKey, Object rowValues[]) {
          super.updateStatsRow(rowKey, rowValues);
  
          rowValues[columnNameToIndex.get("PARTITION_ID")] = m_partitionId;
          long totalTimedExecutionTime = m_totalPlanningTime;
          long minExecutionTime = m_minPlanningTime;
          long maxExecutionTime = m_maxPlanningTime;
          long cache1Level = m_cache1Level;
          long cache2Level = m_cache2Level;
          long cache1Hits  = m_cache1Hits;
          long cache2Hits  = m_cache2Hits;
          long cacheMisses = m_cacheMisses;
          long failureCount = m_failures;
  
          if (m_interval) {
              totalTimedExecutionTime = m_totalPlanningTime - m_lastTimedPlanningTime;
              m_lastTimedPlanningTime = m_totalPlanningTime;
  
              minExecutionTime = m_lastMinPlanningTime;
              maxExecutionTime = m_lastMaxPlanningTime;
              m_lastMinPlanningTime = Long.MAX_VALUE;
              m_lastMaxPlanningTime = Long.MIN_VALUE;
  
              cache1Level = m_cache1Level - m_lastCache1Level;
              m_lastCache1Level = m_cache1Level;
  
              cache2Level = m_cache2Level - m_lastCache2Level;
              m_lastCache2Level = m_cache2Level;
  
              cache1Hits = m_cache1Hits - m_lastCache1Hits;
              m_lastCache1Hits = m_cache1Hits;
  
              cache2Hits = m_cache2Hits - m_lastCache2Hits;
              m_lastCache2Hits = m_cache2Hits;
  
              cacheMisses = m_cacheMisses - m_lastCacheMisses;
              m_lastCacheMisses = m_cacheMisses;
  
              failureCount = m_failures - m_lastFailures;
              m_lastFailures = m_failures;
  
              m_lastInvocations = m_invocations;
          }
  
          rowValues[columnNameToIndex.get(VoltSystemProcedure.CNAME_SITE_ID)] = m_siteId;
          rowValues[columnNameToIndex.get("PARTITION_ID")] = m_partitionId;
          rowValues[columnNameToIndex.get("CACHE1_LEVEL")] = cache1Level;
          rowValues[columnNameToIndex.get("CACHE2_LEVEL")] = cache2Level;
          rowValues[columnNameToIndex.get("CACHE1_HITS" )] = cache1Hits;
          rowValues[columnNameToIndex.get("CACHE2_HITS" )] = cache2Hits;
          rowValues[columnNameToIndex.get("CACHE_MISSES")] = cacheMisses;
          rowValues[columnNameToIndex.get("PLAN_TIME_MIN")] = minExecutionTime;
          rowValues[columnNameToIndex.get("PLAN_TIME_MAX")] = maxExecutionTime;
          if (getSampleCount() != 0) {
              rowValues[columnNameToIndex.get("PLAN_TIME_AVG")] =
                   (totalTimedExecutionTime / getSampleCount());
          } else {
              rowValues[columnNameToIndex.get("PLAN_TIME_AVG")] = 0L;
          }
          rowValues[columnNameToIndex.get("FAILURES")] = failureCount;
      }