Commit 27727998 authored by Heikki Linnakangas's avatar Heikki Linnakangas

Prevent integer overflow with --progress >= 2148

If --progress=2148 or higher was given, the calculation of the next time
to report overflowed, and pgbench would print a progress report very
frequently.

Kingter Wang
parent d8a0b96c
...@@ -2974,7 +2974,7 @@ threadRun(void *arg) ...@@ -2974,7 +2974,7 @@ threadRun(void *arg)
/* for reporting progress: */ /* for reporting progress: */
int64 thread_start = INSTR_TIME_GET_MICROSEC(thread->start_time); int64 thread_start = INSTR_TIME_GET_MICROSEC(thread->start_time);
int64 last_report = thread_start; int64 last_report = thread_start;
int64 next_report = last_report + progress * 1000000; int64 next_report = last_report + (int64) progress * 1000000;
int64 last_count = 0, last_lats = 0, last_sqlats = 0, last_lags = 0; int64 last_count = 0, last_lats = 0, last_sqlats = 0, last_lags = 0;
AggVals aggs; AggVals aggs;
...@@ -3210,7 +3210,7 @@ threadRun(void *arg) ...@@ -3210,7 +3210,7 @@ threadRun(void *arg)
last_sqlats = sqlats; last_sqlats = sqlats;
last_lags = lags; last_lags = lags;
last_report = now; last_report = now;
next_report += progress * 1000000; next_report += (int64) progress * 1000000;
} }
} }
#else #else
...@@ -3261,7 +3261,7 @@ threadRun(void *arg) ...@@ -3261,7 +3261,7 @@ threadRun(void *arg)
last_sqlats = sqlats; last_sqlats = sqlats;
last_lags = lags; last_lags = lags;
last_report = now; last_report = now;
next_report += progress * 1000000; next_report += (int64) progress * 1000000;
} }
} }
#endif /* PTHREAD_FORK_EMULATION */ #endif /* PTHREAD_FORK_EMULATION */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment