2014-09-04 5:36 GMT+02:00 Peter Eisentraut <pete...@gmx.net>: > On Mon, 2014-05-19 at 13:51 -0400, Peter Eisentraut wrote: > > On 5/18/14, 3:52 AM, Pavel Stehule wrote: > > > I am looking on --analyze-in-stages option. If I understand well, > > > motivation for this option is a get some minimal statistic for > databases > > > in minimal time. But when I tested, I found so iterations are per > > > databases, not per stages - some first database get a maximum > statistics > > > and second has zero statistics. Isn't it unpractical? > > > > Yes. Let me see if I can fix that. > > At long last, here is a patch. > > If somebody has an idea how to code some of that less confusingly, let > me know. > > It is little bit hard to read.
/* If stage is -1, then run all stages. Otherwise, we got a stage * from vacuum_all_databases(), so just run that one. */ for (i = (stage == -1 ? 0 : stage); i < (stage == -1 ? 3 : stage + 1); i++) { puts(gettext(stage_messages[i])); executeCommand(conn, stage_commands[i], progname, echo); run_vacuum_command(conn, sql.data, echo, dbname, table, progname); } maybe better be more verbose - and it can be in alone function, because it is "analyze only" if (stage == -1) { for (i = 0; i < 3; i++) { puts(gettext(stage_messages[i])); executeCommand(conn, stage_commands[i], progname, echo); run_vacuum_command(conn, sql.data, echo, dbname, table, progname); } } else { puts(gettext(stage_messages[stage])); executeCommand(conn, stage_commands[stage], progname, echo); run_vacuum_command(conn, sql.data, echo, dbname, table, progname); } Regards Pavel