Commit Graph

34 Commits

Author SHA1 Message Date
564f061beb Use the right appendStringInfoVA interface
pgut version renamed to avoid confusion with the server version.

(I wonder why there is such a duplication of interfaces and
implementations there though...)
2015-03-10 11:48:16 +00:00
080ebd3ed6 Bump up Copyright notices for 2015 2015-01-11 19:01:37 -05:00
f551b56f1a Merge branch 'master' into concurrent_indexes.
Conflicts:
	bin/pg_repack.c
2012-12-14 22:17:36 -07:00
7213e2fe7b Use CLEARPGRES() macro to call PQclear() and set res to NULL.
This simplifies some of the error handling blocks, as now
we can unconditionally use this macro without worrying about multiple
PQclear() calls causing a double-free().

Per discussion with Daniele.
2012-12-14 20:13:23 -07:00
a1821e3dcb Several fixes for concurrent index builds:
* Use poll() if it is available, or select() otherwise, to
   efficiently wait on index builds in worker queries to finish.
 * fix off-by-one error when initially assigning workers
 * move PQsetnonblocking() calls to setup_workers()
2012-12-14 18:49:00 -07:00
509e568c52 First pass at implementing concurrent index builds using multiple connections.
Adds a new --jobs command-line argument to specify how many worker
connections you want. These worker connections should stick around
while processing table(s) in a single database. For each table,
parcel out the indexes to be built among these worker conns,
submitting each CREATE INDEX ... request using PQsendQuery() i.e.
in non-blocking fashion.

Most of this is still rather crude, in particular the
while (num_active_workers) ... loop in rebuild_indexes(), but
it seems to be working, so I'm committing here.
2012-12-14 18:49:00 -07:00
3c13a0d05e Don't forget to disconnect conn2 when disconnect() is called, otherwise
we leave a connection hanging open for every database processed
via pg_repack -a.
2012-11-18 14:36:09 -07:00
8ba92a1f49 Rename argument to simple_string_list_size() for consistency. 2012-11-16 15:27:53 +00:00
decd822393 Move simple_string_list_size() into pgut.c, with the rest of these string functions.
Also, fix an error with this function not actually using its string_list argument.
2012-11-16 15:27:53 +00:00
ad75dcfbb1 Allow multiple --table options to be specified on the command-line.
Per Issue #18. SimpleStringList code borrowed from pg_dump and a
pending patch to add similar functionality to pg_restore,
clusterdb, vacuumdb, and reindexdb.

The error handling in reorg_one_table() could still be much improved,
so that an error processing a single table doesn't cause pg_reorg to
necessarily bail out and skip further tables, but I'll leave that for
another day.
2012-11-16 15:19:35 +00:00
78bae38718 Take an ACCESS SHARE LOCK on the target table, in an initial attempt to prevent concurrent DDL.
This is a first pass at Daniele's suggestion in Issue #8, although it is
definitely still buggy -- it is still possible for another transaction
to get in an AccessExclusive lock and perform DDL either before the
ACCESS SHARE lock is acquired or immediately after it is released.
2012-11-16 15:14:12 +00:00
292e00835e Use correct homepage link in pg_repack --help
Also fixed punctuation in help.
2012-11-15 11:53:00 +00:00
1d60a946ff Added The Reorg Development Team copyright 2012-11-11 03:00:00 +00:00
db1c554f60 Dropped executable flags 2012-11-11 02:48:46 +00:00
0942141245 Fix compiler warnings about appendStringInfoVA and appendStringInfoVA_s.
gcc was correctly complaining that these functions should be
declared with the `printf` format attribute. Addresses Issue #14.
2012-10-18 20:32:18 -07:00
370e572cfc Get rid of support for PG versions 8.2 and earlier. These have been unsupported for some time, and the #defines do clutter up the codebase. 2012-09-22 20:00:53 +01:00
960930b645 Fixed database corruption when target tables have dropped columns, and
there are views or functions depending on columns after dropped ones.
The issue was reported by depesz, and original patch by Denish Patel.

Improved documentation how to build binaries from source.

COPYRIGHT updated.
2011-04-29 05:06:48 +00:00
8ec3a085ad Added project configuration files for MSVC 2010 32/64bit. 2011-01-25 06:41:12 +00:00
d8d39cc948 Fix memory leak and wrong usage of StringInfo in pgut_connect(). 2010-10-21 07:36:13 +00:00
7865250a19 Fixed problem with interactive authentication handling.
Previous pgut.c didn't handle any user-input during interactive authentication.
2010-09-29 07:29:29 +00:00
d490a1b458 Fix -w and -W options. They were inverted. 2010-06-18 01:12:28 +00:00
79757ccb62 version 1.1.2. 2010-06-01 07:35:01 +00:00
9bed2e6b2e Fix a bug in --username option. 2010-05-25 04:53:23 +00:00
6e05a366fa Fix double-free bug with -a (--all) option. 2010-05-14 06:52:45 +00:00
78b0a0e374 Fix two bugs.
#1010789 : pg_reorg 1.1.0 and "unexpected toast relations"
#1010790 : reorg.get_index_keys() does not handle composite indexes
2010-04-21 09:25:20 +00:00
f3873ff55b pg_reorg version 1.1.0.
- Add wait-timeout option and use SET statement_timeout instead of NOWAIT.
  This can avoid infinite NOWAIT loops to reorganize heavily accessed tables.
- Support native build with MSVC on Windows.
2010-03-25 07:13:16 +00:00
8392b9462a version 1.0.8. 2010-02-15 01:38:06 +00:00
a7a42b7bbf Fix crashes when cluster indexes have storage options (fillfactor, etc). 2010-02-05 03:24:22 +00:00
7084ec6de9 version 1.0.7. 2010-01-28 06:02:28 +00:00
6155932b60 Fix data corruption bug reported by robjderr (#1010664).
pg_reorg broke catalog definition if the target table had any dropped columns.
Now pg_reorg removes dropped columns and renumbers valid columns.
You can use pg_reorg to shrink column definitions if you have many dropped
columns. (without pg_reorg, dropped columns are filled with zero forever)
2009-07-02 09:50:58 +00:00
5fe3f037be version 1.0.5.
- Disable autovacuum for working tables and update logs.
- Do ANALYZE automatically after reorg unless -Z, --no-analyze option
  is specified.
2009-05-25 07:06:38 +00:00
9a8f2e9c33 Fix ownership bug.
New toast table, toast index, and toast type should not have
been owned by the executor of pg_reorg, but by the original owner.
2009-05-14 08:19:25 +00:00
0c659ed31f Fix compile errors on Linux. 2009-04-23 06:37:29 +00:00
574b6dc296 Support PGXS. 2009-04-22 07:26:12 +00:00