-#define changes_since_analyze(t) ((t)->n_live_tuples + (t)->n_dead_tuples - (t)->last_anl_tuples)
-#endif
-
- if (
- tabentry == NULL /* a new table */ ||
- (
- /* do not analyze too often, if both stamps are exceeded the go */
- TimestampDifferenceExceeds(tabentry->analyze_timestamp, now, online_analyze_min_interval) &&
- TimestampDifferenceExceeds(tabentry->autovac_analyze_timestamp, now, online_analyze_min_interval) &&
- /* be in sync with relation_needs_vacanalyze */
- ((double)(changes_since_analyze(tabentry) + naffected)) >=
- online_analyze_scale_factor * ((double)(tabentry->n_dead_tuples + tabentry->n_live_tuples)) +
- (double)online_analyze_threshold
- )
- )
+ tabentry->n_live_tuples + tabentry->n_dead_tuples -
+ tabentry->last_anl_tuples;
+#endif
+ rstat->autovac_analyze_timestamp =
+ tabentry->autovac_analyze_timestamp;
+ rstat->analyze_timestamp = tabentry->analyze_timestamp;
+ rstat->rereadStat = false;
+ }
+ else
+ {
+ newTable = true;
+ rstat->rereadStat = true;
+ }
+ }
+
+ if (newTable || (
+ /* do not analyze too often, if both stamps are exceeded the go */
+ TimestampDifferenceExceeds(rstat->analyze_timestamp, now, online_analyze_min_interval) &&
+ TimestampDifferenceExceeds(rstat->autovac_analyze_timestamp, now, online_analyze_min_interval) &&
+ /* be in sync with relation_needs_vacanalyze */
+ ((double)(rstat->changes_since_analyze + naffected)) >=
+ online_analyze_scale_factor * ((double)rstat->n_tuples) +
+ (double)online_analyze_threshold))