File tree 2 files changed +42
-4
lines changed
2 files changed +42
-4
lines changed Original file line number Diff line number Diff line change @@ -3931,32 +3931,48 @@ checkInitSteps(const char *initialize_steps)
3931
3931
static void
3932
3932
runInitSteps (const char * initialize_steps )
3933
3933
{
3934
+ PQExpBufferData stats ;
3934
3935
PGconn * con ;
3935
3936
const char * step ;
3937
+ double run_time = 0.0 ;
3938
+ bool first = true;
3939
+
3940
+ initPQExpBuffer (& stats );
3936
3941
3937
3942
if ((con = doConnect ()) == NULL )
3938
3943
exit (1 );
3939
3944
3940
3945
for (step = initialize_steps ; * step != '\0' ; step ++ )
3941
3946
{
3947
+ instr_time start ;
3948
+ char * op = NULL ;
3949
+
3950
+ INSTR_TIME_SET_CURRENT (start );
3951
+
3942
3952
switch (* step )
3943
3953
{
3944
3954
case 'd' :
3955
+ op = "drop tables" ;
3945
3956
initDropTables (con );
3946
3957
break ;
3947
3958
case 't' :
3959
+ op = "create tables" ;
3948
3960
initCreateTables (con );
3949
3961
break ;
3950
3962
case 'g' :
3963
+ op = "generate" ;
3951
3964
initGenerateData (con );
3952
3965
break ;
3953
3966
case 'v' :
3967
+ op = "vacuum" ;
3954
3968
initVacuum (con );
3955
3969
break ;
3956
3970
case 'p' :
3971
+ op = "primary keys" ;
3957
3972
initCreatePKeys (con );
3958
3973
break ;
3959
3974
case 'f' :
3975
+ op = "foreign keys" ;
3960
3976
initCreateFKeys (con );
3961
3977
break ;
3962
3978
case ' ' :
@@ -3967,10 +3983,30 @@ runInitSteps(const char *initialize_steps)
3967
3983
PQfinish (con );
3968
3984
exit (1 );
3969
3985
}
3986
+
3987
+ if (op != NULL )
3988
+ {
3989
+ instr_time diff ;
3990
+ double elapsed_sec ;
3991
+
3992
+ INSTR_TIME_SET_CURRENT (diff );
3993
+ INSTR_TIME_SUBTRACT (diff , start );
3994
+ elapsed_sec = INSTR_TIME_GET_DOUBLE (diff );
3995
+
3996
+ if (!first )
3997
+ appendPQExpBufferStr (& stats , ", " );
3998
+ else
3999
+ first = false;
4000
+
4001
+ appendPQExpBuffer (& stats , "%s %.2f s" , op , elapsed_sec );
4002
+
4003
+ run_time += elapsed_sec ;
4004
+ }
3970
4005
}
3971
4006
3972
- fprintf (stderr , "done. \n" );
4007
+ fprintf (stderr , "done in %.2f s (%s). \n" , run_time , stats . data );
3973
4008
PQfinish (con );
4009
+ termPQExpBuffer (& stats );
3974
4010
}
3975
4011
3976
4012
/*
Original file line number Diff line number Diff line change @@ -94,7 +94,7 @@ sub pgbench
94
94
[qr { ^$} ],
95
95
[
96
96
qr { creating tables} , qr { vacuuming} ,
97
- qr { creating primary keys} , qr { done\. }
97
+ qr { creating primary keys} , qr { done in \d + \.\d\d s }
98
98
],
99
99
' pgbench scale 1 initialization' ,);
100
100
@@ -109,7 +109,8 @@ sub pgbench
109
109
qr { vacuuming} ,
110
110
qr { creating primary keys} ,
111
111
qr { creating foreign keys} ,
112
- qr { done\. }
112
+ qr { (?!vacuuming)} , # no vacuum
113
+ qr { done in \d +\.\d\d s }
113
114
],
114
115
' pgbench scale 1 initialization' );
115
116
@@ -124,7 +125,8 @@ sub pgbench
124
125
qr { creating primary keys} ,
125
126
qr { .* of .* tuples \( .*\) done} ,
126
127
qr { creating foreign keys} ,
127
- qr { done\. }
128
+ qr { (?!vacuuming)} , # no vacuum
129
+ qr { done in \d +\.\d\d s }
128
130
],
129
131
' pgbench --init-steps' );
130
132
You can’t perform that action at this time.
0 commit comments