Re: vacuumdb --freeze - Mailing list pgsql-hackers
From | Zdenek Kotala |
---|---|
Subject | Re: vacuumdb --freeze |
Date | |
Msg-id | 1235048331.1420.55.camel@localhost Whole thread Raw |
In response to | vacuumdb --freeze (Bruce Momjian <bruce@momjian.us>) |
Responses |
Re: vacuumdb --freeze
|
List | pgsql-hackers |
The FREEZ option is deprecated. See http://www.postgresql.org/docs/8.3/interactive/sql-vacuum.html you should use vacuum_freeze_min_age instead. On other side it breaks vacuumdb backward compatibility which we did not declare, but it could be fine. Zdenek Bruce Momjian píše v út 17. 02. 2009 v 11:58 -0500: > I would like to add a --freeze parameter to vacuumdb for use by the > binary upgrade utility, and for symmetry with the existing VACUUM > options; patch attached. > > I could also accomplish with with PGOPTIONs but this seem like a cleaner > solution. > > Prostý textový dokument příloha (/pgpatches/vacuumdb) > Index: doc/src/sgml/ref/vacuumdb.sgml > =================================================================== > RCS file: /cvsroot/pgsql/doc/src/sgml/ref/vacuumdb.sgml,v > retrieving revision 1.42 > diff -c -c -r1.42 vacuumdb.sgml > *** doc/src/sgml/ref/vacuumdb.sgml 11 Dec 2007 19:57:32 -0000 1.42 > --- doc/src/sgml/ref/vacuumdb.sgml 17 Feb 2009 16:24:39 -0000 > *************** > *** 26,31 **** > --- 26,32 ---- > <group><arg>--full</arg><arg>-f</arg></group> > <group><arg>--verbose</arg><arg>-v</arg></group> > <group><arg>--analyze</arg><arg>-z</arg></group> > + <group><arg>--freeze</arg><arg>-F</arg></group> > <arg>--table | -t <replaceable>table</replaceable> > <arg>( <replaceable class="parameter">column</replaceable> [,...] )</arg> > </arg> > *************** > *** 37,42 **** > --- 38,44 ---- > <group><arg>--full</arg><arg>-f</arg></group> > <group><arg>--verbose</arg><arg>-v</arg></group> > <group><arg>--analyze</arg><arg>-z</arg></group> > + <group><arg>--freeze</arg><arg>-F</arg></group> > </cmdsynopsis> > </refsynopsisdiv> > > *************** > *** 161,166 **** > --- 163,178 ---- > </para> > </listitem> > </varlistentry> > + > + <varlistentry> > + <term><option>-F</option></term> > + <term><option>--freeze</option></term> > + <listitem> > + <para> > + Aggressively <quote>freeze</quote> tuples. > + </para> > + </listitem> > + </varlistentry> > </variablelist> > </para> > > Index: src/bin/scripts/vacuumdb.c > =================================================================== > RCS file: /cvsroot/pgsql/src/bin/scripts/vacuumdb.c,v > retrieving revision 1.22 > diff -c -c -r1.22 vacuumdb.c > *** src/bin/scripts/vacuumdb.c 1 Jan 2009 17:23:55 -0000 1.22 > --- src/bin/scripts/vacuumdb.c 17 Feb 2009 16:24:39 -0000 > *************** > *** 15,25 **** > > > static void vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, > ! const char *table, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo); > ! static void vacuum_all_databases(bool full, bool verbose, bool analyze, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo, bool quiet); > --- 15,25 ---- > > > static void vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, > ! bool freeze, const char *table, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo); > ! static void vacuum_all_databases(bool full, bool verbose, bool analyze, bool freeze, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo, bool quiet); > *************** > *** 39,44 **** > --- 39,45 ---- > {"quiet", no_argument, NULL, 'q'}, > {"dbname", required_argument, NULL, 'd'}, > {"analyze", no_argument, NULL, 'z'}, > + {"freeze", no_argument, NULL, 'F'}, > {"all", no_argument, NULL, 'a'}, > {"table", required_argument, NULL, 't'}, > {"full", no_argument, NULL, 'f'}, > *************** > *** 58,63 **** > --- 59,65 ---- > bool echo = false; > bool quiet = false; > bool analyze = false; > + bool freeze = false; > bool alldb = false; > char *table = NULL; > bool full = false; > *************** > *** 68,74 **** > > handle_help_version_opts(argc, argv, "vacuumdb", help); > > ! while ((c = getopt_long(argc, argv, "h:p:U:Weqd:zat:fv", long_options, &optindex)) != -1) > { > switch (c) > { > --- 70,76 ---- > > handle_help_version_opts(argc, argv, "vacuumdb", help); > > ! while ((c = getopt_long(argc, argv, "h:p:U:Weqd:zaFt:fv", long_options, &optindex)) != -1) > { > switch (c) > { > *************** > *** 96,101 **** > --- 98,106 ---- > case 'z': > analyze = true; > break; > + case 'F': > + freeze = true; > + break; > case 'a': > alldb = true; > break; > *************** > *** 145,151 **** > exit(1); > } > > ! vacuum_all_databases(full, verbose, analyze, > host, port, username, password, > progname, echo, quiet); > } > --- 150,156 ---- > exit(1); > } > > ! vacuum_all_databases(full, verbose, analyze, freeze, > host, port, username, password, > progname, echo, quiet); > } > *************** > *** 161,167 **** > dbname = get_user_name(progname); > } > > ! vacuum_one_database(dbname, full, verbose, analyze, table, > host, port, username, password, > progname, echo); > } > --- 166,172 ---- > dbname = get_user_name(progname); > } > > ! vacuum_one_database(dbname, full, verbose, analyze, freeze, table, > host, port, username, password, > progname, echo); > } > *************** > *** 172,178 **** > > static void > vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, > ! const char *table, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo) > --- 177,183 ---- > > static void > vacuum_one_database(const char *dbname, bool full, bool verbose, bool analyze, > ! bool freeze, const char *table, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo) > *************** > *** 190,195 **** > --- 195,202 ---- > appendPQExpBuffer(&sql, " VERBOSE"); > if (analyze) > appendPQExpBuffer(&sql, " ANALYZE"); > + if (freeze) > + appendPQExpBuffer(&sql, " FREEZE"); > if (table) > appendPQExpBuffer(&sql, " %s", table); > appendPQExpBuffer(&sql, ";\n"); > *************** > *** 212,218 **** > > > static void > ! vacuum_all_databases(bool full, bool verbose, bool analyze, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo, bool quiet) > --- 219,225 ---- > > > static void > ! vacuum_all_databases(bool full, bool verbose, bool analyze, bool freeze, > const char *host, const char *port, > const char *username, bool password, > const char *progname, bool echo, bool quiet) > *************** > *** 235,241 **** > fflush(stdout); > } > > ! vacuum_one_database(dbname, full, verbose, analyze, NULL, > host, port, username, password, > progname, echo); > } > --- 242,248 ---- > fflush(stdout); > } > > ! vacuum_one_database(dbname, full, verbose, analyze, freeze, NULL, > host, port, username, password, > progname, echo); > } > *************** > *** 256,261 **** > --- 263,269 ---- > printf(_(" -t, --table='TABLE[(COLUMNS)]' vacuum specific table only\n")); > printf(_(" -f, --full do full vacuuming\n")); > printf(_(" -z, --analyze update optimizer hints\n")); > + printf(_(" -F, --freeze freeze row transaction information\n")); > printf(_(" -e, --echo show the commands being sent to the server\n")); > printf(_(" -q, --quiet don't write any messages\n")); > printf(_(" -v, --verbose write a lot of output\n"));
pgsql-hackers by date: